Browse Source

Fix SequencePointBuilder skipping moved member initializers

pull/3712/head
nikitalita 6 days ago
parent
commit
6611fb1c4a
  1. 28
      ICSharpCode.Decompiler/CSharp/SequencePointBuilder.cs

28
ICSharpCode.Decompiler/CSharp/SequencePointBuilder.cs

@ -163,12 +163,28 @@ namespace ICSharpCode.Decompiler.CSharp @@ -163,12 +163,28 @@ namespace ICSharpCode.Decompiler.CSharp
}
}
public override void VisitFieldDeclaration(FieldDeclaration fieldDeclaration)
{
foreach (var variable in fieldDeclaration.Variables)
{
if (!variable.AssignToken.IsNull || !variable.Initializer.IsNull)
{
VisitAsSequencePoint(variable);
}
}
base.VisitFieldDeclaration(fieldDeclaration);
}
public override void VisitPropertyDeclaration(PropertyDeclaration propertyDeclaration)
{
if (!propertyDeclaration.ExpressionBody.IsNull)
{
VisitAsSequencePoint(propertyDeclaration.ExpressionBody);
}
else if (!propertyDeclaration.Initializer.IsNull)
{
VisitAsSequencePoint(propertyDeclaration.Initializer);
}
else
{
base.VisitPropertyDeclaration(propertyDeclaration);
@ -202,6 +218,18 @@ namespace ICSharpCode.Decompiler.CSharp @@ -202,6 +218,18 @@ namespace ICSharpCode.Decompiler.CSharp
VisitAsSequencePoint(forStatement.EmbeddedStatement);
}
public override void VisitEventDeclaration(EventDeclaration eventDeclaration)
{
foreach (var variable in eventDeclaration.Variables)
{
if (!variable.AssignToken.IsNull || !variable.Initializer.IsNull)
{
VisitAsSequencePoint(variable);
}
}
base.VisitEventDeclaration(eventDeclaration);
}
public override void VisitSwitchStatement(SwitchStatement switchStatement)
{
StartSequencePoint(switchStatement);

Loading…
Cancel
Save