ruff
ffd4340d - [ty] use Type::Divergent to avoid panic in infinitely-nested-tuple implicit attribute (#20333)

Commit
5 days ago
[ty] use Type::Divergent to avoid panic in infinitely-nested-tuple implicit attribute (#20333) ## Summary Use `Type::Divergent` to avoid "too many iterations" panic on an infinitely-nested tuple in an implicit instance attribute. The regression here is from checking all tuple elements to see if they contain a Divergent type. It's 5% on one project, 1% on another, and zero on the rest. I spent some time looking into eliminating this regression by tracking a flag on inference results to note if they could possibly contain any Divergent type, but this doesn't really work -- there are too many different ways a type containing a Divergent type could enter an inference result. Still thinking about whether there are other ways to reduce this. One option is if we see certain kinds of non-atomic types that are commonly expensive to check for Divergent, we could make `has_divergent_type` a Salsa query on those types. ## Test Plan Added mdtest. Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
Author
Parents
Loading