@@ -149,19 +149,9 @@ def _eval_type(t, globalns, localns, recursive_guard=frozenset()):
149149 return t
150150
151151
152- class ForwardRef (_Final , _root = True ):
152+ class BasedForwardRef (_Final , _root = True ):
153153 """Internal wrapper to hold a forward reference."""
154154
155- __slots__ = (
156- "__forward_arg__" ,
157- "__forward_code__" ,
158- "__forward_evaluated__" ,
159- "__forward_value__" ,
160- "__forward_is_argument__" ,
161- "__forward_is_class__" ,
162- "__forward_module__" ,
163- )
164-
165155 def __init__ (self , arg , is_argument = True , module = None , * , is_class = False ):
166156 if isinstance (arg , str ):
167157 # If we do `def f(*args: *Ts)`, then we'll have `arg = '*Ts'`.
@@ -181,9 +171,6 @@ def __init__(self, arg, is_argument=True, module=None, *, is_class=False):
181171 code = compile (arg_to_compile , "<string>" , "eval" )
182172 except SyntaxError :
183173 raise SyntaxError (f"Forward reference must be an expression -- got { arg !r} " )
184- except TypeError as t :
185- print (arg_to_compile .body , t )
186- ...
187174 self .__forward_arg__ = arg
188175 self .__forward_code__ = code
189176 self .__forward_evaluated__ = False
@@ -226,35 +213,6 @@ def _evaluate(self, globalns, localns, recursive_guard):
226213 self .__forward_evaluated__ = True
227214 return self .__forward_value__
228215
229- def __eq__ (self , other ):
230- if not isinstance (other , ForwardRef ):
231- return NotImplemented
232- if self .__forward_evaluated__ and other .__forward_evaluated__ :
233- return (
234- self .__forward_arg__ == other .__forward_arg__
235- and self .__forward_value__ == other .__forward_value__
236- )
237- return (
238- self .__forward_arg__ == other .__forward_arg__
239- and self .__forward_module__ == other .__forward_module__
240- )
241-
242- def __hash__ (self ):
243- return hash ((self .__forward_arg__ , self .__forward_module__ ))
244-
245- def __or__ (self , other ):
246- return Union [self , other ]
247-
248- def __ror__ (self , other ):
249- return Union [other , self ]
250-
251- def __repr__ (self ):
252- if self .__forward_module__ is None :
253- module_repr = ""
254- else :
255- module_repr = f", module={ self .__forward_module__ !r} "
256- return f"ForwardRef({ self .__forward_arg__ !r} { module_repr } )"
257-
258216
259217class BasedTypeParser (NodeTransformer ):
260218 in_subscript = 0
0 commit comments