diff --git a/ICSharpCode.Decompiler/CSharp/SequencePointBuilder.cs b/ICSharpCode.Decompiler/CSharp/SequencePointBuilder.cs index 150191eadc..81e4808aa6 100644 --- a/ICSharpCode.Decompiler/CSharp/SequencePointBuilder.cs +++ b/ICSharpCode.Decompiler/CSharp/SequencePointBuilder.cs @@ -163,12 +163,28 @@ public override void VisitBlockStatement(BlockStatement blockStatement) } } + 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 @@ public override void VisitForStatement(ForStatement forStatement) 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);