Skip to content

Commit f7b9183

Browse files
committed
Fix generation when Builders derive from each other
1 parent 98af5a9 commit f7b9183

1 file changed

Lines changed: 11 additions & 5 deletions

File tree

src/ImmutableObjectGraph.Generation/CodeGen+BuilderGen.cs

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,14 +54,10 @@ protected override void GenerateCore()
5454
builderMembers.Add(this.CreateConstructor());
5555
builderMembers.AddRange(this.CreateMutableProperties());
5656
builderMembers.Add(this.CreateToImmutableMethod());
57-
builderMembers.Add(this.CreatePropertyChangedEvent());
58-
builderMembers.Add(this.CreateOnPropertyChangedMethod());
5957
var builderType = SyntaxFactory.ClassDeclaration(BuilderTypeName.Identifier)
6058
.AddModifiers(
6159
SyntaxFactory.Token(SyntaxKind.PublicKeyword),
62-
SyntaxFactory.Token(SyntaxKind.PartialKeyword))
63-
.AddBaseListTypes(SyntaxFactory.SimpleBaseType(INotifyPropertyChanged))
64-
.WithMembers(SyntaxFactory.List(builderMembers));
60+
SyntaxFactory.Token(SyntaxKind.PartialKeyword));
6561
if (this.generator.applyToMetaType.HasAncestor)
6662
{
6763
builderType = builderType
@@ -71,6 +67,16 @@ protected override void GenerateCore()
7167
BuilderTypeName)))))
7268
.WithModifiers(builderType.Modifiers.Insert(0, SyntaxFactory.Token(SyntaxKind.NewKeyword)));
7369
}
70+
else
71+
{
72+
builderType = builderType
73+
.AddBaseListTypes(SyntaxFactory.SimpleBaseType(INotifyPropertyChanged));
74+
builderMembers.Add(this.CreatePropertyChangedEvent());
75+
builderMembers.Add(this.CreateOnPropertyChangedMethod());
76+
}
77+
78+
builderType = builderType
79+
.WithMembers(SyntaxFactory.List(builderMembers));
7480

7581
this.innerMembers.Add(builderType);
7682
}

0 commit comments

Comments
 (0)