public void SetSelfParameter(AstTypeDefinitionIntrinsic type) { Ast.Guard(!FunctionType.Parameters.Any(), "A Self parameter has to be first."); var parameter = new AstFunctionParameterDefinition(AstIdentifierIntrinsic.Self); parameter.SetTypeReference(AstTypeReferenceType.From(type)); FunctionType.AddParameter(parameter); }
public AstFunctionDefinitionIntrinsic(AstIdentifierIntrinsic typeIdentifier, AstTypeDefinitionIntrinsic toReturn) : base(new AstTypeDefinitionFunction()) { this.SetIdentifier(typeIdentifier); SetTypeReference(toReturn); }
private void SetTypeReference(AstTypeDefinitionIntrinsic type) => FunctionType.SetTypeReference(AstTypeReferenceType.From(type));
public AstFunctionDefinitionIntrinsic(AstIdentifierIntrinsic typeIdentifier, AstTypeDefinitionIntrinsic selfParameter, AstTypeDefinitionIntrinsic toReturn) : this(typeIdentifier, toReturn) { SetSelfParameter(selfParameter); }
public AstTemplateInstanceType(AstTypeDefinitionIntrinsic intrinsicTypeDef) { TypeDefinition = intrinsicTypeDef; }
protected static void AddIntrinsicSymbol(AstSymbolTable symbols, AstTypeDefinitionIntrinsic type) => symbols.AddSymbol(type.Identifier.SymbolName.CanonicalName.FullName, AstSymbolKind.Type, type);