aboutsummaryrefslogtreecommitdiff
path: root/test/behavior/incomplete_struct_param_tld.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2021-04-29 15:54:04 -0700
committerAndrew Kelley <andrew@ziglang.org>2021-04-29 15:54:04 -0700
commit4307436b9945f814ff5731981df1d19febf3ba0a (patch)
treeefaaec94a41d632d45f255d464d9787eb02c4c9b /test/behavior/incomplete_struct_param_tld.zig
parent5a02c938dafdf2bb11b2350b6ad3161ef93744f0 (diff)
downloadzig-4307436b9945f814ff5731981df1d19febf3ba0a.tar.gz
zig-4307436b9945f814ff5731981df1d19febf3ba0a.zip
move behavior tests from test/stage1/ to test/
And fix test cases to make them pass. This is in preparation for starting to pass behavior tests with self-hosted.
Diffstat (limited to 'test/behavior/incomplete_struct_param_tld.zig')
-rw-r--r--test/behavior/incomplete_struct_param_tld.zig30
1 files changed, 30 insertions, 0 deletions
diff --git a/test/behavior/incomplete_struct_param_tld.zig b/test/behavior/incomplete_struct_param_tld.zig
new file mode 100644
index 0000000000..77a3dfd221
--- /dev/null
+++ b/test/behavior/incomplete_struct_param_tld.zig
@@ -0,0 +1,30 @@
+const expect = @import("std").testing.expect;
+
+const A = struct {
+ b: B,
+};
+
+const B = struct {
+ c: C,
+};
+
+const C = struct {
+ x: i32,
+
+ fn d(c: *const C) i32 {
+ return c.x;
+ }
+};
+
+fn foo(a: A) i32 {
+ return a.b.c.d();
+}
+
+test "incomplete struct param top level declaration" {
+ const a = A{
+ .b = B{
+ .c = C{ .x = 13 },
+ },
+ };
+ expect(foo(a) == 13);
+}