Skip to content

Commit 59e1883

Browse files
committed
fix name lookup and parse errors
1 parent 9acb1bb commit 59e1883

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

mypy/semanal.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -898,7 +898,7 @@ def analyze_metaclass(self, defn: ClassDef) -> None:
898898
if defn.metaclass == '<error>':
899899
self.fail("Dynamic metaclass not supported for '%s'" % defn.name, defn)
900900
return
901-
sym = self.lookup(defn.metaclass, defn)
901+
sym = self.lookup_qualified(defn.metaclass, defn)
902902
if sym is not None and isinstance(sym.node, TypeInfo):
903903
inst = fill_typevars(sym.node)
904904
assert isinstance(inst, Instance)

test-data/unit/semanal-errors.test

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -985,15 +985,15 @@ class A(Generic[T], Generic[S]): pass \
985985
[case testInvalidMetaclass]
986986
class A(metaclass=x): pass
987987
[out]
988-
main:3: error: Name 'x' is not defined
989-
main:3: error: Invalid metaclass 'x'
988+
main:1: error: Name 'x' is not defined
989+
main:1: error: Invalid metaclass 'x'
990990

991991
[case testInvalidQualifiedMetaclass]
992992
import abc
993993
class A(metaclass=abc.Foo): pass
994994
[out]
995-
main:3: error: Name 'abc.Foo' is not defined
996-
main:3: error: Invalid metaclass 'abc.Foo'
995+
main:2: error: Name 'abc.Foo' is not defined
996+
main:2: error: Invalid metaclass 'abc.Foo'
997997

998998
[case testNonClassMetaclass]
999999
def f(): pass

0 commit comments

Comments
 (0)