mirror of
https://github.com/astral-sh/ruff
synced 2026-01-09 15:44:22 -05:00
## Summary The sub-checks for assignability and subtyping of materializations performed in `has_relation_in_invariant_position` and `is_subtype_in_invariant_position` need to propagate the `HasRelationToVisitor`, or we can stack overflow. A side effect of this change is that we also propagate the `ConstraintSet` through, rather than using `C::from_bool`, which I think may also become important for correctness in cases involving type variables (though it isn't testable yet, since we aren't yet actually creating constraints other than always-true and always-false.) ## Test Plan Added mdtest (derived from code found in pydantic) which stack-overflowed before this PR. With this change incorporated, pydantic now checks successfully on my draft PR for PEP 613 TypeAlias support.