Class ExpressionTransforms
- Namespace
- ICSharpCode.Decompiler.IL.Transforms
- Assembly
- ICSharpCode.Decompiler.dll
Collection of transforms that detect simple expression patterns (e.g. 'cgt.un(..., ld.null)') and replace them with different instructions.
public class ExpressionTransforms : ILVisitor, IStatementTransform
- Inheritance
-
ExpressionTransforms
- Implements
- Inherited Members
Remarks
Should run after inlining so that the expression patterns can be detected.
Constructors
ExpressionTransforms()
public ExpressionTransforms()
Methods
Default(ILInstruction)
Called by Visit*() methods that were not overridden
protected override void Default(ILInstruction inst)
Parameters
inst
ILInstruction
Run(Block, int, StatementTransformContext)
public void Run(Block block, int pos, StatementTransformContext context)
Parameters
block
Blockpos
intcontext
StatementTransformContext
RunOnSingleStatement(ILInstruction, ILTransformContext)
public static void RunOnSingleStatement(ILInstruction statement, ILTransformContext context)
Parameters
statement
ILInstructioncontext
ILTransformContext
VisitBinaryNumericInstruction(BinaryNumericInstruction)
protected override void VisitBinaryNumericInstruction(BinaryNumericInstruction inst)
Parameters
VisitBlock(Block)
protected override void VisitBlock(Block block)
Parameters
block
Block
VisitBlockContainer(BlockContainer)
protected override void VisitBlockContainer(BlockContainer container)
Parameters
container
BlockContainer
VisitBox(Box)
protected override void VisitBox(Box inst)
Parameters
inst
Box
VisitCall(Call)
protected override void VisitCall(Call inst)
Parameters
inst
Call
VisitCallVirt(CallVirt)
protected override void VisitCallVirt(CallVirt inst)
Parameters
inst
CallVirt
VisitComp(Comp)
protected override void VisitComp(Comp inst)
Parameters
inst
Comp
VisitConv(Conv)
protected override void VisitConv(Conv inst)
Parameters
inst
Conv
VisitDynamicSetIndexInstruction(DynamicSetIndexInstruction)
dynamic.setindex.compound(target, index, dynamic.binary.operator op(dynamic.getindex(target, index), value)) => dynamic.compound.op (dynamic.getindex(target, index), value)
protected override void VisitDynamicSetIndexInstruction(DynamicSetIndexInstruction inst)
Parameters
VisitDynamicSetMemberInstruction(DynamicSetMemberInstruction)
dynamic.setmember.compound Name(target, dynamic.binary.operator op(dynamic.getmember Name(target), value)) => dynamic.compound.op (dynamic.getmember Name(target), value)
protected override void VisitDynamicSetMemberInstruction(DynamicSetMemberInstruction inst)
Parameters
VisitIfInstruction(IfInstruction)
protected override void VisitIfInstruction(IfInstruction inst)
Parameters
inst
IfInstruction
VisitLdElema(LdElema)
protected override void VisitLdElema(LdElema inst)
Parameters
inst
LdElema
VisitLdObj(LdObj)
protected override void VisitLdObj(LdObj inst)
Parameters
inst
LdObj
VisitNewArr(NewArr)
protected override void VisitNewArr(NewArr inst)
Parameters
inst
NewArr
VisitNewObj(NewObj)
protected override void VisitNewObj(NewObj inst)
Parameters
inst
NewObj
VisitStLoc(StLoc)
protected override void VisitStLoc(StLoc inst)
Parameters
inst
StLoc
VisitStObj(StObj)
protected override void VisitStObj(StObj inst)
Parameters
inst
StObj
VisitTryCatchHandler(TryCatchHandler)
protected override void VisitTryCatchHandler(TryCatchHandler inst)
Parameters
inst
TryCatchHandler