Skip to content

Commit 4753407

Browse files
committed
Fix SequencePointBuilder skipping moved member initializers
1 parent ec5d8da commit 4753407

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

ICSharpCode.Decompiler/CSharp/SequencePointBuilder.cs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,12 +163,28 @@ public override void VisitBlockStatement(BlockStatement blockStatement)
163163
}
164164
}
165165

166+
public override void VisitFieldDeclaration(FieldDeclaration fieldDeclaration)
167+
{
168+
foreach (var variable in fieldDeclaration.Variables)
169+
{
170+
if (!variable.Initializer.IsNull)
171+
{
172+
VisitAsSequencePoint(variable.Initializer);
173+
}
174+
}
175+
base.VisitFieldDeclaration(fieldDeclaration);
176+
}
177+
166178
public override void VisitPropertyDeclaration(PropertyDeclaration propertyDeclaration)
167179
{
168180
if (!propertyDeclaration.ExpressionBody.IsNull)
169181
{
170182
VisitAsSequencePoint(propertyDeclaration.ExpressionBody);
171183
}
184+
else if (!propertyDeclaration.Initializer.IsNull)
185+
{
186+
VisitAsSequencePoint(propertyDeclaration.Initializer);
187+
}
172188
else
173189
{
174190
base.VisitPropertyDeclaration(propertyDeclaration);
@@ -202,6 +218,18 @@ public override void VisitForStatement(ForStatement forStatement)
202218
VisitAsSequencePoint(forStatement.EmbeddedStatement);
203219
}
204220

221+
public override void VisitEventDeclaration(EventDeclaration eventDeclaration)
222+
{
223+
foreach (var variable in eventDeclaration.Variables)
224+
{
225+
if (!variable.Initializer.IsNull)
226+
{
227+
VisitAsSequencePoint(variable.Initializer);
228+
}
229+
}
230+
base.VisitEventDeclaration(eventDeclaration);
231+
}
232+
205233
public override void VisitSwitchStatement(SwitchStatement switchStatement)
206234
{
207235
StartSequencePoint(switchStatement);

0 commit comments

Comments
 (0)