summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/test/test_typing.py3
-rw-r--r--Lib/typing.py2
2 files changed, 4 insertions, 1 deletions
diff --git a/Lib/test/test_typing.py b/Lib/test/test_typing.py
index 46bab5e..314716c 100644
--- a/Lib/test/test_typing.py
+++ b/Lib/test/test_typing.py
@@ -1367,6 +1367,9 @@ class GenericTests(BaseTestCase):
class A(Generic[T]):
pass
+ with self.assertRaises(TypeError):
+ A('foo')
+
class B:
def __new__(cls):
# call object
diff --git a/Lib/typing.py b/Lib/typing.py
index 89b73db..8025dfd 100644
--- a/Lib/typing.py
+++ b/Lib/typing.py
@@ -836,7 +836,7 @@ class Generic:
if cls is Generic:
raise TypeError("Type Generic cannot be instantiated; "
"it can be used only as a base class")
- if super().__new__ is object.__new__:
+ if super().__new__ is object.__new__ and cls.__init__ is not object.__init__:
obj = super().__new__(cls)
else:
obj = super().__new__(cls, *args, **kwds)