From 4daabf350ad705028e0ab8e01aecb0e53555bec3 Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Mon, 6 Nov 2017 00:05:21 +0100 Subject: [PATCH] Do not convert to for loop if increment variable is a parameter. --- ICSharpCode.Decompiler/IL/Transforms/HighLevelLoopTransform.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ICSharpCode.Decompiler/IL/Transforms/HighLevelLoopTransform.cs b/ICSharpCode.Decompiler/IL/Transforms/HighLevelLoopTransform.cs index 28dc9a597..8e025284e 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/HighLevelLoopTransform.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/HighLevelLoopTransform.cs @@ -152,6 +152,8 @@ namespace ICSharpCode.Decompiler.IL.Transforms return false; if (!MatchIncrement(secondToLast, out var incrementVariable)) return false; + if (incrementVariable.Kind == VariableKind.Parameter) + return false; if (!condition.Descendants.Any(inst => inst.MatchLdLoc(incrementVariable))) return false; context.Step("Transform to for loop", loop);