From 85077a70e8aee56491fd76164b0c66a1bedf2502 Mon Sep 17 00:00:00 2001 From: Charlie Marsh Date: Sun, 27 Sep 2026 12:19:54 -0400 Subject: [PATCH] [ty] Skip caching trivially assignable types (#28936) ## Summary We avoid retaining a Salsa query entry when constraint-set assignability is already known. Trivially assignable types now return an always-satisfied constraint set before we intern the type pair and run the query. --- crates/ty_python_semantic/src/types/relation.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/crates/ty_python_semantic/src/types/relation.rs b/crates/ty_python_semantic/src/types/relation.rs index 6b0768a65c..105dc7f466 100644 --- a/crates/ty_python_semantic/src/types/relation.rs +++ b/crates/ty_python_semantic/src/types/relation.rs @@ -581,6 +581,12 @@ impl<'db> Type<'db> { }) } + self.assert_not_recursive_var(); + target.assert_not_recursive_var(); + if self.is_trivially_constraint_set_assignable_to(db, target) { + return Cow::Owned(OwnedConstraintSet::always()); + } + let program = env.program(db); Cow::Borrowed(when_assignable_to_owned_impl( db,