[ty] Add cycle handling to lazy_default (#20967)

This commit is contained in:
Micha Reiser
2025-10-23 10:05:08 +02:00
committed by GitHub
parent c3631c78bd
commit e92fd51a2c
3 changed files with 26 additions and 2 deletions

View File

@@ -313,6 +313,23 @@ static_assert(is_subtype_of(Bottom[JsonDict], Bottom[JsonDict]))
static_assert(is_subtype_of(Bottom[JsonDict], Top[JsonDict]))
```
### Cyclic defaults
```py
from typing_extensions import Protocol, TypeVar
T = TypeVar("T", default="C", covariant=True)
class P(Protocol[T]):
pass
class C(P[T]):
pass
reveal_type(C[int]()) # revealed: C[int]
reveal_type(C()) # revealed: C[Divergent]
```
### Union inside generic
#### With old-style union