From 494ae645654beb61f0a6d7a5868d22df2a3e02f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20Kr=C3=BCger?= Date: Wed, 6 Mar 2013 07:03:41 +0100 Subject: [PATCH] Fixed verbatim identifier location. --- ICSharpCode.NRefactory.CSharp/Ast/Identifier.cs | 2 +- .../Parser/Expression/IdentifierExpressionTests.cs | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/ICSharpCode.NRefactory.CSharp/Ast/Identifier.cs b/ICSharpCode.NRefactory.CSharp/Ast/Identifier.cs index 3321de2a03..fad153b03d 100644 --- a/ICSharpCode.NRefactory.CSharp/Ast/Identifier.cs +++ b/ICSharpCode.NRefactory.CSharp/Ast/Identifier.cs @@ -127,7 +127,7 @@ namespace ICSharpCode.NRefactory.CSharp if (string.IsNullOrEmpty(name)) return Identifier.Null; if (name[0] == '@') - return new Identifier (name.Substring (1), location) { IsVerbatim = true }; + return new Identifier (name.Substring (1), new TextLocation (location.Line, location.Column + 1)) { IsVerbatim = true }; else return new Identifier (name, location); } diff --git a/ICSharpCode.NRefactory.Tests/CSharp/Parser/Expression/IdentifierExpressionTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/Parser/Expression/IdentifierExpressionTests.cs index 96a1ce4da1..d5d29d6b43 100644 --- a/ICSharpCode.NRefactory.Tests/CSharp/Parser/Expression/IdentifierExpressionTests.cs +++ b/ICSharpCode.NRefactory.Tests/CSharp/Parser/Expression/IdentifierExpressionTests.cs @@ -98,5 +98,17 @@ namespace ICSharpCode.NRefactory.CSharp.Parser.Expression } }.IsMatch(ident)); } + + + [Test] + public void TestVerbatimIdentifier() + { + var tree = SyntaxTree.Parse ("class @foo {}"); + var ident = tree.GetNodeAt (1, 8); + Assert.IsNotNull (ident); + Assert.IsTrue (ident.IsVerbatim); + Assert.AreEqual (new TextLocation (1, 7), ident.StartLocation); + Assert.AreEqual (new TextLocation (1, 11), ident.EndLocation); + } } }