zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 94299d16d1443cd8b731e2eba9b4d1e3fb8048bd (tree)
parent e3404e3c78307092e849dc0609f77932b263e3fc
Author: Timon Kruiper <timonkruiper@gmail.com>
Date:   Wed, 20 Nov 2019 19:34:20 +0100

Stage1: Add compile error for an empty switch on a integer

Diffstat:
Msrc/range_set.cpp | 3+++
Mtest/compile_errors.zig | 10++++++++++
2 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/src/range_set.cpp b/src/range_set.cpp @@ -40,6 +40,9 @@ void rangeset_sort(RangeSet *rs) { } bool rangeset_spans(RangeSet *rs, BigInt *first, BigInt *last) { + if (rs->src_range_list.length == 0) + return false; + rangeset_sort(rs); const Range *first_range = &rs->src_range_list.at(0).range; diff --git a/test/compile_errors.zig b/test/compile_errors.zig @@ -3,6 +3,16 @@ const builtin = @import("builtin"); pub fn addCases(cases: *tests.CompileErrorContext) void { cases.add( + "empty switch on an integer", + \\export fn entry() void { + \\ var x: u32 = 0; + \\ switch(x) {} + \\} + , + "tmp.zig:3:5: error: switch must handle all possibilities", + ); + + cases.add( "regression test #2980: base type u32 is not type checked properly when assigning a value within a struct", \\const Foo = struct { \\ ptr: ?*usize,