diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2018-07-31 14:36:27 -0400 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2018-07-31 14:36:27 -0400 |
| commit | f804310d9f953c9d78a4271ba8d75133341840e6 (patch) | |
| tree | 71a9db15bcabbec32d6f2c795927603f9b278ceb /test/compile_errors.zig | |
| parent | dd9728c5a03844267bc378c326c353fd2b0e084e (diff) | |
| parent | 058bfb254c4c0e1cfb254791f771c88c74f299e8 (diff) | |
| download | zig-f804310d9f953c9d78a4271ba8d75133341840e6.tar.gz zig-f804310d9f953c9d78a4271ba8d75133341840e6.zip | |
Merge remote-tracking branch 'origin/master' into llvm7
Diffstat (limited to 'test/compile_errors.zig')
| -rw-r--r-- | test/compile_errors.zig | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/test/compile_errors.zig b/test/compile_errors.zig index d5582b1584..2c4c9208eb 100644 --- a/test/compile_errors.zig +++ b/test/compile_errors.zig @@ -2,6 +2,64 @@ const tests = @import("tests.zig"); pub fn addCases(cases: *tests.CompileErrorContext) void { cases.add( + "while loop body expression ignored", + \\fn returns() usize { + \\ return 2; + \\} + \\export fn f1() void { + \\ while (true) returns(); + \\} + \\export fn f2() void { + \\ var x: ?i32 = null; + \\ while (x) |_| returns(); + \\} + \\export fn f3() void { + \\ var x: error!i32 = error.Bad; + \\ while (x) |_| returns() else |_| unreachable; + \\} + , + ".tmp_source.zig:5:25: error: expression value is ignored", + ".tmp_source.zig:9:26: error: expression value is ignored", + ".tmp_source.zig:13:26: error: expression value is ignored", + ); + + cases.add( + "missing parameter name of generic function", + \\fn dump(var) void {} + \\export fn entry() void { + \\ var a: u8 = 9; + \\ dump(a); + \\} + , + ".tmp_source.zig:1:9: error: missing parameter name", + ); + + cases.add( + "non-inline for loop on a type that requires comptime", + \\const Foo = struct { + \\ name: []const u8, + \\ T: type, + \\}; + \\export fn entry() void { + \\ const xx: [2]Foo = undefined; + \\ for (xx) |f| {} + \\} + , + ".tmp_source.zig:7:15: error: variable of type 'Foo' must be const or comptime", + ); + + cases.add( + "generic fn as parameter without comptime keyword", + \\fn f(_: fn (var) void) void {} + \\fn g(_: var) void {} + \\export fn entry() void { + \\ f(g); + \\} + , + ".tmp_source.zig:1:9: error: parameter of type 'fn(var)var' must be declared comptime", + ); + + cases.add( "optional pointer to void in extern struct", \\comptime { \\ _ = @IntType(false, @maxValue(u32) + 1); |
