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);
 }
Example #5
0
 public AstTemplateInstanceType(AstTypeDefinitionIntrinsic intrinsicTypeDef)
 {
     TypeDefinition = intrinsicTypeDef;
 }
Example #6
0
 protected static void AddIntrinsicSymbol(AstSymbolTable symbols, AstTypeDefinitionIntrinsic type)
 => symbols.AddSymbol(type.Identifier.SymbolName.CanonicalName.FullName, AstSymbolKind.Type, type);