diff --git a/crates/red_knot_python_semantic/src/types/infer.rs b/crates/red_knot_python_semantic/src/types/infer.rs index 67929cbfa9e1d..b1a915da23312 100644 --- a/crates/red_knot_python_semantic/src/types/infer.rs +++ b/crates/red_knot_python_semantic/src/types/infer.rs @@ -1337,8 +1337,7 @@ impl<'db> TypeInferenceBuilder<'db> { &mut self, _literal: &ast::ExprEllipsisLiteral, ) -> Type<'db> { - // TODO Ellipsis - Type::Unknown + builtins_symbol_ty_by_name(self.db, "Ellipsis") } fn infer_tuple_expression(&mut self, tuple: &ast::ExprTuple) -> Type<'db> { @@ -2470,6 +2469,24 @@ mod tests { Ok(()) } + #[test] + fn ellipsis_type() -> anyhow::Result<()> { + let mut db = setup_db(); + + db.write_dedented( + "src/a.py", + " + x = ... + ", + )?; + + // TODO: update this once `infer_ellipsis_literal_expression` correctly + // infers `types.EllipsisType`. + assert_public_ty(&db, "src/a.py", "x", "Unknown | Literal[EllipsisType]"); + + Ok(()) + } + #[test] fn resolve_union() -> anyhow::Result<()> { let mut db = setup_db();