auto_cast

This commit is contained in:
gingerBill
2018-02-18 15:14:13 +00:00
parent 731dad480d
commit 4c339360e9
6 changed files with 101 additions and 41 deletions
+8
View File
@@ -4979,6 +4979,10 @@ irValue *ir_build_expr_internal(irProcedure *proc, AstNode *expr) {
GB_PANIC("Invalid AST TypeCast");
case_end;
case_ast_node(ac, AutoCast, expr);
return ir_build_expr(proc, ac->expr);
case_end;
case_ast_node(ue, UnaryExpr, expr);
switch (ue->op.kind) {
case Token_And: {
@@ -6052,6 +6056,10 @@ irAddr ir_build_addr(irProcedure *proc, AstNode *expr) {
ir_emit_store(proc, v, e);
return ir_addr(v);
case_end;
case_ast_node(ac, AutoCast, expr);
return ir_build_addr(proc, ac->expr);
case_end;
}
TokenPos token_pos = ast_node_token(expr).pos;