Repository navigation
Commit 127e77e
authored
[ty] Keep unresolved TypeIs targets provisional (#29066)
## Summary
We now terminate inference for recursive `TypeIs` calls like this one:
```python
from typing import reveal_type
from typing_extensions import TypeIs
class Container[T]: ...
def is_container[T](value: object, other: T) -> TypeIs[Container[T]]:
return True
while True:
if is_container(value, type(value)):
value = value.__str__
else:
value = {value}
reveal_type(value)
```
Previously, an unresolved `TypeIs` target could make the `else` branch
appear unreachable. We now defer that narrowing until the target is
known, preserving the recursive type and diagnostics in both branches.
Addresses astral-sh/ty#3837.1 parent cbc71c2 commit 127e77e
2 files changed
Lines changed: 61 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1297 | 1297 | | |
1298 | 1298 | | |
1299 | 1299 | | |
| 1300 | + | |
| 1301 | + | |
| 1302 | + | |
| 1303 | + | |
| 1304 | + | |
| 1305 | + | |
| 1306 | + | |
| 1307 | + | |
| 1308 | + | |
| 1309 | + | |
| 1310 | + | |
| 1311 | + | |
| 1312 | + | |
| 1313 | + | |
| 1314 | + | |
| 1315 | + | |
| 1316 | + | |
| 1317 | + | |
| 1318 | + | |
| 1319 | + | |
| 1320 | + | |
| 1321 | + | |
| 1322 | + | |
| 1323 | + | |
| 1324 | + | |
| 1325 | + | |
| 1326 | + | |
| 1327 | + | |
| 1328 | + | |
| 1329 | + | |
| 1330 | + | |
| 1331 | + | |
| 1332 | + | |
| 1333 | + | |
| 1334 | + | |
| 1335 | + | |
| 1336 | + | |
| 1337 | + | |
| 1338 | + | |
| 1339 | + | |
| 1340 | + | |
| 1341 | + | |
| 1342 | + | |
| 1343 | + | |
| 1344 | + | |
| 1345 | + | |
| 1346 | + | |
| 1347 | + | |
| 1348 | + | |
| 1349 | + | |
| 1350 | + | |
| 1351 | + | |
| 1352 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4682 | 4682 | | |
4683 | 4683 | | |
4684 | 4684 | | |
| 4685 | + | |
| 4686 | + | |
| 4687 | + | |
| 4688 | + | |
| 4689 | + | |
| 4690 | + | |
| 4691 | + | |
| 4692 | + | |
4685 | 4693 | | |
4686 | 4694 | | |
4687 | 4695 | | |
| |||
0 commit comments