Removed resolved pointer from Ast_Typespec, it's accessed using a map now

This commit is contained in:
Krzosa Karol
2022-05-27 12:05:23 +02:00
parent 01acad47ec
commit f66fd447e5
7 changed files with 70 additions and 921 deletions

View File

@@ -122,7 +122,7 @@ gen_expr(Ast_Expr *ast){
Ast_Begin(AST_CAST, Ast_Cast){
gen("(");
gen("(");
gen_simple_decl(node->typespec->resolved_type, {});
gen_simple_decl(resolved_typespec_get(node->typespec), {});
gen(")");
gen_expr(node->expr);
gen(")");
@@ -248,11 +248,13 @@ gen_ast(Ast *ast){
if(node->expr->kind == AST_LAMBDA){
Ast_Lambda *lambda = (Ast_Lambda *)node->expr;
gen("static ");
gen_simple_decl(lambda->ret->resolved_type, node->name);
Ast_Resolved_Type *ret = resolved_typespec_get(lambda->ret);
gen_simple_decl(ret, node->name);
gen("(");
For(lambda->args){
assert(it[0]->kind == AST_LAMBDA_ARG);
gen_simple_decl(it[0]->typespec->resolved_type, it[0]->name);
Ast_Resolved_Type *type = resolved_typespec_get(it[0]->typespec);
gen_simple_decl(type, it[0]->name);
if(it != (lambda->args.end() - 1)) gen(", ");
}
gen(")");