Add resolved_type to Ast_Expr and remove from inheriting

This commit is contained in:
Krzosa Karol
2022-06-14 12:49:45 +02:00
parent 699ca4b18a
commit 17e342c4da
3 changed files with 36 additions and 33 deletions

View File

@@ -207,7 +207,7 @@ gen_lambda(Intern_String name, Ast_Lambda *lambda, B32 generate_block = true){
if(name == pctx->intern("main"_s)){
is_foreign = true;
}
gen_simple_decl(lambda->type->func.ret, name, lambda->parent_scope, !is_foreign);
gen_simple_decl(lambda->resolved_type->func.ret, name, lambda->parent_scope, !is_foreign);
gen("(");
For(lambda->args){
gen_var(it, DONT_EMIT_VALUE, true);
@@ -271,7 +271,7 @@ gen_expr(Ast_Expr *ast, Ast_Type *type_of_var){
CASE(BINARY, Binary){
if(node->op == TK_Dot){
if(gen_expr(node->left)){
if(node->type && node->type->kind == TYPE_POINTER) gen("->");
if(node->resolved_type && node->resolved_type->kind == TYPE_POINTER) gen("->");
else gen(".");
}
gen_expr(node->right);
@@ -280,7 +280,7 @@ gen_expr(Ast_Expr *ast, Ast_Type *type_of_var){
else if(node->op == TK_Arrow){
gen("(");
gen("(");
gen_simple_decl(node->type);
gen_simple_decl(node->resolved_type);
gen(")");
gen_expr(node->left);
gen(")");
@@ -335,7 +335,7 @@ gen_expr(Ast_Expr *ast, Ast_Type *type_of_var){
CASE(COMPOUND, Call){
gen("(");
gen_simple_decl(node->type);
gen_simple_decl(node->resolved_type);
gen(")");
gen("{");
For(node->exprs){