From 7fe09c28c46f54f485de47277f31405f64ceeac5 Mon Sep 17 00:00:00 2001 From: Douglas Creager Date: Sun, 7 Dec 2025 14:38:19 -0500 Subject: [PATCH] don't pivot on never or object --- .../src/types/constraints.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/crates/ty_python_semantic/src/types/constraints.rs b/crates/ty_python_semantic/src/types/constraints.rs index 4d6c302901..8d0d56448a 100644 --- a/crates/ty_python_semantic/src/types/constraints.rs +++ b/crates/ty_python_semantic/src/types/constraints.rs @@ -2697,6 +2697,24 @@ impl<'db> SequentMap<'db> { (bound_constraint.lower(db), constrained_upper) } + // (CL ≤ C ≤ pivot) ∧ (pivot ≤ B ≤ BU) → (CL ≤ C ≤ B) + (constrained_lower, constrained_upper) + if constrained_upper == bound_constraint.lower(db) + && !constrained_upper.is_never() + && !constrained_upper.is_object() => + { + (constrained_lower, Type::TypeVar(bound_typevar)) + } + + // (pivot ≤ C ≤ CU) ∧ (BL ≤ B ≤ pivot) → (B ≤ C ≤ CU) + (constrained_lower, constrained_upper) + if constrained_lower == bound_constraint.upper(db) + && !constrained_lower.is_never() + && !constrained_lower.is_object() => + { + (Type::TypeVar(bound_typevar), constrained_upper) + } + _ => return, };