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

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

@ -146,7 +146,18 @@ namespace ICSharpCode.NRefactory.CSharp.Parser.Expression @@ -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")]
public void ArrayInitializerWithCommaAtEnd()
{

Loading…
Cancel
Save