$ stage4/bin/zig test test3.zig
thread 1049783 panic: reached unreachable code
Analyzing test3.zig: test3.zig:test_0
%6 = dbg_block_begin()
%7 = dbg_stmt(2, 5)
%8 = block_comptime({
%9 = error_set_decl(parent, {
Bad,
})
%10 = error_union_type(%9, @InternPool.Index.i32_type)
%11 = break(%8, %10)
})
%12 = dbg_stmt(2, 33)
%13 = decl_val("foo")
%14 = dbg_stmt(2, 47)
%15 = call(.auto, %13, [])
> %16 = extended(error_cast(%8, %15))
%17 = as_node(%8, %16)
%18 = dbg_var_val(%17, "bar")
%19 = save_err_ret_index(%17)
%20 = dbg_stmt(3, 5)
%21 = decl_ref("std")
%22 = dbg_stmt(3, 8)
%23 = field_ptr(%21, "testing")
%24 = dbg_stmt(3, 16)
%25 = dbg_stmt(3, 23)
%26 = field_call(nodiscard .auto, %23, "expect", [
{
%27 = dbg_stmt(3, 25)
%28 = try(%17, {
%29 = err_union_code(%17)
%30 = dbg_stmt(3, 25)
%31 = ret_node(%29)
})
%32 = int(1234)
%33 = cmp_eq(%28, %32)
%34 = break_inline(%26, %33)
},
])
%35 = dbg_block_end()
%36 = restore_err_ret_index(%5, %4294967211)
%37 = break(%5, @InternPool.Index.void_value)
For full context, use the command
zig ast-check -t test3.zig
in test3.zig: test3.zig:test_0
> %5 = block({%6..%37})
/home/andy/Downloads/zig/src/type.zig:2874:26: 0x691d46a in errorSetNames (zig)
.none => unreachable, // unresolved inferred error set
^
/home/andy/Downloads/zig/src/Sema.zig:21782:69: 0x6c9baa6 in zirErrorCast (zig)
if (!operand_ty.isAnyError(mod) and operand_ty.errorSetNames(mod).len == 0) break :disjoint true;
^
/home/andy/Downloads/zig/src/Sema.zig:1255:65: 0x68d024f in analyzeBodyInner (zig)
.error_cast => try sema.zirErrorCast( block, extended),
^
/home/andy/Downloads/zig/src/Sema.zig:5887:34: 0x72841bb in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5870:33: 0x6ccc160 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1578:49: 0x68d7947 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:917:30: 0x6b9ff78 in analyzeBody (zig)
_ = sema.analyzeBodyInner(block, body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Module.zig:4847:21: 0x68a4826 in analyzeFnBody (zig)
sema.analyzeBody(&inner_block, fn_info.body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Module.zig:3442:40: 0x664a7fd in ensureFuncBodyAnalyzed (zig)
var air = mod.analyzeFnBody(func_index, sema_arena) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Compilation.zig:3458:42: 0x66488cd in processOneJob (zig)
module.ensureFuncBodyAnalyzed(func) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Compilation.zig:3395:30: 0x647bf5b in performAllTheWork (zig)
try processOneJob(comp, work_item, main_progress_node);
^
/home/andy/Downloads/zig/src/Compilation.zig:2194:31: 0x64774ec in update (zig)
try comp.performAllTheWork(main_progress_node);
^
/home/andy/Downloads/zig/src/main.zig:4194:24: 0x64a6530 in updateModule (zig)
try comp.update(main_progress_node);
^
/home/andy/Downloads/zig/src/main.zig:3597:17: 0x64c96c1 in buildOutputType (zig)
updateModule(comp) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/main.zig:275:31: 0x631dba7 in mainArgs (zig)
return buildOutputType(gpa, arena, args, .zig_test);
^
/home/andy/Downloads/zig/src/main.zig:213:20: 0x631ac05 in main (zig)
return mainArgs(gpa, arena, args);
^
/home/andy/Downloads/zig/lib/std/start.zig:486:37: 0x631a61e in main (zig)
std.os.argv = @as([*][*:0]u8, @ptrCast(c_argv))[0..@as(usize, @intCast(c_argc))];
^
???:?:?: 0x7f081db3dacd in ??? (libc.so.6)
Unwind information for `libc.so.6:0x7f081db3dacd` was not available, trace may be incomplete
Aborted (core dumped)
Test passed.
Zig Version
0.12.0-dev.705+af40bce08
Steps to Reproduce and Observed Behavior
Expected Behavior
Test passed.