doc/langref.html.in | 26 + src/AstGen.zig | 562 +++++++++++++++++- src/Sema.zig | 1005 +++++++++++++++++++++++--------- src/Zir.zig | 38 +- src/print_zir.zig | 140 ++++- test/behavior/switch_on_captured_error.zig | 750 ++++++++++++++++++++++++ test/cases/compile_errors/switch_expression-duplicate_error_prong.zig | 33 ++ test/cases/compile_errors/switch_expression-duplicate_error_prong_when_else_present.zig | 35 ++ test/cases/compile_errors/switch_expression-missing_error_prong.zig | 33 ++ test/cases/compile_errors/switch_expression-multiple_else_prongs.zig | 20 + test/cases/compile_errors/switch_expression-unreachable_else_prong_error.zig | 32 + test/cases/compile_errors/switch_on_error_union_discard.zig | 12 + test/cases/compile_errors/switch_on_error_with_1_field_with_no_prongs.zig | 20 + test/cases/inherit_want_safety.zig | 7 + 14 files changed, 2412 insertions(+), 301 deletions(-)