lib/std/zig/AstGen.zig | 207 +++++++----- lib/std/zig/Zir.zig | 143 ++++++-- src/Sema.zig | 566 +++++++++++++++++++++++--------- src/Zcu.zig | 103 +++--- src/print_zir.zig | 79 ++++- test/behavior/switch.zig | 47 +++ test/behavior/switch_loop.zig | 24 ++ test/cases/compile_errors/switch_expression-non_exhaustive_absorbing.zig | 31 ++ test/cases/compile_errors/switch_expression-non_exhaustive_inline.zig | 25 ++ test/cases/compile_errors/switch_expression-non_exhaustive_unreachable_else.zig | 16 + test/cases/compile_errors/switching_with_exhaustive_enum_has___prong_.zig | 2 +- test/cases/compile_errors/switching_with_non-exhaustive_enums.zig | 4 +- 12 files changed, 925 insertions(+), 322 deletions(-)