diff options
author | Guido van Rossum <guido@python.org> | 2016-11-10 16:26:19 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2016-11-10 16:26:19 (GMT) |
commit | fc293ddf92778c1ae1d8bdb62ffc084f4cd2db79 (patch) | |
tree | de2b7813cf5fc622a0e5ab2e85ae70ae7c383aa2 /Lib | |
parent | 0a66a1cdd61ce7239298e19c938b05ade99cde8a (diff) | |
parent | c7b92950c90d99296b53f79fcc68a9f47b2d9356 (diff) | |
download | cpython-fc293ddf92778c1ae1d8bdb62ffc084f4cd2db79.zip cpython-fc293ddf92778c1ae1d8bdb62ffc084f4cd2db79.tar.gz cpython-fc293ddf92778c1ae1d8bdb62ffc084f4cd2db79.tar.bz2 |
Issue #28649: fix first issue with _ForwardRef (#327) (3.5->3.6)
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/typing.py | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/Lib/typing.py b/Lib/typing.py index f3e446e..462cc22 100644 --- a/Lib/typing.py +++ b/Lib/typing.py @@ -201,8 +201,7 @@ class _ForwardRef(_TypingBase, _root=True): """Wrapper to hold a forward reference.""" __slots__ = ('__forward_arg__', '__forward_code__', - '__forward_evaluated__', '__forward_value__', - '__forward_frame__') + '__forward_evaluated__', '__forward_value__') def __init__(self, arg): super().__init__(arg) @@ -217,12 +216,6 @@ class _ForwardRef(_TypingBase, _root=True): self.__forward_code__ = code self.__forward_evaluated__ = False self.__forward_value__ = None - typing_globals = globals() - frame = sys._getframe(1) - while frame is not None and frame.f_globals is typing_globals: - frame = frame.f_back - assert frame is not None - self.__forward_frame__ = frame def _eval_type(self, globalns, localns): if not self.__forward_evaluated__: @@ -242,10 +235,10 @@ class _ForwardRef(_TypingBase, _root=True): if not isinstance(other, _ForwardRef): return NotImplemented return (self.__forward_arg__ == other.__forward_arg__ and - self.__forward_frame__ == other.__forward_frame__) + self.__forward_value__ == other.__forward_value__) def __hash__(self): - return hash((self.__forward_arg__, self.__forward_frame__)) + return hash((self.__forward_arg__, self.__forward_value__)) def __instancecheck__(self, obj): raise TypeError("Forward references cannot be used with isinstance().") |