Initial polymorph seeking works!

This commit is contained in:
Krzosa Karol
2023-04-03 16:15:50 +02:00
parent b543e1df9d
commit 39f4b081a8
4 changed files with 167 additions and 77 deletions

View File

@@ -389,6 +389,17 @@ struct Ast_Expr : Ast {
};
};
/* Typespecs
*int - (AST_UNARY=TK_Pointer Ast_Unary) == TYPE_POINTER
int - (AST_IDENT Ast_Atom) == TYPE_INT ..
[] - (Ast_Array AST_ARRAY) == TYPE_SLICE
[3] - (Ast_Array AST_ARRAY) == TYPE_ARRAY
Array(int) - (Ast_Call AST_CALL) == TYPE_STRUCT, TYPE_UNION
*/
struct Ast_Atom : Ast_Expr {
// We have a field type here
// it has a different purpose from the
@@ -614,8 +625,9 @@ struct Ast_Decl : Ast {
uint64_t operator_overload_arguments_hash;
Ast_Operator_Info *overload_op_info;
// @todo: move this to Ast_Poly
uint64_t polymorph_hash;
Array<Ast_Call_Item *> instantiation_call_items;
Array<Ast_Type *> polymorph_resolved_parameter_types;
Array<Ast_Decl *> polymorph_parameters;
Array<Ast_Decl *> polymorphs; // instantiated polymorphs