Browse Source

Fixed ignored unit test.

newNRvisualizers
Mike Krüger 14 years ago
parent
commit
d6d1f08492
  1. 16
      ICSharpCode.NRefactory.CSharp/Parser/CSharpParser.cs
  2. 4
      ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-parser.cs
  3. 2
      ICSharpCode.NRefactory.Tests/CSharp/Resolver/ObjectCreationTests.cs

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

@ -2699,7 +2699,14 @@ namespace ICSharpCode.NRefactory.CSharp @@ -2699,7 +2699,14 @@ namespace ICSharpCode.NRefactory.CSharp
if (minit == null)
return null;
var init = new ArrayInitializerExpression ();
var braceLocs = LocationsBag.GetLocations (minit);
if (braceLocs != null)
init.AddChild (new CSharpTokenNode (Convert (braceLocs [0])), ArrayInitializerExpression.Roles.LBrace);
AddConvertCollectionOrObjectInitializers (init, minit);
if (braceLocs != null && braceLocs.Count > 1)
init.AddChild (new CSharpTokenNode (Convert (braceLocs [1])), ArrayInitializerExpression.Roles.RBrace);
return init;
}
@ -2715,10 +2722,8 @@ namespace ICSharpCode.NRefactory.CSharp @@ -2715,10 +2722,8 @@ namespace ICSharpCode.NRefactory.CSharp
if (collectionInit != null) {
var parent = new ArrayInitializerExpression ();
var braceLocs = LocationsBag.GetLocations (expr);
if (braceLocs != null)
parent.AddChild (new CSharpTokenNode (Convert (braceLocs [0])), ArrayInitializerExpression.Roles.LBrace);
parent.AddChild (new CSharpTokenNode (Convert (expr.Location)), ArrayInitializerExpression.Roles.LBrace);
for (int i = 0; i < collectionInit.Arguments.Count; i++) {
var arg = collectionInit.Arguments [i] as CollectionElementInitializer.ElementInitializerArgument;
if (arg == null)
@ -2726,8 +2731,9 @@ namespace ICSharpCode.NRefactory.CSharp @@ -2726,8 +2731,9 @@ namespace ICSharpCode.NRefactory.CSharp
parent.AddChild ((ICSharpCode.NRefactory.CSharp.Expression)arg.Expr.Accept (this), ArrayInitializerExpression.Roles.Expression);
}
var braceLocs = LocationsBag.GetLocations (expr);
if (braceLocs != null)
parent.AddChild (new CSharpTokenNode (Convert (braceLocs [1])), ArrayInitializerExpression.Roles.RBrace);
parent.AddChild (new CSharpTokenNode (Convert (braceLocs [0])), ArrayInitializerExpression.Roles.RBrace);
init.AddChild (parent, ArrayInitializerExpression.Roles.Expression);
} else {

4
ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-parser.cs

@ -6350,8 +6350,10 @@ void case_445() @@ -6350,8 +6350,10 @@ void case_445()
{
if (yyVals[-1+yyTop] == null)
yyVal = null;
else
else {
yyVal = new CollectionElementInitializer ((List<Expression>)yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop])); // properly patched upstream
}
}
void case_446()

2
ICSharpCode.NRefactory.Tests/CSharp/Resolver/ObjectCreationTests.cs

@ -173,7 +173,7 @@ class B { @@ -173,7 +173,7 @@ class B {
Assert.AreEqual("Point.X", result.Member.FullName);
}
[Test, Ignore("Parser returns incorrect positions")]
[Test]
public void CollectionInitializerTest()
{
string program = @"using System.Collections.Generic;

Loading…
Cancel
Save