@@ -953,6 +953,7 @@ fn analyzeBodyInner(
953953 .int_type => try sema.zirIntType(block, inst),
954954 .is_non_err => try sema.zirIsNonErr(block, inst),
955955 .is_non_err_ptr => try sema.zirIsNonErrPtr(block, inst),
956+ .ret_is_non_err => try sema.zirRetIsNonErr(block, inst),
956957 .is_non_null => try sema.zirIsNonNull(block, inst),
957958 .is_non_null_ptr => try sema.zirIsNonNullPtr(block, inst),
958959 .merge_error_sets => try sema.zirMergeErrorSets(block, inst),
@@ -10288,6 +10289,7 @@ fn zirSwitchBlock(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError
1028810289 .ret_err_value_code,
1028910290 .restore_err_ret_index,
1029010291 .is_non_err,
10292+ .ret_is_non_err,
1029110293 .condbr,
1029210294 => {},
1029310295 else => break,
@@ -16577,7 +16579,7 @@ fn zirIsNonErr(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
1657716579 const src = inst_data.src();
1657816580 const operand = try sema.resolveInst(inst_data.operand);
1657916581 try sema.checkErrorType(block, src, sema.typeOf(operand));
16580- return sema.analyzeIsNonErr(block, inst_data. src() , operand);
16582+ return sema.analyzeIsNonErr(block, src, operand);
1658116583}
1658216584
1658316585fn zirIsNonErrPtr(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.Inst.Ref {
@@ -16592,6 +16594,16 @@ fn zirIsNonErrPtr(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError
1659216594 return sema.analyzeIsNonErr(block, src, loaded);
1659316595}
1659416596
16597+ fn zirRetIsNonErr(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.Inst.Ref {
16598+ const tracy = trace(@src());
16599+ defer tracy.end();
16600+
16601+ const inst_data = sema.code.instructions.items(.data)[inst].un_node;
16602+ const src = inst_data.src();
16603+ const operand = try sema.resolveInst(inst_data.operand);
16604+ return sema.analyzeIsNonErr(block, src, operand);
16605+ }
16606+
1659516607fn zirCondbr(
1659616608 sema: *Sema,
1659716609 parent_block: *Block,
0 commit comments