@@ -50,7 +50,7 @@ public void Run(AstNode node, TransformContext context)
5050 {
5151 // If we're viewing some set of members (fields are direct children of SyntaxTree),
5252 // we also need to handle those:
53- HandleInstanceFieldInitializers ( node . Children , context . CurrentTypeDefinition ) ;
53+ HandleInstanceFieldInitializers ( node . Children , null , context . CurrentTypeDefinition ) ;
5454 HandleStaticFieldInitializers ( node . Children , context . CurrentTypeDefinition ) ;
5555
5656 node . AcceptVisitor ( this ) ;
@@ -173,7 +173,7 @@ public override void VisitTypeDeclaration(TypeDeclaration typeDeclaration)
173173 var currentTypeDefinition = ( ITypeDefinition ) typeDeclaration . GetSymbol ( ) ;
174174
175175 // Handle initializers on instance fields
176- HandleInstanceFieldInitializers ( typeDeclaration . Members , currentTypeDefinition ) ;
176+ HandleInstanceFieldInitializers ( typeDeclaration . Members , typeDeclaration , currentTypeDefinition ) ;
177177
178178 // Now convert base constructor calls to initializers:
179179 base . VisitTypeDeclaration ( typeDeclaration ) ;
@@ -200,10 +200,11 @@ static bool ChainsWithThis(ConstructorDeclaration ctor)
200200 return true ;
201201 }
202202
203- void HandleInstanceFieldInitializers ( IEnumerable < AstNode > members , ITypeDefinition currentTypeDefinition )
203+ void HandleInstanceFieldInitializers ( IEnumerable < AstNode > members , EntityDeclaration entityDeclaration , ITypeDefinition currentTypeDefinition )
204204 {
205- if ( currentTypeDefinition is { Kind : TypeKind . Struct , IsRecord : false }
206- && ! context . Settings . StructDefaultConstructorsAndFieldInitializers )
205+ if ( ! context . Settings . StructDefaultConstructorsAndFieldInitializers
206+ && currentTypeDefinition is { Kind : TypeKind . Struct , IsRecord : false }
207+ && entityDeclaration is TypeDeclaration { HasPrimaryConstructor : false } )
207208 {
208209 return ;
209210 }
0 commit comments