From d92dd153fc8768bb9c67645be422f1601b4c4906 Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Sat, 8 May 2021 14:36:04 +0200 Subject: [PATCH] #2390: Make sure all unused captured variables are removed even in lambdas. --- .../IL/Transforms/TransformDisplayClassUsage.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ICSharpCode.Decompiler/IL/Transforms/TransformDisplayClassUsage.cs b/ICSharpCode.Decompiler/IL/Transforms/TransformDisplayClassUsage.cs index 619813d05..5add9da47 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/TransformDisplayClassUsage.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/TransformDisplayClassUsage.cs @@ -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()) { RemoveDeadVariableInit.ResetHasInitialValueFlag(f, context); f.CapturedVariables.RemoveWhere(v => v.IsDead);