mark these as TODO

This commit is contained in:
Douglas Creager
2025-12-02 14:46:29 -05:00
parent 2b949b3e67
commit d88120b187
3 changed files with 30 additions and 11 deletions

View File

@@ -458,10 +458,14 @@ class C:
def f2(cls: type[C], x: int) -> str:
return "a"
reveal_type(C.f1(1)) # revealed: str
reveal_type(C().f1(1)) # revealed: str
reveal_type(C.f2(1)) # revealed: str
reveal_type(C().f2(1)) # revealed: str
# TODO: revealed: str
reveal_type(C.f1(1)) # revealed: str | Divergent
# TODO: revealed: str
reveal_type(C().f1(1)) # revealed: str | Divergent
# TODO: revealed: str
reveal_type(C.f2(1)) # revealed: str | Divergent
# TODO: revealed: str
reveal_type(C().f2(1)) # revealed: str | Divergent
```
### `__init_subclass__`
@@ -582,10 +586,14 @@ class C:
def f2(x: int) -> str:
return "a"
reveal_type(C.f1(1)) # revealed: str
reveal_type(C().f1(1)) # revealed: str
reveal_type(C.f2(1)) # revealed: str
reveal_type(C().f2(1)) # revealed: str
# TODO: revealed: str
reveal_type(C.f1(1)) # revealed: str | Divergent
# TODO: revealed: str
reveal_type(C().f1(1)) # revealed: str | Divergent
# TODO: revealed: str
reveal_type(C.f2(1)) # revealed: str | Divergent
# TODO: revealed: str
reveal_type(C().f2(1)) # revealed: str | Divergent
```
### `__new__`

View File

@@ -144,8 +144,12 @@ from functools import cache
def f(x: int) -> int:
return x**2
reveal_type(f) # revealed: _lru_cache_wrapper[int]
reveal_type(f(1)) # revealed: int
# TODO: revealed: _lru_cache_wrapper[int]
# revealed: _lru_cache_wrapper[int] | _lru_cache_wrapper[Unknown]
reveal_type(f)
# TODO: revealed: int
# revealed: int | Unknown
reveal_type(f(1))
```
## Lambdas as decorators

View File

@@ -329,11 +329,18 @@ from typing_extensions import overload
def f(x: str): ...
@overload
def f(x: int): ...
# TODO: no error
# (This is caused by a salsa cycle and how we union type inference results to avoid oscillations
# during cycle handling.)
# error: [invalid-overload] "Overloaded function `f` requires at least two overloads"
def f(x):
print(x)
f(1)
f("hello") # TODO: error: [deprecated] "strings are no longer supported"
# TODO: no invalid-argument-type error
# TODO: error: [deprecated] "strings are no longer supported"
# error: [invalid-argument-type] "Argument to function `f` is incorrect: Expected `int`, found `Literal["hello"]`"
f("hello")
```
If the actual impl is deprecated, the deprecation always fires.