Skip to content

Commit 677289d

Browse files
committed
Fix the generation of overriden fields
1 parent e1a2cec commit 677289d

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

src/generators/generator.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -505,11 +505,13 @@ def gen_class_fields(self,
505505
for f in chosen_fields:
506506
field_type = tp.substitute_type(
507507
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)
509510
new_f.name = f.name
510511
new_f.override = True
511512
new_f.is_final = f.is_final
512513
fields.append(new_f)
514+
self._add_node_to_parent(self.namespace, new_f)
513515
max_fields = max_fields - len(chosen_fields)
514516
if max_fields < 0:
515517
return fields
@@ -763,7 +765,8 @@ def _gen_type_params_from_existing(self,
763765
return new_type_params, substituted_type_params
764766

765767
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:
767770
"""Generate a class Field Declaration.
768771
769772
Args:
@@ -777,7 +780,8 @@ def gen_field_decl(self, etype=None,
777780
exclude_covariants=not is_final)
778781
field = ast.FieldDeclaration(name, field_type, is_final=is_final,
779782
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)
781785
return field
782786

783787
def gen_variable_decl(self,

0 commit comments

Comments
 (0)