authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-05-23 19:49:04-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-05-24 15:34:52-07:00
log7db39384f7384b73c51dd9cab5b23ad0a3699fd0
treea56e827d9757e9ed20fdc41d54a8e6ada99f8674
parent1bf7a6dff5e39aeeeefe2016a423d16f73ba2263

move bound function behavior test to compile error test


2 files changed, 20 insertions(+), 22 deletions(-)

test/behavior/eval.zig-22
...@@ -572,28 +572,6 @@ test "inlined loop has array literal with elided runtime scope on first iteratio...@@ -572,28 +572,6 @@ test "inlined loop has array literal with elided runtime scope on first iteratio
572 }572 }
573}573}
574574
575test "call method on bound fn referring to var instance" {
576 if (builtin.zig_backend != .stage1) {
577 // Let's delay solving this one; I want to try to eliminate bound functions from
578 // the language.
579 return error.SkipZigTest; // TODO
580 }
581
582 try expect(bound_fn() == 1237);
583}
584
585const SimpleStruct = struct {
586 field: i32,
587
588 fn method(self: *const SimpleStruct) i32 {
589 return self.field + 3;
590 }
591};
592
593var simple_struct = SimpleStruct{ .field = 1234 };
594
595const bound_fn = simple_struct.method;
596
597test "ptr to local array argument at comptime" {575test "ptr to local array argument at comptime" {
598 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO576 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
599 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO577 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
test/cases/compile_errors/call method on bound fn referring to var instance.zig created+20
...@@ -0,0 +1,20 @@
1export fn entry() void {
2 bad(bound_fn() == 1237);
3}
4const SimpleStruct = struct {
5 field: i32,
6
7 fn method(self: *const SimpleStruct) i32 {
8 return self.field + 3;
9 }
10};
11var simple_struct = SimpleStruct{ .field = 1234 };
12const bound_fn = simple_struct.method;
13fn bad(ok: bool) void {
14 _ = ok;
15}
16// error
17// target=native
18// backend=stage2
19//
20// :12:18: error: unable to resolve comptime value