Browse Source

#2390: Make sure all unused captured variables are removed even in lambdas.

pull/2408/head
Siegfried Pammer 4 years ago
parent
commit
d92dd153fc
  1. 2
      ICSharpCode.Decompiler/IL/Transforms/TransformDisplayClassUsage.cs

2
ICSharpCode.Decompiler/IL/Transforms/TransformDisplayClassUsage.cs

@ -576,7 +576,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms @@ -576,7 +576,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms
{
VisitILFunction(function);
context.Step($"ResetHasInitialValueFlag", function);
foreach (var f in TreeTraversal.PostOrder(function, f => f.LocalFunctions))
foreach (var f in function.Descendants.OfType<ILFunction>())
{
RemoveDeadVariableInit.ResetHasInitialValueFlag(f, context);
f.CapturedVariables.RemoveWhere(v => v.IsDead);

Loading…
Cancel
Save