src/RangeSet.zig | 41 +++--- src/Sema.zig | 243 +++++++++++++++++--------------- test/cases/compile_errors/duplicate_boolean_switch_value.zig | 4 +- test/cases/compile_errors/duplicate_error_in_switch.zig | 2 +- test/cases/compile_errors/switch_expression-duplicate_enumeration_prong.zig | 3 +- test/cases/compile_errors/switch_expression-duplicate_enumeration_prong_when_else_present.zig | 3 +- test/cases/compile_errors/switch_expression-duplicate_error_prong.zig | 4 +- test/cases/compile_errors/switch_expression-duplicate_error_prong_when_else_present.zig | 4 +- test/cases/compile_errors/switch_expression-duplicate_or_overlapping_integer_value.zig | 16 --- test/cases/compile_errors/switch_expression-duplicate_type.zig | 2 +- test/cases/compile_errors/switch_expression-duplicate_type_struct_alias.zig | 3 +- test/cases/compile_errors/switch_with_overlapping_case_ranges.zig | 42 +++++- 12 files changed, 200 insertions(+), 167 deletions(-)