aboutsummaryrefslogtreecommitdiff
path: root/src/ir_print.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ir_print.cpp')
-rw-r--r--src/ir_print.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/ir_print.cpp b/src/ir_print.cpp
index 8332212d34..f2c0d6a5b4 100644
--- a/src/ir_print.cpp
+++ b/src/ir_print.cpp
@@ -130,6 +130,8 @@ static const char *ir_bin_op_id_str(IrBinOp op_id) {
return "++";
case IrBinOpArrayMult:
return "**";
+ case IrBinOpMergeErrorSets:
+ return "||";
}
zig_unreachable();
}
@@ -148,8 +150,6 @@ static const char *ir_un_op_id_str(IrUnOp op_id) {
return "*";
case IrUnOpMaybe:
return "?";
- case IrUnOpError:
- return "%";
}
zig_unreachable();
}
@@ -1004,6 +1004,11 @@ static void ir_print_error_return_trace(IrPrint *irp, IrInstructionErrorReturnTr
fprintf(irp->f, "@errorReturnTrace()");
}
+static void ir_print_error_union(IrPrint *irp, IrInstructionErrorUnion *instruction) {
+ ir_print_other_instruction(irp, instruction->err_set);
+ fprintf(irp->f, "!");
+ ir_print_other_instruction(irp, instruction->payload);
+}
static void ir_print_instruction(IrPrint *irp, IrInstruction *instruction) {
ir_print_prefix(irp, instruction);
@@ -1322,6 +1327,9 @@ static void ir_print_instruction(IrPrint *irp, IrInstruction *instruction) {
case IrInstructionIdErrorReturnTrace:
ir_print_error_return_trace(irp, (IrInstructionErrorReturnTrace *)instruction);
break;
+ case IrInstructionIdErrorUnion:
+ ir_print_error_union(irp, (IrInstructionErrorUnion *)instruction);
+ break;
}
fprintf(irp->f, "\n");
}