[ty] fix lookup order of class variables before they are defined (#19743)
## Summary This is a follow-up to #19321. If we try to access a class variable before it is defined, the variable is looked up in the global scope, rather than in any enclosing scopes. Closes https://github.com/astral-sh/ty/issues/875. ## Test Plan New tests in `narrow/conditionals/nested.md`.
This commit is contained in:
committed by
GitHub
parent
b0f01ba514
commit
64bcc8db2f
@@ -346,7 +346,10 @@ l: list[str | Literal[1] | None] = [None]
|
||||
|
||||
def f(x: str | Literal[1] | None):
|
||||
class C:
|
||||
if x is not None: # TODO: should be an unresolved-reference error
|
||||
# If we try to access a variable in a class before it has been defined,
|
||||
# the lookup will fall back to global.
|
||||
# error: [unresolved-reference]
|
||||
if x is not None:
|
||||
def _():
|
||||
if x != 1:
|
||||
reveal_type(x) # revealed: str | None
|
||||
|
||||
Reference in New Issue
Block a user