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

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


https://hg.python.org/cpython/rev/249a1f0b2857
changeset: 105034:249a1f0b2857
branch: 3.6
parent: 105031:5b253d641826
parent: 105033:0da2e381ad71
user: Guido van Rossum <guido at python.org>
date: Thu Nov 10 08:26:19 2016 -0800
summary:
 Issue #28649: fix first issue with _ForwardRef (#327) (3.5->3.6)
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

AltStyle によって変換されたページ (->オリジナル) /