@@ -149,19 +149,9 @@ def _eval_type(t, globalns, localns, recursive_guard=frozenset()):
149
149
return t
150
150
151
151
152
- class ForwardRef (_Final , _root = True ):
152
+ class BasedForwardRef (_Final , _root = True ):
153
153
"""Internal wrapper to hold a forward reference."""
154
154
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
-
165
155
def __init__ (self , arg , is_argument = True , module = None , * , is_class = False ):
166
156
if isinstance (arg , str ):
167
157
# 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):
181
171
code = compile (arg_to_compile , "<string>" , "eval" )
182
172
except SyntaxError :
183
173
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
- ...
187
174
self .__forward_arg__ = arg
188
175
self .__forward_code__ = code
189
176
self .__forward_evaluated__ = False
@@ -226,35 +213,6 @@ def _evaluate(self, globalns, localns, recursive_guard):
226
213
self .__forward_evaluated__ = True
227
214
return self .__forward_value__
228
215
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
-
258
216
259
217
class BasedTypeParser (NodeTransformer ):
260
218
in_subscript = 0
0 commit comments