Browse Source

Fixed initializer comma locations.

newNRvisualizers
Mike Krüger 14 years ago
parent
commit
618cb984d1
  1. 13
      ICSharpCode.NRefactory.CSharp/Parser/CSharpParser.cs

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

@ -2488,8 +2488,6 @@ namespace ICSharpCode.NRefactory.CSharp @@ -2488,8 +2488,6 @@ namespace ICSharpCode.NRefactory.CSharp
if (braceLocs != null)
init.AddChild (new CSharpTokenNode (Convert (braceLocs[0]), 1), ArrayInitializerExpression.Roles.LBrace);
AddConvertCollectionOrObjectInitializers (init, minit);
if (braceLocs != null)
init.AddChild (new CSharpTokenNode (Convert (braceLocs[1]), 1), ArrayInitializerExpression.Roles.RBrace);
return init;
}
@ -2497,7 +2495,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -2497,7 +2495,7 @@ namespace ICSharpCode.NRefactory.CSharp
{
var initLoc = LocationsBag.GetLocations (minit);
var commaLoc = LocationsBag.GetLocations (minit.Initializers);
int curComma = commaLoc != null ? commaLoc.Count - 1 : -1;
int curComma = 0;
foreach (var expr in minit.Initializers) {
var collectionInit = expr as CollectionElementInitializer;
if (collectionInit != null) {
@ -2512,17 +2510,13 @@ namespace ICSharpCode.NRefactory.CSharp @@ -2512,17 +2510,13 @@ namespace ICSharpCode.NRefactory.CSharp
if (arg == null)
continue;
parent.AddChild ((ICSharpCode.NRefactory.CSharp.Expression)arg.Expr.Accept (this), ArrayInitializerExpression.Roles.Expression);
if (curComma >= 0)
parent.AddChild (new CSharpTokenNode (Convert (commaLoc[curComma--]), 1), ArrayInitializerExpression.Roles.Comma);
}
if (braceLocs != null)
parent.AddChild (new CSharpTokenNode (Convert (braceLocs [1]), 1), ArrayInitializerExpression.Roles.RBrace);
init.AddChild (parent, ArrayInitializerExpression.Roles.Expression);
continue;
}
} else {
var eleInit = expr as ElementInitializer;
if (eleInit != null) {
var nexpr = new NamedExpression ();
@ -2542,6 +2536,9 @@ namespace ICSharpCode.NRefactory.CSharp @@ -2542,6 +2536,9 @@ namespace ICSharpCode.NRefactory.CSharp
init.AddChild (nexpr, ArrayInitializerExpression.Roles.Expression);
}
}
if (commaLoc != null && curComma < commaLoc.Count)
init.AddChild (new CSharpTokenNode (Convert (commaLoc [curComma++]), 1), ArrayInitializerExpression.Roles.Comma);
}
if (initLoc != null) {

Loading…
Cancel
Save