aboutsummaryrefslogtreecommitdiff
path: root/test/compile_errors.zig
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2018-07-31 14:36:27 -0400
committerAndrew Kelley <superjoe30@gmail.com>2018-07-31 14:36:27 -0400
commitf804310d9f953c9d78a4271ba8d75133341840e6 (patch)
tree71a9db15bcabbec32d6f2c795927603f9b278ceb /test/compile_errors.zig
parentdd9728c5a03844267bc378c326c353fd2b0e084e (diff)
parent058bfb254c4c0e1cfb254791f771c88c74f299e8 (diff)
downloadzig-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.zig58
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);