Skip to content

Commit 8ed204e

Browse files
committed
fix name lookup and parse errors
1 parent 12026de commit 8ed204e

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

mypy/semanal.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -901,7 +901,7 @@ def analyze_metaclass(self, defn: ClassDef) -> None:
901901
if defn.metaclass == '<error>':
902902
self.fail("Dynamic metaclass not supported for '%s'" % defn.name, defn)
903903
return
904-
sym = self.lookup(defn.metaclass, defn)
904+
sym = self.lookup_qualified(defn.metaclass, defn)
905905
if sym is not None and isinstance(sym.node, TypeInfo):
906906
inst = fill_typevars(sym.node)
907907
assert isinstance(inst, Instance)

test-data/unit/semanal-errors.test

+4-4
Original file line numberDiff line numberDiff line change
@@ -951,15 +951,15 @@ class A(Generic[T], Generic[S]): pass \
951951
[case testInvalidMetaclass]
952952
class A(metaclass=x): pass
953953
[out]
954-
main:3: error: Name 'x' is not defined
955-
main:3: error: Invalid metaclass 'x'
954+
main:1: error: Name 'x' is not defined
955+
main:1: error: Invalid metaclass 'x'
956956

957957
[case testInvalidQualifiedMetaclass]
958958
import abc
959959
class A(metaclass=abc.Foo): pass
960960
[out]
961-
main:3: error: Name 'abc.Foo' is not defined
962-
main:3: error: Invalid metaclass 'abc.Foo'
961+
main:2: error: Name 'abc.Foo' is not defined
962+
main:2: error: Invalid metaclass 'abc.Foo'
963963

964964
[case testNonClassMetaclass]
965965
def f(): pass

0 commit comments

Comments
 (0)