Browse Source

Check IsPure before Match.

pull/1608/head
Siegfried Pammer 6 years ago
parent
commit
72c3e828f3
  1. 8
      ICSharpCode.Decompiler/IL/Transforms/ExpressionTransforms.cs

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

@ -319,10 +319,10 @@ namespace ICSharpCode.Decompiler.IL.Transforms @@ -319,10 +319,10 @@ namespace ICSharpCode.Decompiler.IL.Transforms
return false;
if (!(inst.Arguments[1] is LdVirtFtn ldVirtFtn))
return false;
if (!inst.Arguments[0].Match(ldVirtFtn.Argument).Success)
return false;
if (!SemanticHelper.IsPure(inst.Arguments[0].Flags))
return false;
if (!inst.Arguments[0].Match(ldVirtFtn.Argument).Success)
return false;
ldVirtDelegate = new LdVirtDelegate(inst.Arguments[0], inst.Method.DeclaringType, ldVirtFtn.Method)
.WithILRange(inst).WithILRange(ldVirtFtn).WithILRange(ldVirtFtn.Argument);
return true;
@ -531,10 +531,10 @@ namespace ICSharpCode.Decompiler.IL.Transforms @@ -531,10 +531,10 @@ namespace ICSharpCode.Decompiler.IL.Transforms
return false;
if (!(dynamicCompoundAssign.Target is DynamicGetMemberInstruction getMember))
return false;
if (!isEvent.Argument.Match(getMember.Target).Success)
return false;
if (!SemanticHelper.IsPure(isEvent.Argument.Flags))
return false;
if (!isEvent.Argument.Match(getMember.Target).Success)
return false;
if (!(trueInst is DynamicInvokeMemberInstruction invokeMember))
return false;
if (!(invokeMember.BinderFlags.HasFlag(CSharpBinderFlags.InvokeSpecialName) && invokeMember.BinderFlags.HasFlag(CSharpBinderFlags.ResultDiscarded)))

Loading…
Cancel
Save