@@ -329,6 +329,18 @@ def MaybeSubstituteParameters(base_type, parameters=None):
329
329
return base_type .Visit (ReplaceTypeParameters (mapping ))
330
330
331
331
332
+ def _MaybeSubstituteParametersInGenericType (node ):
333
+ if isinstance (node .base_type , (pytd .GenericType , pytd .UnionType )):
334
+ try :
335
+ node = MaybeSubstituteParameters (
336
+ node .base_type , node .parameters ) or node
337
+ except ValueError as e :
338
+ raise KeyError (str (e )) from e
339
+ elif isinstance (node .base_type , pytd .AnythingType ):
340
+ return node .base_type
341
+ return node
342
+
343
+
332
344
class LookupExternalTypes (_RemoveTypeParametersFromGenericAny , _ToTypeVisitor ):
333
345
"""Look up NamedType pointers using a symbol table."""
334
346
@@ -482,13 +494,7 @@ def VisitClassType(self, t):
482
494
return new_type
483
495
484
496
def VisitGenericType (self , node ):
485
- if isinstance (node .base_type , (pytd .GenericType , pytd .UnionType )):
486
- try :
487
- node = MaybeSubstituteParameters (
488
- node .base_type , node .parameters ) or node
489
- except ValueError as e :
490
- raise KeyError (str (e )) from e
491
- return node
497
+ return _MaybeSubstituteParametersInGenericType (node )
492
498
493
499
def _ModulePrefix (self ):
494
500
return self .name + "." if self .name else ""
@@ -757,6 +763,9 @@ def VisitClassType(self, t):
757
763
t .cls = cast (pytd .ClassType , self .VisitNamedType (lookup_type )).cls
758
764
return t
759
765
766
+ def VisitGenericType (self , node ):
767
+ return _MaybeSubstituteParametersInGenericType (node )
768
+
760
769
761
770
class ReplaceTypes (Visitor ):
762
771
"""Visitor for replacing types in a tree.
0 commit comments