summaryrefslogtreecommitdiff
path: root/pylint/checkers/base/name_checker/checker.py
diff options
context:
space:
mode:
Diffstat (limited to 'pylint/checkers/base/name_checker/checker.py')
-rw-r--r--pylint/checkers/base/name_checker/checker.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/pylint/checkers/base/name_checker/checker.py b/pylint/checkers/base/name_checker/checker.py
index 1341edc96..616067d1f 100644
--- a/pylint/checkers/base/name_checker/checker.py
+++ b/pylint/checkers/base/name_checker/checker.py
@@ -597,7 +597,13 @@ class NameChecker(_BasicChecker):
inferred = utils.safe_infer(node)
if isinstance(inferred, nodes.ClassDef):
if inferred.qname() == ".Union":
- return True
+ # Union is a special case because it can be used as a type alias
+ # or as a type annotation. We only want to check the former.
+ assert node is not None
+ return not (
+ isinstance(node.parent, nodes.AnnAssign)
+ and node.parent.value is not None
+ )
elif isinstance(inferred, nodes.FunctionDef):
if inferred.qname() == "typing.TypeAlias":
return True