diff --git a/ICSharpCode.Decompiler/IL/Transforms/TransformAssignment.cs b/ICSharpCode.Decompiler/IL/Transforms/TransformAssignment.cs index 33a308ca1..9a3d5e877 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/TransformAssignment.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/TransformAssignment.cs @@ -35,18 +35,21 @@ namespace ICSharpCode.Decompiler.IL.Transforms void IStatementTransform.Run(Block block, int pos, StatementTransformContext context) { this.context = context; - if (TransformInlineAssignmentStObjOrCall(block, pos) || TransformInlineAssignmentLocal(block, pos)) { - // both inline assignments create a top-level stloc which might affect inlining - context.RequestRerun(); - return; + if (context.Settings.MakeAssignmentExpressions) { + if (TransformInlineAssignmentStObjOrCall(block, pos) || TransformInlineAssignmentLocal(block, pos)) { + // both inline assignments create a top-level stloc which might affect inlining + context.RequestRerun(); + return; + } } - if (TransformPostIncDecOperatorWithInlineStore(block, pos) - || TransformPostIncDecOperator(block, pos) - || TransformPostIncDecOperatorLocal(block, pos)) - { - // again, new top-level stloc might need inlining: - context.RequestRerun(); - return; + if (context.Settings.IntroduceIncrementAndDecrement) { + if (TransformPostIncDecOperatorWithInlineStore(block, pos) + || TransformPostIncDecOperator(block, pos) + || TransformPostIncDecOperatorLocal(block, pos)) { + // again, new top-level stloc might need inlining: + context.RequestRerun(); + return; + } } }