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. |