aboutsummaryrefslogtreecommitdiff
path: root/test/compile_errors.zig
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2018-06-04 01:09:15 -0400
committerAndrew Kelley <superjoe30@gmail.com>2018-06-04 01:39:57 -0400
commit96164ce61377b36bcaf0c4087ca9b1ab822b9457 (patch)
treedb4ab07dd179c8f72a05028edb6ad60bfabd4a74 /test/compile_errors.zig
parent4c273126dfc44cf4fcf9d5d97bf1cb1da07d7bd7 (diff)
downloadzig-96164ce61377b36bcaf0c4087ca9b1ab822b9457.tar.gz
zig-96164ce61377b36bcaf0c4087ca9b1ab822b9457.zip
disallow single-item pointer indexing
add pointer arithmetic for unknown length pointer
Diffstat (limited to 'test/compile_errors.zig')
-rw-r--r--test/compile_errors.zig15
1 files changed, 12 insertions, 3 deletions
diff --git a/test/compile_errors.zig b/test/compile_errors.zig
index ea1357f5bb..7e9ef82e42 100644
--- a/test/compile_errors.zig
+++ b/test/compile_errors.zig
@@ -2,6 +2,15 @@ const tests = @import("tests.zig");
pub fn addCases(cases: *tests.CompileErrorContext) void {
cases.add(
+ "indexing single-item pointer",
+ \\export fn entry(ptr: *i32) i32 {
+ \\ return ptr[1];
+ \\}
+ ,
+ ".tmp_source.zig:2:15: error: indexing not allowed on pointer to single item",
+ );
+
+ cases.add(
"invalid deref on switch target",
\\const NextError = error{NextError};
\\const OtherError = error{OutOfMemory};
@@ -1002,7 +1011,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
\\ return a;
\\}
,
- ".tmp_source.zig:3:12: error: expected type 'i32', found '*const u8'",
+ ".tmp_source.zig:3:12: error: expected type 'i32', found '[*]const u8'",
);
cases.add(
@@ -2442,13 +2451,13 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
\\var s_buffer: [10]u8 = undefined;
\\pub fn pass(in: []u8) []u8 {
\\ var out = &s_buffer;
- \\ out[0].* = in[0];
+ \\ out.*.* = in[0];
\\ return out.*[0..1];
\\}
\\
\\export fn entry() usize { return @sizeOf(@typeOf(pass)); }
,
- ".tmp_source.zig:4:11: error: attempt to dereference non pointer type '[10]u8'",
+ ".tmp_source.zig:4:10: error: attempt to dereference non pointer type '[10]u8'",
);
cases.add(