aboutsummaryrefslogtreecommitdiff
path: root/test/cases3/struct.zig
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2016-12-22 01:42:30 -0500
committerAndrew Kelley <superjoe30@gmail.com>2016-12-22 01:42:30 -0500
commitdab3ddab4539b79b1dee4bc82f78c1b3f41ffeb2 (patch)
treeb792312c1cf2025041a3370fc9b59b91ff53c9c0 /test/cases3/struct.zig
parent5a717187571e5eed99087a9b4359f6ac194db1cf (diff)
downloadzig-dab3ddab4539b79b1dee4bc82f78c1b3f41ffeb2.tar.gz
zig-dab3ddab4539b79b1dee4bc82f78c1b3f41ffeb2.zip
IR: port more tests
Diffstat (limited to 'test/cases3/struct.zig')
-rw-r--r--test/cases3/struct.zig34
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;