summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--astroid/brain/brain_typing.py1
-rw-r--r--tests/unittest_brain.py2
3 files changed, 6 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 42f02977..896db23d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -12,6 +12,9 @@ What's New in astroid 2.6.1?
============================
Release Date: TBA
+* Fix issue with ``TypedDict`` for Python 3.9+
+
+ Closes PyCQA/pylint#4610
What's New in astroid 2.6.0?
diff --git a/astroid/brain/brain_typing.py b/astroid/brain/brain_typing.py
index eada0452..5a5b678d 100644
--- a/astroid/brain/brain_typing.py
+++ b/astroid/brain/brain_typing.py
@@ -201,6 +201,7 @@ def infer_typedDict( # pylint: disable=invalid-name
col_offset=node.col_offset,
parent=node.parent,
)
+ class_def.postinit(bases=[extract_node("dict")], body=[], decorators=None)
return iter([class_def])
diff --git a/tests/unittest_brain.py b/tests/unittest_brain.py
index 6114e893..dcce9d91 100644
--- a/tests/unittest_brain.py
+++ b/tests/unittest_brain.py
@@ -1623,6 +1623,8 @@ class TypingBrain(unittest.TestCase):
inferred_base = next(node.bases[0].infer())
assert isinstance(inferred_base, nodes.ClassDef)
assert inferred_base.qname() == "typing.TypedDict"
+ typedDict_base = next(inferred_base.bases[0].infer())
+ assert typedDict_base.qname() == "builtins.dict"
@test_utils.require_version(minver="3.7")
def test_typing_alias_type(self):