mirror of
https://github.com/astral-sh/ruff.git
synced 2025-09-29 13:24:57 +00:00
[ty] Fix 'too many cycle iterations' for unions of literals (#20137)
## Summary Decrease the maximum number of literals in a union before we collapse to the supertype. The better fix for this will be https://github.com/astral-sh/ty/issues/957, but it is very tempting to solve this for now by simply decreasing the limit by one, to get below the salsa limit of 200. closes https://github.com/astral-sh/ty/issues/660 ## Test Plan Added a regression test that would previously lead to a "too many cycle iterations" panic.
This commit is contained in:
parent
b3c4005289
commit
1842cfe333
2 changed files with 18 additions and 1 deletions
|
@ -2309,6 +2309,20 @@ reveal_type(Toggle().x) # revealed: Literal[True]
|
|||
reveal_type(Toggle().y) # revealed: Unknown | Literal[True]
|
||||
```
|
||||
|
||||
Make sure that the growing union of literals `Literal[0, 1, 2, ...]` collapses to `int` during
|
||||
fixpoint iteration. This is a regression test for <https://github.com/astral-sh/ty/issues/660>.
|
||||
|
||||
```py
|
||||
class Counter:
|
||||
def __init__(self: "Counter"):
|
||||
self.count = 0
|
||||
|
||||
def increment(self: "Counter"):
|
||||
self.count = self.count + 1
|
||||
|
||||
reveal_type(Counter().count) # revealed: Unknown | int
|
||||
```
|
||||
|
||||
### Builtin types attributes
|
||||
|
||||
This test can probably be removed eventually, but we currently include it because we do not yet
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue