diff --git a/ICSharpCode.NRefactory.CSharp/Parser/CSharpParser.cs b/ICSharpCode.NRefactory.CSharp/Parser/CSharpParser.cs index eb018c965e..0ef09ac4ad 100644 --- a/ICSharpCode.NRefactory.CSharp/Parser/CSharpParser.cs +++ b/ICSharpCode.NRefactory.CSharp/Parser/CSharpParser.cs @@ -1885,7 +1885,7 @@ namespace ICSharpCode.NRefactory.CSharp varInit.AddChild (Identifier.Create (blockVariableDeclaration.Variable.Name, Convert (blockVariableDeclaration.Variable.Location)), VariableInitializer.Roles.Identifier); if (blockVariableDeclaration.Initializer != null) { if (initLocation != null) - varInit.AddChild (new CSharpTokenNode (Convert (location [0])), VariableInitializer.Roles.Assign); + varInit.AddChild (new CSharpTokenNode (Convert (initLocation [0])), VariableInitializer.Roles.Assign); varInit.AddChild ((Expression)blockVariableDeclaration.Initializer.Accept (this), VariableInitializer.Roles.Expression); } @@ -2221,9 +2221,7 @@ namespace ICSharpCode.NRefactory.CSharp { var result = new UnaryOperatorExpression (); result.Operator = UnaryOperatorType.Dereference; - var location = LocationsBag.GetLocations (indirectionExpression); - if (location != null) - result.AddChild (new CSharpTokenNode (Convert (location [0])), UnaryOperatorExpression.DereferenceRole); + result.AddChild (new CSharpTokenNode (Convert (indirectionExpression.Location)), UnaryOperatorExpression.DereferenceRole); if (indirectionExpression.Expr != null) result.AddChild ((Expression)indirectionExpression.Expr.Accept (this), UnaryOperatorExpression.Roles.Expression); return result; diff --git a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/UnsafeCodeTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/UnsafeCodeTests.cs index dbd357926b..349eb9d1ec 100644 --- a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/UnsafeCodeTests.cs +++ b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/UnsafeCodeTests.cs @@ -25,7 +25,7 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver [TestFixture] public class UnsafeCodeTests : ResolverTestBase { - [Test, Ignore("Parser returns incorrect positions")] + [Test] public void FixedStatement() { string program = @"using System; @@ -38,8 +38,8 @@ class TestClass { var lrr = Resolve(program); Assert.AreEqual("System.Byte*", lrr.Type.ReflectionName); - var rr = Resolve(program.Replace("$p$", "$*p$")); - Assert.AreEqual("System.Byte", lrr.Type.ReflectionName); + var rr = Resolve(program.Replace("$p$", "$*p$")); + Assert.AreEqual("System.Byte", rr.Type.ReflectionName); } [Test]