@@ -505,11 +505,13 @@ def gen_class_fields(self,
505
505
for f in chosen_fields :
506
506
field_type = tp .substitute_type (
507
507
f .get_type (), super_cls_info .type_var_map )
508
- new_f = self .gen_field_decl (field_type , curr_cls .is_final )
508
+ new_f = self .gen_field_decl (field_type , curr_cls .is_final ,
509
+ add_to_parent = False )
509
510
new_f .name = f .name
510
511
new_f .override = True
511
512
new_f .is_final = f .is_final
512
513
fields .append (new_f )
514
+ self ._add_node_to_parent (self .namespace , new_f )
513
515
max_fields = max_fields - len (chosen_fields )
514
516
if max_fields < 0 :
515
517
return fields
@@ -763,7 +765,8 @@ def _gen_type_params_from_existing(self,
763
765
return new_type_params , substituted_type_params
764
766
765
767
def gen_field_decl (self , etype = None ,
766
- class_is_final = True ) -> ast .FieldDeclaration :
768
+ class_is_final = True ,
769
+ add_to_parent = True ) -> ast .FieldDeclaration :
767
770
"""Generate a class Field Declaration.
768
771
769
772
Args:
@@ -777,7 +780,8 @@ def gen_field_decl(self, etype=None,
777
780
exclude_covariants = not is_final )
778
781
field = ast .FieldDeclaration (name , field_type , is_final = is_final ,
779
782
can_override = can_override )
780
- self ._add_node_to_parent (self .namespace , field )
783
+ if add_to_parent :
784
+ self ._add_node_to_parent (self .namespace , field )
781
785
return field
782
786
783
787
def gen_variable_decl (self ,
0 commit comments