diff --git a/crates/ty_python_semantic/resources/mdtest/binary/integers.md b/crates/ty_python_semantic/resources/mdtest/binary/integers.md index 20e6b4aca9..f2169144cb 100644 --- a/crates/ty_python_semantic/resources/mdtest/binary/integers.md +++ b/crates/ty_python_semantic/resources/mdtest/binary/integers.md @@ -143,6 +143,9 @@ bool(1) / False # error: "Cannot divide object of type `float` by zero" reveal_type(1.0 / 0) # revealed: int | float +# error: "Cannot divide object of type `complex` by zero" +reveal_type(0j / 0) # revealed: int | float | complex + class MyInt(int): ... # No error for a subclass of int diff --git a/crates/ty_python_semantic/src/types/infer.rs b/crates/ty_python_semantic/src/types/infer.rs index 1248fe7316..d29b053ab4 100644 --- a/crates/ty_python_semantic/src/types/infer.rs +++ b/crates/ty_python_semantic/src/types/infer.rs @@ -6444,7 +6444,10 @@ impl<'db, 'ast> TypeInferenceBuilder<'db, 'ast> { true } Type::NominalInstance(instance) - if matches!(instance.class.known(self.db()), Some(KnownClass::Float)) => + if matches!( + instance.class.known(self.db()), + Some(KnownClass::Float | KnownClass::Complex) + ) => { false }