Browse Source

properly handle VB.Net to CS LINQ where and select output

pull/42/head
Gregor Pacnik 13 years ago
parent
commit
89dc15437e
  1. 17
      src/Libraries/NRefactory/Project/Src/PrettyPrinter/CSharp/CSharpOutputVisitor.cs
  2. 7
      src/Libraries/NRefactory/Test/Output/CSharp/VBNetToCSharpConverterTest.cs

17
src/Libraries/NRefactory/Project/Src/PrettyPrinter/CSharp/CSharpOutputVisitor.cs

@ -3187,9 +3187,22 @@ namespace ICSharpCode.NRefactory.PrettyPrinter
outputFormatter.Space(); outputFormatter.Space();
return selectClause.Projection.AcceptVisitor(this, data); return selectClause.Projection.AcceptVisitor(this, data);
} }
public override object TrackedVisitQueryExpressionWhereClause(QueryExpressionWhereClause whereClause, object data) public override object TrackedVisitQueryExpressionSelectVBClause(QueryExpressionSelectVBClause queryExpressionSelectVBClause, object data)
{
outputFormatter.Space();
outputFormatter.PrintToken(Tokens.Select);
outputFormatter.Space();
foreach (var v in queryExpressionSelectVBClause.Variables)
{
v.AcceptVisitor(this, data);
}
return null;
}
public override object TrackedVisitQueryExpressionWhereClause(QueryExpressionWhereClause whereClause, object data)
{ {
outputFormatter.Space();
outputFormatter.PrintToken(Tokens.Where); outputFormatter.PrintToken(Tokens.Where);
outputFormatter.Space(); outputFormatter.Space();
return whereClause.Condition.AcceptVisitor(this, data); return whereClause.Condition.AcceptVisitor(this, data);

7
src/Libraries/NRefactory/Test/Output/CSharp/VBNetToCSharpConverterTest.cs

@ -914,6 +914,13 @@ static bool InitStaticVariableHelper(Microsoft.VisualBasic.CompilerServices.Stat
@"var xml = new XElement(""A"", ""\"""");"); @"var xml = new XElement(""A"", ""\"""");");
} }
[Test]
public void LinqQueryWhereSelect()
{
TestStatement(@"Dim value = From value In values Where value = ""someValue"" Select value",
@"var value = from value in values where value == ""someValue"" select value;");
}
[Test] [Test]
public void SD2_1500a() public void SD2_1500a()
{ {

Loading…
Cancel
Save