authorgravatar for mpoliwczak34@gmail.comMateusz Poliwczak <mpoliwczak34@gmail.com> 2025-11-18 16:06:49+01:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-11-25 05:58:30-08:00
logd0ba6642b5407a904ff0bec5b8f05ab65652f428
treecc442fe013033c5a9c1c3e5d66fe1bc516944b8a
parent14ba3bd9a1ac921bec6be01b0940856097406e41

std.Zig.AstGen: handle properly .inferred_ptr and .destructure in enum_literal handling

rl.resultType() returns null for inferred_ptr and destructure, so move that to the unreachable block.

1 files changed, 2 insertions(+), 2 deletions(-)

lib/std/zig/AstGen.zig+2-2
...@@ -1006,9 +1006,9 @@ fn expr(gz: *GenZir, scope: *Scope, ri: ResultInfo, node: Ast.Node.Index) InnerE...@@ -1006,9 +1006,9 @@ fn expr(gz: *GenZir, scope: *Scope, ri: ResultInfo, node: Ast.Node.Index) InnerE
1006 .field_name_start = str_index,1006 .field_name_start = str_index,
1007 });1007 });
1008 switch (ri.rl) {1008 switch (ri.rl) {
1009 .discard, .none, .ref => unreachable, // no result type1009 .discard, .none, .ref, .inferred_ptr, .destructure => unreachable, // no result type
1010 .ty, .coerced_ty => return res, // `decl_literal` does the coercion for us1010 .ty, .coerced_ty => return res, // `decl_literal` does the coercion for us
1011 .ref_coerced_ty, .ptr, .inferred_ptr, .destructure => return rvalue(gz, ri, res, node),1011 .ref_coerced_ty, .ptr => return rvalue(gz, ri, res, node),
1012 }1012 }
1013 } else return simpleStrTok(gz, ri, tree.nodeMainToken(node), node, .enum_literal),1013 } else return simpleStrTok(gz, ri, tree.nodeMainToken(node), node, .enum_literal),
1014 .error_value => return simpleStrTok(gz, ri, tree.nodeMainToken(node) + 2, node, .error_value),1014 .error_value => return simpleStrTok(gz, ri, tree.nodeMainToken(node) + 2, node, .error_value),