From 98719849915bb68b97db804e73c667900b49ef22 Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Sat, 14 Oct 2017 13:34:25 +0200 Subject: [PATCH] Fix end location of PrimitiveExpression --- .../CSharp/OutputVisitor/InsertMissingTokensDecorator.cs | 7 ++++--- .../CSharp/Syntax/Expressions/PrimitiveExpression.cs | 6 +++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/ICSharpCode.Decompiler/CSharp/OutputVisitor/InsertMissingTokensDecorator.cs b/ICSharpCode.Decompiler/CSharp/OutputVisitor/InsertMissingTokensDecorator.cs index 203e29c43..1e20d061a 100644 --- a/ICSharpCode.Decompiler/CSharp/OutputVisitor/InsertMissingTokensDecorator.cs +++ b/ICSharpCode.Decompiler/CSharp/OutputVisitor/InsertMissingTokensDecorator.cs @@ -103,13 +103,14 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor public override void WritePrimitiveValue(object value, string literalValue = null) { Expression node = nodes.Peek().LastOrDefault() as Expression; + var startLocation = locationProvider.Location; + base.WritePrimitiveValue(value, literalValue); if (node is PrimitiveExpression) { - ((PrimitiveExpression)node).SetStartLocation(locationProvider.Location); + ((PrimitiveExpression)node).SetLocation(startLocation, locationProvider.Location); } if (node is NullReferenceExpression) { - ((NullReferenceExpression)node).SetStartLocation(locationProvider.Location); + ((NullReferenceExpression)node).SetStartLocation(startLocation); } - base.WritePrimitiveValue(value, literalValue); } public override void WritePrimitiveType(string type) diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/PrimitiveExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/PrimitiveExpression.cs index af3818269..3e6d49724 100644 --- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/PrimitiveExpression.cs +++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/PrimitiveExpression.cs @@ -43,11 +43,11 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax } } - internal void SetStartLocation(TextLocation value) + internal void SetLocation(TextLocation startLocation, TextLocation endLocation) { ThrowIfFrozen(); - this.startLocation = value; - this.endLocation = null; + this.startLocation = startLocation; + this.endLocation = endLocation; } string literalValue;