@@ -201,8 +201,7 @@ class _ForwardRef(_TypingBase, _root=True):
201201 """Wrapper to hold a forward reference."""
202202
203203 __slots__ = ('__forward_arg__' , '__forward_code__' ,
204- '__forward_evaluated__' , '__forward_value__' ,
205- '__forward_frame__' )
204+ '__forward_evaluated__' , '__forward_value__' )
206205
207206 def __init__ (self , arg ):
208207 super ().__init__ (arg )
@@ -217,12 +216,6 @@ def __init__(self, arg):
217216 self .__forward_code__ = code
218217 self .__forward_evaluated__ = False
219218 self .__forward_value__ = None
220- typing_globals = globals ()
221- frame = sys ._getframe (1 )
222- while frame is not None and frame .f_globals is typing_globals :
223- frame = frame .f_back
224- assert frame is not None
225- self .__forward_frame__ = frame
226219
227220 def _eval_type (self , globalns , localns ):
228221 if not self .__forward_evaluated__ :
@@ -242,10 +235,10 @@ def __eq__(self, other):
242235 if not isinstance (other , _ForwardRef ):
243236 return NotImplemented
244237 return (self .__forward_arg__ == other .__forward_arg__ and
245- self .__forward_frame__ == other .__forward_frame__ )
238+ self .__forward_value__ == other .__forward_value__ )
246239
247240 def __hash__ (self ):
248- return hash ((self .__forward_arg__ , self .__forward_frame__ ))
241+ return hash ((self .__forward_arg__ , self .__forward_value__ ))
249242
250243 def __instancecheck__ (self , obj ):
251244 raise TypeError ("Forward references cannot be used with isinstance()." )
0 commit comments