Siegfried Pammer 15 years ago
parent
commit
b205555b9a
  1. 1521
      src/Libraries/NRefactory/Project/Src/Parser/VBNet/Parser.cs
  2. 17
      src/Libraries/NRefactory/Project/Src/Parser/VBNet/VBNET.ATG
  3. 13
      src/Libraries/NRefactory/Test/Parser/Expressions/ObjectCreateExpressionTests.cs

1521
src/Libraries/NRefactory/Project/Src/Parser/VBNet/Parser.cs

File diff suppressed because it is too large Load Diff

17
src/Libraries/NRefactory/Project/Src/Parser/VBNet/VBNET.ATG

@ -2112,6 +2112,7 @@ ObjectCreateExpression<out Expression oce> @@ -2112,6 +2112,7 @@ ObjectCreateExpression<out Expression oce>
(
(.
MemberInitializerExpression memberInitializer = null;
Expression anonymousMember = null;
.)
"With"
(.
@ -2119,11 +2120,19 @@ ObjectCreateExpression<out Expression oce> @@ -2119,11 +2120,19 @@ ObjectCreateExpression<out Expression oce>
memberInitializers.StartLocation = la.Location;
.)
"{"
MemberInitializer<out memberInitializer>
(. memberInitializers.CreateExpressions.Add(memberInitializer); .)
{ ","
(
MemberInitializer<out memberInitializer>
(. memberInitializers.CreateExpressions.Add(memberInitializer); .)
(. memberInitializers.CreateExpressions.Add(memberInitializer); .)
| Expr<out anonymousMember>
(. memberInitializers.CreateExpressions.Add(anonymousMember); .)
)
{ ","
(
MemberInitializer<out memberInitializer>
(. memberInitializers.CreateExpressions.Add(memberInitializer); .)
| Expr<out anonymousMember>
(. memberInitializers.CreateExpressions.Add(anonymousMember); .)
)
}
"}"
(.

13
src/Libraries/NRefactory/Test/Parser/Expressions/ObjectCreateExpressionTests.cs

@ -201,6 +201,19 @@ namespace ICSharpCode.NRefactory.Tests.Ast @@ -201,6 +201,19 @@ namespace ICSharpCode.NRefactory.Tests.Ast
Assert.IsInstanceOf(typeof(MemberInitializerExpression), oce.ObjectInitializer.CreateExpressions[1]);
}
[Test]
public void VBNetAnonymousTypeWithoutProperty()
{
ObjectCreateExpression oce = ParseUtilVBNet.ParseExpression<ObjectCreateExpression>("New With { c }");
Assert.IsTrue(oce.CreateType.IsNull);
Assert.AreEqual(0, oce.Parameters.Count);
Assert.AreEqual(1, oce.ObjectInitializer.CreateExpressions.Count);
Assert.IsInstanceOf(typeof(IdentifierExpression), oce.ObjectInitializer.CreateExpressions[0]);
Assert.AreEqual("c", (oce.ObjectInitializer.CreateExpressions[0] as IdentifierExpression).Identifier);
}
[Test]
public void VBNetSimpleObjectCreateExpressionTest()
{

Loading…
Cancel
Save