summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2016-11-10 16:26:19 (GMT)
committerGuido van Rossum <guido@python.org>2016-11-10 16:26:19 (GMT)
commitfc293ddf92778c1ae1d8bdb62ffc084f4cd2db79 (patch)
treede2b7813cf5fc622a0e5ab2e85ae70ae7c383aa2 /Lib
parent0a66a1cdd61ce7239298e19c938b05ade99cde8a (diff)
parentc7b92950c90d99296b53f79fcc68a9f47b2d9356 (diff)
downloadcpython-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.py13
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().")