diff --git a/crates/ty_python_semantic/src/types.rs b/crates/ty_python_semantic/src/types.rs index 5dc0e4e9b0..80d428b265 100644 --- a/crates/ty_python_semantic/src/types.rs +++ b/crates/ty_python_semantic/src/types.rs @@ -1612,7 +1612,15 @@ impl<'db> Type<'db> { .constraints(db) .when_some_and(|constraints| { constraints.iter().when_all(db, |constraint| { - self.has_relation_to_impl(db, *constraint, relation, visitor) + ConstraintSet::constrain_typevar( + db, + bound_typevar, + *constraint, + *constraint, + ) + .implies(db, || { + self.has_relation_to_impl(db, *constraint, relation, visitor) + }) }) }) .is_never_satisfied() => @@ -1626,7 +1634,15 @@ impl<'db> Type<'db> { .constraints(db) .when_some_and(|constraints| { constraints.iter().when_all(db, |constraint| { - self.has_relation_to_impl(db, *constraint, relation, visitor) + ConstraintSet::constrain_typevar( + db, + bound_typevar, + *constraint, + *constraint, + ) + .implies(db, || { + self.has_relation_to_impl(db, *constraint, relation, visitor) + }) }) }) }