Browse Source

Fixed Issue #44: The ending TextLocation of an ArrayCreateExpression

is incorrect when the array is initialized with zero elements
newNRvisualizers
Mike Krüger 14 years ago
parent
commit
6f1325dea7
  1. 2
      ICSharpCode.NRefactory.CSharp/Parser/CSharpParser.cs
  2. 13
      ICSharpCode.NRefactory.Tests/CSharp/Parser/Expression/ArrayCreateExpressionTests.cs

2
ICSharpCode.NRefactory.CSharp/Parser/CSharpParser.cs

@ -2850,7 +2850,7 @@ namespace ICSharpCode.NRefactory.CSharp
next = next.Next; next = next.Next;
} }
if (arrayCreationExpression.Initializers != null && arrayCreationExpression.Initializers.Count != 0) { if (arrayCreationExpression.Initializers != null) {
var initLocation = LocationsBag.GetLocations (arrayCreationExpression.Initializers); var initLocation = LocationsBag.GetLocations (arrayCreationExpression.Initializers);
ArrayInitializerExpression initializer = new ArrayInitializerExpression (); ArrayInitializerExpression initializer = new ArrayInitializerExpression ();

13
ICSharpCode.NRefactory.Tests/CSharp/Parser/Expression/ArrayCreateExpressionTests.cs

@ -146,7 +146,18 @@ namespace ICSharpCode.NRefactory.CSharp.Parser.Expression
} }
}}); }});
} }
[Test]
public void EmptyArrayCreation()
{
var ace = ParseUtilCSharp.ParseExpression<ArrayCreateExpression>("new [] { }");
Assert.AreEqual(new Role[] {
Roles.LBrace,
Roles.RBrace
}, ace.Initializer.Children.Select(c => c.Role).ToArray());
}
[Test, Ignore("Parser bug")] [Test, Ignore("Parser bug")]
public void ArrayInitializerWithCommaAtEnd() public void ArrayInitializerWithCommaAtEnd()
{ {

Loading…
Cancel
Save