Table of Contents

Class DynamicLogicOperatorInstruction

Namespace
ICSharpCode.Decompiler.IL
Assembly
ICSharpCode.Decompiler.dll

ILAst representation of a short-circuiting binary operator inside a dynamic expression.

public sealed class DynamicLogicOperatorInstruction : DynamicInstruction
Inheritance
DynamicLogicOperatorInstruction
Inherited Members

Constructors

DynamicLogicOperatorInstruction(CSharpBinderFlags, ExpressionType, IType?, CSharpArgumentInfo, ILInstruction, CSharpArgumentInfo, ILInstruction)

public DynamicLogicOperatorInstruction(CSharpBinderFlags binderFlags, ExpressionType operation, IType? context, CSharpArgumentInfo leftArgumentInfo, ILInstruction left, CSharpArgumentInfo rightArgumentInfo, ILInstruction right)

Parameters

binderFlags CSharpBinderFlags
operation ExpressionType
context IType
leftArgumentInfo CSharpArgumentInfo
left ILInstruction
rightArgumentInfo CSharpArgumentInfo
right ILInstruction

Fields

LeftSlot

public static readonly SlotInfo LeftSlot

Field Value

SlotInfo

RightSlot

public static readonly SlotInfo RightSlot

Field Value

SlotInfo

Properties

DirectFlags

Gets the flags for this instruction only, without considering the child instructions.

public override InstructionFlags DirectFlags { get; }

Property Value

InstructionFlags

Left

public ILInstruction Left { get; set; }

Property Value

ILInstruction

LeftArgumentInfo

public CSharpArgumentInfo LeftArgumentInfo { get; }

Property Value

CSharpArgumentInfo

Operation

public ExpressionType Operation { get; }

Property Value

ExpressionType

ResultType

Gets the stack type of the value produced by this instruction.

public override StackType ResultType { get; }

Property Value

StackType

Right

public ILInstruction Right { get; set; }

Property Value

ILInstruction

RightArgumentInfo

public CSharpArgumentInfo RightArgumentInfo { get; }

Property Value

CSharpArgumentInfo

Methods

AcceptVisitor(ILVisitor)

Calls the Visit*-method on the visitor corresponding to the concrete type of this instruction.

public override void AcceptVisitor(ILVisitor visitor)

Parameters

visitor ILVisitor

AcceptVisitor<T>(ILVisitor<T>)

Calls the Visit*-method on the visitor corresponding to the concrete type of this instruction.

public override T AcceptVisitor<T>(ILVisitor<T> visitor)

Parameters

visitor ILVisitor<T>

Returns

T

Type Parameters

T

AcceptVisitor<C, T>(ILVisitor<C, T>, C)

Calls the Visit*-method on the visitor corresponding to the concrete type of this instruction.

public override T AcceptVisitor<C, T>(ILVisitor<C, T> visitor, C context)

Parameters

visitor ILVisitor<C, T>
context C

Returns

T

Type Parameters

C
T

Clone()

public override sealed ILInstruction Clone()

Returns

ILInstruction

ComputeFlags()

protected override InstructionFlags ComputeFlags()

Returns

InstructionFlags

GetArgumentInfoOfChild(int)

public override CSharpArgumentInfo GetArgumentInfoOfChild(int index)

Parameters

index int

Returns

CSharpArgumentInfo

GetChild(int)

protected override sealed ILInstruction GetChild(int index)

Parameters

index int

Returns

ILInstruction

GetChildCount()

protected override sealed int GetChildCount()

Returns

int

GetChildSlot(int)

protected override sealed SlotInfo GetChildSlot(int index)

Parameters

index int

Returns

SlotInfo

PerformMatch(ILInstruction?, ref Match)

protected override bool PerformMatch(ILInstruction? other, ref Match match)

Parameters

other ILInstruction
match Match

Returns

bool

SetChild(int, ILInstruction)

protected override sealed void SetChild(int index, ILInstruction value)

Parameters

index int
value ILInstruction

WriteTo(ITextOutput, ILAstWritingOptions)

Writes the ILAst to the text output.

public override void WriteTo(ITextOutput output, ILAstWritingOptions options)

Parameters

output ITextOutput
options ILAstWritingOptions