cpython: 94010653379c (original) (raw)

--- a/Lib/test/test_typing.py +++ b/Lib/test/test_typing.py @@ -4,6 +4,7 @@ import pickle import re import sys from unittest import TestCase, main, skipUnless, SkipTest +from copy import copy, deepcopy from typing import Any from typing import TypeVar, AnyStr @@ -845,6 +846,24 @@ class GenericTests(BaseTestCase): self.assertEqual(x.foo, 42) self.assertEqual(x.bar, 'abc') self.assertEqual(x.dict, {'foo': 42, 'bar': 'abc'})

+

def test_errors(self): with self.assertRaises(TypeError):

--- a/Lib/typing.py +++ b/Lib/typing.py @@ -190,6 +190,9 @@ class _FinalTypingBase(_TypingBase, _roo return self raise TypeError("Cannot instantiate %r" % cls)

+ class _ForwardRef(_TypingBase, _root=True): """Wrapper to hold a forward reference.""" @@ -1051,6 +1054,11 @@ class GenericMeta(TypingMeta, abc.ABCMet # classes are supposed to be rare anyways. return issubclass(instance.class, self)

+

Prevent checks for Generic to crash when defining Generic.

Generic = None