[Python-checkins] cpython (3.5): Issue #28649: fix first issue with _ForwardRef (#327)

guido.van.rossum python-checkins at python.org
Thu Nov 10 11:28:21 EST 2016


https://hg.python.org/cpython/rev/0da2e381ad71
changeset:   105033:0da2e381ad71
branch:      3.5
parent:      105030:ba59f3328032
user:        Guido van Rossum <guido at python.org>
date:        Thu Nov 10 08:24:06 2016 -0800
summary:
  Issue #28649: fix first issue with _ForwardRef (#327)

files:
  Lib/typing.py |  13 +++----------
  1 files changed, 3 insertions(+), 10 deletions(-)


diff --git a/Lib/typing.py b/Lib/typing.py
--- a/Lib/typing.py
+++ b/Lib/typing.py
@@ -201,8 +201,7 @@
     """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 @@
         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 @@
         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().")

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list