summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony Sottile <asottile@umich.edu>2022-09-08 18:10:17 -0400
committerGitHub <noreply@github.com>2022-09-08 18:10:17 -0400
commit4dcd92e45efeb0615ba1c96d45241a037d30abe0 (patch)
treef0ed6dc91d9eb272bbbe24995d5757ef2d25233c
parent7d6479e46f8f3e9607c9ef7975cc892db023d413 (diff)
downloadpyflakes-4dcd92e45efeb0615ba1c96d45241a037d30abe0.tar.gz
detect undefined name of variable defined by AnnAssign (#729)
-rw-r--r--pyflakes/checker.py2
-rw-r--r--pyflakes/test/test_type_annotations.py5
2 files changed, 6 insertions, 1 deletions
diff --git a/pyflakes/checker.py b/pyflakes/checker.py
index ae15621..56fc3ca 100644
--- a/pyflakes/checker.py
+++ b/pyflakes/checker.py
@@ -2265,7 +2265,6 @@ class Checker:
self.scope[node.name] = prev_definition
def ANNASSIGN(self, node):
- self.handleNode(node.target, node)
self.handleAnnotation(node.annotation, node)
# If the assignment has value, handle the *value* now.
if node.value:
@@ -2274,6 +2273,7 @@ class Checker:
self.handleAnnotation(node.value, node)
else:
self.handleNode(node.value, node)
+ self.handleNode(node.target, node)
def COMPARE(self, node):
left = node.left
diff --git a/pyflakes/test/test_type_annotations.py b/pyflakes/test/test_type_annotations.py
index 3775cd3..d881205 100644
--- a/pyflakes/test/test_type_annotations.py
+++ b/pyflakes/test/test_type_annotations.py
@@ -298,6 +298,11 @@ class TestTypeAnnotations(TestCase):
a: 'a: "A"'
''', m.ForwardAnnotationSyntaxError)
+ def test_variable_annotation_references_self_name_undefined(self):
+ self.flakes("""
+ x: int = x
+ """, m.UndefinedName)
+
def test_TypeAlias_annotations(self):
self.flakes("""
from typing_extensions import TypeAlias