[ty] Rename "possibly unbound" diagnostics to "possibly missing" (#20492)

Co-authored-by: Alex Waygood <alex.waygood@gmail.com>
This commit is contained in:
Renkai Ge 2025-09-23 22:26:55 +08:00 committed by GitHub
parent 4ed8c65d29
commit bf38e69870
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
41 changed files with 213 additions and 194 deletions

View file

@ -88,7 +88,7 @@ async def foo():
reveal_type(x) # revealed: Unknown
```
### Possibly unbound `__anext__` method
### Possibly missing `__anext__` method
```py
from typing_extensions import reveal_type
@ -108,7 +108,7 @@ async def foo(flag: bool):
reveal_type(x) # revealed: int
```
### Possibly unbound `__aiter__` method
### Possibly missing `__aiter__` method
```py
from typing_extensions import reveal_type

View file

@ -363,7 +363,7 @@ for x in Bad():
reveal_type(x) # revealed: Unknown
```
## `__iter__` returns an object with a possibly unbound `__next__` method
## `__iter__` returns an object with a possibly missing `__next__` method
```py
def _(flag: bool):
@ -412,7 +412,7 @@ for y in Iterable2():
reveal_type(y) # revealed: Unknown
```
## Possibly unbound `__iter__` and bad `__getitem__` method
## Possibly missing `__iter__` and bad `__getitem__` method
<!-- snapshot-diagnostics -->
@ -438,12 +438,12 @@ def _(flag: bool):
reveal_type(x) # revealed: int | bytes
```
## Possibly unbound `__iter__` and not-callable `__getitem__`
## Possibly missing `__iter__` and not-callable `__getitem__`
This snippet tests that we infer the element type correctly in the following edge case:
- `__iter__` is a method with the correct parameter spec that returns a valid iterator; BUT
- `__iter__` is possibly unbound; AND
- `__iter__` is possibly missing; AND
- `__getitem__` is set to a non-callable type
It's important that we emit a diagnostic here, but it's also important that we still use the return
@ -466,7 +466,7 @@ def _(flag: bool):
reveal_type(x) # revealed: int
```
## Possibly unbound `__iter__` and possibly unbound `__getitem__`
## Possibly missing `__iter__` and possibly missing `__getitem__`
<!-- snapshot-diagnostics -->
@ -560,7 +560,7 @@ for x in Iterable():
reveal_type(x) # revealed: int
```
## Possibly unbound `__iter__` but definitely bound `__getitem__`
## Possibly missing `__iter__` but definitely bound `__getitem__`
Here, we should not emit a diagnostic: if `__iter__` is unbound, we should fallback to
`__getitem__`:
@ -694,7 +694,7 @@ def _(flag: bool):
reveal_type(y) # revealed: str | int
```
## Possibly unbound `__iter__` and possibly invalid `__getitem__`
## Possibly missing `__iter__` and possibly invalid `__getitem__`
<!-- snapshot-diagnostics -->