Browse Source

Fix traversal bug in DecompileQueries: expressions with independent sub-expressions like conditional-expressions, binary operators or parameter lists were not handled correctly.

pull/1405/head
Siegfried Pammer 7 years ago
parent
commit
32cec2a1fb
  1. 5
      ICSharpCode.Decompiler/CSharp/Transforms/IntroduceQueryExpressions.cs

5
ICSharpCode.Decompiler/CSharp/Transforms/IntroduceQueryExpressions.cs

@ -74,7 +74,10 @@ namespace ICSharpCode.Decompiler.CSharp.Transforms @@ -74,7 +74,10 @@ namespace ICSharpCode.Decompiler.CSharp.Transforms
QueryExpression query = DecompileQuery(node as InvocationExpression);
if (query != null)
node.ReplaceWith(query);
for (AstNode child = (query ?? node).FirstChild; child != null; child = child.NextSibling) {
AstNode next;
for (AstNode child = (query ?? node).FirstChild; child != null; child = next) {
// store referece to next child before transformation
next = child.NextSibling;
DecompileQueries(child);
}
}

Loading…
Cancel
Save