[ty] Use declared variable types as bidirectional type context (#20796)

## Summary

Use the declared type of variables as type context for the RHS of assignment expressions, e.g.,
```py
x: list[int | str]
x = [1]
reveal_type(x)  # revealed: list[int | str]
```
This commit is contained in:
Ibraheem Ahmed
2025-10-16 15:40:39 -04:00
committed by GitHub
parent 1ade4f2081
commit 25023cc0ea
4 changed files with 102 additions and 63 deletions

View File

@@ -310,13 +310,13 @@ no longer valid in the inner lazy scope.
def f(l: list[str | None]):
if l[0] is not None:
def _():
reveal_type(l[0]) # revealed: str | None | Unknown
reveal_type(l[0]) # revealed: str | None
l = [None]
def f(l: list[str | None]):
l[0] = "a"
def _():
reveal_type(l[0]) # revealed: str | None | Unknown
reveal_type(l[0]) # revealed: str | None
l = [None]
def f(l: list[str | None]):