Class NewDelegatePrototype
A prototype for an instruction that creates a delegate from a method.
Inherited Members
Namespace: Flame.Compiler.Instructions
Assembly: Flame.Compiler.dll
Syntax
public sealed class NewDelegatePrototype : InstructionPrototype
Properties
| Improve this Doc View SourceCallee
Gets the method that is called by the delegate when invoked.
Declaration
public IMethod Callee { get; }
Property Value
Type | Description |
---|---|
IMethod | The callee method. |
HasThisArgument
Tells if this new-delegate instruction prototype takes a 'this' argument. For instance methods, the 'this' argument is simply interpreted as the 'this' pointer. For static methods, the 'this' argument is sent to the first parameter in the parameter list.
Declaration
public bool HasThisArgument { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
|
Lookup
Gets the method lookup strategy for this new-delegate instruction prototype.
Declaration
public MethodLookup Lookup { get; }
Property Value
Type | Description |
---|---|
MethodLookup | The method lookup strategy. |
ParameterCount
Gets the number of arguments this instruction takes when instantiated.
Declaration
public override int ParameterCount { get; }
Property Value
Type | Description |
---|---|
System.Int32 | The number of arguments this instruction takes. |
Overrides
| Improve this Doc View SourceResultType
Gets the type of value produced instantiations of this prototype.
Declaration
public override IType ResultType { get; }
Property Value
Type | Description |
---|---|
IType | A type of value. |
Overrides
Methods
| Improve this Doc View SourceCheckConformance(Instruction, MethodBody)
Checks if a particular instance of this prototype conforms to the rules for this instruction prototype.
Declaration
public override IReadOnlyList<string> CheckConformance(Instruction instance, MethodBody body)
Parameters
Type | Name | Description |
---|---|---|
Instruction | instance | An instance of this prototype. |
MethodBody | body | The method body that defines the instruction. |
Returns
Type | Description |
---|---|
System.Collections.Generic.IReadOnlyList<System.String> | A list of conformance errors in the instruction. |
Overrides
| Improve this Doc View SourceCreate(IType, IMethod, Boolean, MethodLookup)
Gets or creates a new-delegate instruction prototype.
Declaration
public static NewDelegatePrototype Create(IType delegateType, IMethod callee, bool hasThisArgument, MethodLookup lookup)
Parameters
Type | Name | Description |
---|---|---|
IType | delegateType | The type of delegate produced by instances of the prototype. |
IMethod | callee | The method that is invoked when the delegates produced by instances of the prototype are called. |
System.Boolean | hasThisArgument | Tells if a 'this' argument is included in the delegate. |
MethodLookup | lookup | The method lookup strategy for the prototype. |
Returns
Type | Description |
---|---|
NewDelegatePrototype | A new-delegate instruction prototype. |
GetThisArgument(Instruction)
Gets the 'this' argument in an instruction that conforms to this prototype.
Declaration
public ValueTag GetThisArgument(Instruction instruction)
Parameters
Type | Name | Description |
---|---|---|
Instruction | instruction | An instruction that conforms to this prototype. |
Returns
Type | Description |
---|---|
ValueTag | The 'this' argument. |
Instantiate(ValueTag)
Creates an instance of this new-delegate instruction prototype.
Declaration
public Instruction Instantiate(ValueTag thisArgument)
Parameters
Type | Name | Description |
---|---|---|
ValueTag | thisArgument | The 'this' argument, if any. A |
Returns
Type | Description |
---|---|
Instruction | A new-delegate instruction. |
Map(MemberMapping)
Applies a member mapping to this instruction prototype.
Declaration
public override InstructionPrototype Map(MemberMapping mapping)
Parameters
Type | Name | Description |
---|---|---|
MemberMapping | mapping | A member mapping. |
Returns
Type | Description |
---|---|
InstructionPrototype | A transformed instruction prototype. |