diff options
| author | Veikka Tuominen <git@vexu.eu> | 2022-07-07 10:43:57 +0300 |
|---|---|---|
| committer | Veikka Tuominen <git@vexu.eu> | 2022-07-07 10:45:45 +0300 |
| commit | 252388eb28fde40f085e14cd341efdc701093fe1 (patch) | |
| tree | c14f6b026b1b193b9e1034e3c705e3b9c94ab7cd /src/AstGen.zig | |
| parent | c9006d9479c619d9ed555164831e11a04d88d382 (diff) | |
| download | zig-252388eb28fde40f085e14cd341efdc701093fe1.tar.gz zig-252388eb28fde40f085e14cd341efdc701093fe1.zip | |
AstGen: move error_to_int, int_to_error and select to extended
Diffstat (limited to 'src/AstGen.zig')
| -rw-r--r-- | src/AstGen.zig | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/src/AstGen.zig b/src/AstGen.zig index a0ff7a0e6e..d4b942ecbc 100644 --- a/src/AstGen.zig +++ b/src/AstGen.zig @@ -2332,8 +2332,6 @@ fn unusedResultExpr(gz: *GenZir, scope: *Scope, statement: Ast.Node.Index) Inner .error_union_type, .bit_not, .error_value, - .error_to_int, - .int_to_error, .slice_start, .slice_end, .slice_sentinel, @@ -2420,7 +2418,6 @@ fn unusedResultExpr(gz: *GenZir, scope: *Scope, statement: Ast.Node.Index) Inner .splat, .reduce, .shuffle, - .select, .atomic_load, .atomic_rmw, .mul_add, @@ -7355,8 +7352,6 @@ fn builtinCall( .align_of => return simpleUnOpType(gz, scope, rl, node, params[0], .align_of), .ptr_to_int => return simpleUnOp(gz, scope, rl, node, .none, params[0], .ptr_to_int), - .error_to_int => return simpleUnOp(gz, scope, rl, node, .none, params[0], .error_to_int), - .int_to_error => return simpleUnOp(gz, scope, rl, node, .{ .coerced_ty = .u16_type }, params[0], .int_to_error), .compile_error => return simpleUnOp(gz, scope, rl, node, .{ .ty = .const_slice_u8_type }, params[0], .compile_error), .set_eval_branch_quota => return simpleUnOp(gz, scope, rl, node, .{ .coerced_ty = .u32_type }, params[0], .set_eval_branch_quota), .enum_to_int => return simpleUnOp(gz, scope, rl, node, .none, params[0], .enum_to_int), @@ -7396,6 +7391,22 @@ fn builtinCall( .truncate => return typeCast(gz, scope, rl, node, params[0], params[1], .truncate), // zig fmt: on + .error_to_int => { + const operand = try expr(gz, scope, .none, params[0]); + const result = try gz.addExtendedPayload(.error_to_int, Zir.Inst.UnNode{ + .node = gz.nodeIndexToRelative(node), + .operand = operand, + }); + return rvalue(gz, rl, result, node); + }, + .int_to_error => { + const operand = try expr(gz, scope, .{ .coerced_ty = .u16_type }, params[0]); + const result = try gz.addExtendedPayload(.int_to_error, Zir.Inst.UnNode{ + .node = gz.nodeIndexToRelative(node), + .operand = operand, + }); + return rvalue(gz, rl, result, node); + }, .align_cast => { const dest_align = try comptimeExpr(gz, scope, align_rl, params[0]); const rhs = try expr(gz, scope, .none, params[1]); @@ -7635,7 +7646,8 @@ fn builtinCall( return rvalue(gz, rl, result, node); }, .select => { - const result = try gz.addPlNode(.select, node, Zir.Inst.Select{ + const result = try gz.addExtendedPayload(.select, Zir.Inst.Select{ + .node = gz.nodeIndexToRelative(node), .elem_type = try typeExpr(gz, scope, params[0]), .pred = try expr(gz, scope, .none, params[1]), .a = try expr(gz, scope, .none, params[2]), |
