From 19c421a27bfc868d047a3f30eda97ef84e1e44d3 Mon Sep 17 00:00:00 2001 From: Douglas Creager Date: Wed, 27 Aug 2025 09:15:22 -0400 Subject: [PATCH] use constraint sets for lhs contrained typevars --- crates/ty_python_semantic/src/types.rs | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) 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) + }) }) }) }