diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2016-12-22 01:42:30 -0500 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2016-12-22 01:42:30 -0500 |
| commit | dab3ddab4539b79b1dee4bc82f78c1b3f41ffeb2 (patch) | |
| tree | b792312c1cf2025041a3370fc9b59b91ff53c9c0 /test/cases3/struct.zig | |
| parent | 5a717187571e5eed99087a9b4359f6ac194db1cf (diff) | |
| download | zig-dab3ddab4539b79b1dee4bc82f78c1b3f41ffeb2.tar.gz zig-dab3ddab4539b79b1dee4bc82f78c1b3f41ffeb2.zip | |
IR: port more tests
Diffstat (limited to 'test/cases3/struct.zig')
| -rw-r--r-- | test/cases3/struct.zig | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/test/cases3/struct.zig b/test/cases3/struct.zig index 996b0598ea..1a5cda3be2 100644 --- a/test/cases3/struct.zig +++ b/test/cases3/struct.zig @@ -123,6 +123,40 @@ fn callStructField(foo: Foo) -> i32 { } +fn storeMemberFunctionInVariable() { + @setFnTest(this); + + const instance = MemberFnTestFoo { .x = 1234, }; + const memberFn = MemberFnTestFoo.member; + const result = memberFn(instance); + assert(result == 1234); +} +const MemberFnTestFoo = struct { + x: i32, + fn member(foo: MemberFnTestFoo) -> i32 { foo.x } +}; + + +fn callMemberFunctionDirectly() { + @setFnTest(this); + + const instance = MemberFnTestFoo { .x = 1234, }; + const result = MemberFnTestFoo.member(instance); + assert(result == 1234); +} + +fn memberFunctions() { + @setFnTest(this); + + const r = MemberFnRand {.seed = 1234}; + assert(r.getSeed() == 1234); +} +const MemberFnRand = struct { + seed: u32, + pub fn getSeed(r: MemberFnRand) -> u32 { + r.seed + } +}; // TODO const assert = @import("std").debug.assert; |
