error handling

This commit is contained in:
Ashwin Naren
2025-04-15 10:02:32 -07:00
parent 456e555e8b
commit d47944b2fd

View File

@@ -244,8 +244,10 @@ impl CodeInfo {
let instr_display = instr.display(display_arg, self);
eprint!("{instr_display}: {depth} {effect:+} => ");
}
// Either it's less than 0 or more than u32. Option 1 is far more likely unless something is seriously wrong.
let new_depth = depth.checked_add_signed(effect).expect("The stack is detected to have likely been reduced to less than 0 elements, this is a bug.");
if effect < 0 && depth < effect.abs() as u32 {
panic!("The stack will underflow at {depth} with {effect} effect on {instr:?}");
}
let new_depth = depth.checked_add_signed(effect).unwrap();
if DEBUG {
eprintln!("{new_depth}");
}