lib/std/zig/Ast.zig | 18 - lib/std/zig/AstGen.zig | 149 +++++---- lib/std/zig/Zir.zig | 135 ++++++-- src/Sema.zig | 564 ++++++++++++++++++++++---------- src/Zcu.zig | 88 +++-- src/print_zir.zig | 55 +++- test/behavior/switch.zig | 52 ++- test/behavior/switch_loop.zig | 24 ++ test/cases/compile_errors/switch_expression-non_exhaustive_inline.zig | 27 ++ test/cases/compile_errors/switch_expression-non_exhaustive_unreachable_else.zig | 18 + test/cases/compile_errors/switching_with_non-exhaustive_enums.zig | 2 +- 11 files changed, 769 insertions(+), 363 deletions(-)