Преглед на файлове

Improve `auto_cast` logic

gingerBill преди 4 години
родител
ревизия
ac53577e9b
променени са 2 файла, в които са добавени 4 реда и са изтрити 2 реда
  1. 2 1
      src/ir.cpp
  2. 2 1
      src/llvm_backend.cpp

+ 2 - 1
src/ir.cpp

@@ -8257,7 +8257,8 @@ irValue *ir_build_expr_internal(irProcedure *proc, Ast *expr) {
 	case_end;
 
 	case_ast_node(ac, AutoCast, expr);
-		return ir_build_expr(proc, ac->expr);
+		irValue *value = ir_build_expr(proc, ac->expr);
+		return ir_emit_conv(proc, value, tv.type);
 	case_end;
 
 	case_ast_node(ue, UnaryExpr, expr);

+ 2 - 1
src/llvm_backend.cpp

@@ -11164,7 +11164,8 @@ lbValue lb_build_expr(lbProcedure *p, Ast *expr) {
 	case_end;
 
 	case_ast_node(ac, AutoCast, expr);
-		return lb_build_expr(p, ac->expr);
+		lbValue value = lb_build_expr(p, ac->expr);
+		return lb_emit_conv(p, value, tv.type);
 	case_end;
 
 	case_ast_node(ue, UnaryExpr, expr);