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); }