From aa87169331ce21892f3a33c9c23e44a4ab655583 Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Sat, 28 Oct 2017 18:50:18 +0200 Subject: [PATCH] Clean up RemoveDeadVariableInit --- .../IL/Transforms/RemoveDeadVariableInit.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ICSharpCode.Decompiler/IL/Transforms/RemoveDeadVariableInit.cs b/ICSharpCode.Decompiler/IL/Transforms/RemoveDeadVariableInit.cs index b12f102a7..e5d1831bf 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/RemoveDeadVariableInit.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/RemoveDeadVariableInit.cs @@ -44,7 +44,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms // This is necessary to remove useless stores generated by some compilers, e.g., the F# compiler. // In yield return + async, the C# compiler tends to store null/default(T) to variables // when the variable goes out of scope. - var variableQueue = new Queue(function.Variables.Where(v => v.Kind == VariableKind.Local || v.Kind == VariableKind.StackSlot)); + var variableQueue = new Queue(function.Variables); while (variableQueue.Count > 0) { var v = variableQueue.Dequeue(); if (v.Kind != VariableKind.Local && v.Kind != VariableKind.StackSlot) @@ -58,7 +58,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms } else { stloc.ReplaceWith(stloc.Value); } - if (stloc.Value is LdLoc ldloc && (ldloc.Variable.Kind == VariableKind.Local || ldloc.Variable.Kind == VariableKind.StackSlot)) { + if (stloc.Value is LdLoc ldloc) { variableQueue.Enqueue(ldloc.Variable); } }