Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions lib/std/zig.zig
Original file line number Diff line number Diff line change
Expand Up @@ -765,6 +765,7 @@ pub const SimpleComptimeReason = enum(u32) {
// Reasons other than `.type` are just more specific messages.
type,
array_sentinel,
merge_error_set,
pointer_sentinel,
slice_sentinel,
array_length,
Expand Down Expand Up @@ -843,6 +844,7 @@ pub const SimpleComptimeReason = enum(u32) {
.clobber => "clobber must be comptime-known",

.type => "types must be comptime-known",
.merge_error_set => "operand to error set merge (||) must be an error set",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
.merge_error_set => "operand to error set merge (||) must be an error set",
.merge_error_set => "operand to error set merge operator (||) must be a type",

although, really, it would probably be better to use the types must be comptime-known error message, with an additional note explaining why it expects a type.

.array_sentinel => "array sentinel value must be comptime-known",
.pointer_sentinel => "pointer sentinel value must be comptime-known",
.slice_sentinel => "slice sentinel value must be comptime-known",
Expand Down
4 changes: 2 additions & 2 deletions lib/std/zig/AstGen.zig
Original file line number Diff line number Diff line change
Expand Up @@ -793,8 +793,8 @@ fn expr(gz: *GenZir, scope: *Scope, ri: ResultInfo, node: Ast.Node.Index) InnerE
else => unreachable,
};
const lhs_node, const rhs_node = tree.nodeData(node).node_and_node;
const lhs = try reachableTypeExpr(gz, scope, lhs_node, node);
const rhs = try reachableTypeExpr(gz, scope, rhs_node, node);
const lhs = try reachableExprComptime(gz, scope, coerced_type_ri, lhs_node, node, .merge_error_set);
const rhs = try reachableExprComptime(gz, scope, coerced_type_ri, rhs_node, node, .merge_error_set);
const result = try gz.addPlNode(inst_tag, node, Zir.Inst.Bin{ .lhs = lhs, .rhs = rhs });
return rvalue(gz, ri, result, node);
},
Expand Down