mirror of
https://github.com/astral-sh/ruff.git
synced 2025-10-02 14:52:01 +00:00

## Summary Another small PR to focus #15674 solely on the relevant changes. This makes our Markdown tests less dependent on precise types of public symbols, without actually changing anything semantically in these tests. Best reviewed using ignore-whitespace-mode. ## Test Plan Tested these changes on `main` and on the branch from #15674.
593 B
593 B
Builtin scope
Conditionally global or builtin
If a builtin name is conditionally defined as a global, a name lookup should union the builtin type with the conditionally-defined type:
def returns_bool() -> bool:
return True
if returns_bool():
chr: int = 1
def f():
reveal_type(chr) # revealed: Literal[chr] | int
Conditionally global or builtin, with annotation
Same is true if the name is annotated:
def returns_bool() -> bool:
return True
if returns_bool():
chr: int = 1
def f():
reveal_type(chr) # revealed: Literal[chr] | int