Browse Source

Make InlineArrayTransform post-order

feature/inlinearrays
Siegfried Pammer 2 weeks ago
parent
commit
47dd905ad0
  1. 10
      ICSharpCode.Decompiler/IL/Transforms/ExpressionTransforms.cs

10
ICSharpCode.Decompiler/IL/Transforms/ExpressionTransforms.cs

@ -277,11 +277,6 @@ namespace ICSharpCode.Decompiler.IL.Transforms
protected internal override void VisitCall(Call inst) protected internal override void VisitCall(Call inst)
{ {
if (context.Settings.InlineArrays && InlineArrayTransform.RunOnExpression(inst, context))
{
return;
}
if (NullableLiftingTransform.MatchGetValueOrDefault(inst, out var nullableValue, out var fallback) if (NullableLiftingTransform.MatchGetValueOrDefault(inst, out var nullableValue, out var fallback)
&& SemanticHelper.IsPure(fallback.Flags)) && SemanticHelper.IsPure(fallback.Flags))
{ {
@ -298,9 +293,14 @@ namespace ICSharpCode.Decompiler.IL.Transforms
{ {
context.Step("TransformRuntimeHelpersCreateSpanInitialization: single-dim", inst); context.Step("TransformRuntimeHelpersCreateSpanInitialization: single-dim", inst);
inst.ReplaceWith(replacement2); inst.ReplaceWith(replacement2);
replacement2.AcceptVisitor(this);
return; return;
} }
base.VisitCall(inst); base.VisitCall(inst);
if (context.Settings.InlineArrays && InlineArrayTransform.RunOnExpression(inst, context))
{
return;
}
TransformAssignment.HandleCompoundAssign(inst, context); TransformAssignment.HandleCompoundAssign(inst, context);
} }

Loading…
Cancel
Save