Initial working version of types as expressions

This commit is contained in:
Krzosa Karol
2022-05-27 13:46:27 +02:00
parent d8a9b318b7
commit 46abf8c1a6
6 changed files with 159 additions and 171 deletions

View File

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