diff --git a/ICSharpCode.Decompiler/IL/Transforms/ILInlining.cs b/ICSharpCode.Decompiler/IL/Transforms/ILInlining.cs index c7b262c88..d9326c841 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/ILInlining.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/ILInlining.cs @@ -60,7 +60,11 @@ namespace ICSharpCode.Decompiler.IL.Transforms public void Run(Block block, int pos, StatementTransformContext context) { - InlineOneIfPossible(block, pos, this.options | OptionsForBlock(block, pos, context), context: context); + var options = this.options | OptionsForBlock(block, pos, context); + while (InlineOneIfPossible(block, pos, options, context: context)) + { + // repeat inlining until nothing changes. + } } internal static InliningOptions OptionsForBlock(Block block, int pos, ILTransformContext context)