❯ ./zig-cache/bin/zig astgen test.zig %38 = struct_decl({}, {}, { pub main: %15 = block_inline({ %0 = error_union_type(@Ref.anyerror_type, @Ref.void_type) node_offset:1:23 %1 = as_node(@Ref.type_type, %0) node_offset:1:23 %14 = func([], %1, { %2 = dbg_stmt_node() node_offset:2:5 %7 = block({ %3 = decl_val("f") token_offset:2:9 %4 = call_none(%3) node_offset:2:10 %5 = is_err(%4) node_offset:2:10 %6 = condbr(%5, { %8 = err_union_code(%4) node_offset:2:10 %9 = ret_node(%8) node_offset:2:10 }, { %10 = err_union_payload_unsafe(%4) node_offset:2:10 %11 = break(%7, %10) }) node_offset:2:10 }) node_offset:2:10 %12 = ensure_result_used(%7) node_offset:2:5 %13 = ret_coerce(@Ref.void_value) token_offset:3:1 }) node_offset:1:5 %16 = break_inline(%15, %14) }) node_offset:1:5 pub f: %36 = block_inline({ %17 = error_union_type(@Ref.anyerror_type, @Ref.void_type) node_offset:5:20 %18 = as_node(@Ref.type_type, %17) node_offset:5:20 %35 = func([], %18, { %19 = dbg_stmt_node() node_offset:6:5 %20 = error_union_type(@Ref.anyerror_type, @Ref.u32_type) node_offset:6:22 %21 = as_node(@Ref.type_type, %20) node_offset:6:22 %22 = error_value("V") token_offset:6:35 %23 = as_node(%21, %22) node_offset:6:29 %24 = dbg_stmt_node() node_offset:7:7 %27 = block({ %25 = is_err(%23) node_offset:7:13 %26 = condbr(%25, { %28 = err_union_code(%23) node_offset:7:13 %29 = ret_node(%28) node_offset:7:13 }, { %30 = err_union_payload_unsafe(%23) node_offset:7:13 %31 = ensure_result_non_error(%30) node_offset:7:13 %32 = break(%27, %30) }) node_offset:7:13 }) node_offset:7:13 %33 = ensure_result_non_error(%27) node_offset:7:13 %34 = ret_coerce(@Ref.void_value) token_offset:8:1 }) node_offset:5:5 %37 = break_inline(%36, %35) }) node_offset:5:5 }) node_offset:1:1 zig/build on  stage2-whole-file-astgen [$!] via ↯ v0.8.0-dev.1982+d605f0275 via ❄️ impure ❯ cat test.zig pub fn main() anyerror!void { try f(); } pub fn f() anyerror!void { const e: anyerror!u32 = error.V; _ = try e; }