From 3f24807fbff0b7e1940ca15b13badeffbe3d370b Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Sat, 25 Nov 2017 17:37:29 +0100 Subject: [PATCH] Fix bug in AssignVariableNames --- .../IL/Transforms/AssignVariableNames.cs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/ICSharpCode.Decompiler/IL/Transforms/AssignVariableNames.cs b/ICSharpCode.Decompiler/IL/Transforms/AssignVariableNames.cs index 2c149eabe..907fb487a 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/AssignVariableNames.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/AssignVariableNames.cs @@ -61,8 +61,15 @@ namespace ICSharpCode.Decompiler.IL.Transforms currentFieldNames = function.CecilMethod.DeclaringType.Fields.Select(f => f.Name).ToArray(); reservedVariableNames = new Dictionary(); loopCounters = CollectLoopCounters(function); - foreach (var p in function.Descendants.OfType().SelectMany(f => f.Variables).Where(v => v.Kind == VariableKind.Parameter)) - AddExistingName(reservedVariableNames, p.Name); + foreach (var f in function.Descendants.OfType()) { + if (f.Method != null) { + foreach (var p in f.Method.Parameters) + AddExistingName(reservedVariableNames, p.Name); + } else { + foreach (var p in f.Variables.Where(v => v.Kind == VariableKind.Parameter)) + AddExistingName(reservedVariableNames, p.Name); + } + } foreach (ILFunction f in function.Descendants.OfType().Reverse()) { PerformAssignment(f); }