diff --git a/ICSharpCode.Decompiler/CSharp/SequencePointBuilder.cs b/ICSharpCode.Decompiler/CSharp/SequencePointBuilder.cs index cda185d56..2ec65743a 100644 --- a/ICSharpCode.Decompiler/CSharp/SequencePointBuilder.cs +++ b/ICSharpCode.Decompiler/CSharp/SequencePointBuilder.cs @@ -165,12 +165,28 @@ namespace ICSharpCode.Decompiler.CSharp } } + public override void VisitFieldDeclaration(FieldDeclaration fieldDeclaration) + { + foreach (var variable in fieldDeclaration.Variables) + { + if (variable.Initializer is not null) + { + VisitAsSequencePoint(variable.Initializer); + } + } + base.VisitFieldDeclaration(fieldDeclaration); + } + public override void VisitPropertyDeclaration(PropertyDeclaration propertyDeclaration) { if (propertyDeclaration.ExpressionBody is not null) { VisitAsSequencePoint(propertyDeclaration.ExpressionBody); } + else if (propertyDeclaration.Initializer is not null) + { + VisitAsSequencePoint(propertyDeclaration.Initializer); + } else { base.VisitPropertyDeclaration(propertyDeclaration); @@ -204,6 +220,18 @@ namespace ICSharpCode.Decompiler.CSharp VisitAsSequencePoint(forStatement.EmbeddedStatement); } + public override void VisitEventDeclaration(EventDeclaration eventDeclaration) + { + foreach (var variable in eventDeclaration.Variables) + { + if (variable.Initializer is not null) + { + VisitAsSequencePoint(variable.Initializer); + } + } + base.VisitEventDeclaration(eventDeclaration); + } + public override void VisitSwitchStatement(SwitchStatement switchStatement) { StartSequencePoint(switchStatement);