diff --git a/astroid/brain/brain_typing.py b/astroid/brain/brain_typing.py index 08060d248b..d699ba451e 100644 --- a/astroid/brain/brain_typing.py +++ b/astroid/brain/brain_typing.py @@ -180,13 +180,13 @@ def infer_typing_alias( if res != astroid.Uninferable and isinstance(res, nodes.ClassDef): class_def = nodes.ClassDef( - name=res.name, - lineno=res.lineno, - col_offset=res.col_offset, + name=f"{res.name}_typing", + lineno=0, + col_offset=0, parent=res.parent, ) class_def.postinit( - bases=res.bases, + bases=[res], body=res.body, decorators=res.decorators, metaclass=create_typing_metaclass(), @@ -196,8 +196,8 @@ def infer_typing_alias( if len(node.args) == 2 and isinstance(node.args[0], nodes.Attribute): class_def = nodes.ClassDef( name=node.args[0].attrname, - lineno=node.lineno, - col_offset=node.col_offset, + lineno=0, + col_offset=0, parent=node.parent, ) class_def.postinit( diff --git a/tests/unittest_brain.py b/tests/unittest_brain.py index e07685d09b..7154de3619 100644 --- a/tests/unittest_brain.py +++ b/tests/unittest_brain.py @@ -1220,18 +1220,15 @@ def test_typing_alias_type(self): def check_metaclass(node: nodes.ClassDef): meta = node.metaclass() - assert ( - isinstance(meta, nodes.ClassDef) - and meta.name == "ABCMeta_typing" - and "ABCMeta" == meta.basenames[0] - and meta.locals.get("__getitem__") is not None - ) + assert isinstance(meta, nodes.ClassDef) + assert meta.name == "ABCMeta_typing" + assert "ABCMeta" == meta.basenames[0] + assert meta.locals.get("__getitem__") is not None + abc_meta = next(meta.bases[0].infer()) - assert ( - isinstance(abc_meta, nodes.ClassDef) - and abc_meta.name == "ABCMeta" - and abc_meta.locals.get("__getitem__") is None - ) + assert isinstance(abc_meta, nodes.ClassDef) + assert abc_meta.name == "ABCMeta" + assert abc_meta.locals.get("__getitem__") is None node = builder.extract_node( """ @@ -1250,6 +1247,7 @@ class Derived1(MutableSet[T]): inferred, [ "Derived1", + "MutableSet_typing", "MutableSet", "Set", "Collection", @@ -1273,6 +1271,7 @@ class Derived2(typing.OrderedDict[int, str]): inferred, [ "Derived2", + "OrderedDict_typing", "OrderedDict", "dict", "object",