authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-12-22 20:48:53-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-12-22 20:48:53-07:00
log303bad9989866373042df9e80722185608bf1147
tree571f9bd333e39035d256263de8b0693943d499c0
parentcc937369fb8fed44e8e1b653f1f22805c84a3507

behavior tests: stage2 is not yet passing this test

Looks like I repeated the same mistake, which last time was addressed in 1e0addcf73ee71d23a41b744995848bcca38e8d3.

2 files changed, 35 insertions(+), 35 deletions(-)

test/behavior/struct_llvm.zig-35
......@@ -91,38 +91,3 @@ const Expr = union(enum) {
9191fn alloc(comptime T: type) []T {
9292 return &[_]T{};
9393}
94
95test "for loop over pointers to struct, getting field from struct pointer" {
96 const S = struct {
97 const Foo = struct {
98 name: []const u8,
99 };
100
101 var ok = true;
102
103 fn eql(a: []const u8) bool {
104 _ = a;
105 return true;
106 }
107
108 const ArrayList = struct {
109 fn toSlice(self: *ArrayList) []*Foo {
110 _ = self;
111 return @as([*]*Foo, undefined)[0..0];
112 }
113 };
114
115 fn doTheTest() !void {
116 var objects: ArrayList = undefined;
117
118 for (objects.toSlice()) |obj| {
119 if (eql(obj.name)) {
120 ok = false;
121 }
122 }
123
124 try expect(ok);
125 }
126 };
127 try S.doTheTest();
128}
test/behavior/struct_stage1.zig+35
......@@ -649,3 +649,38 @@ test "packed struct with undefined initializers" {
649649 try S.doTheTest();
650650 comptime try S.doTheTest();
651651}
652
653test "for loop over pointers to struct, getting field from struct pointer" {
654 const S = struct {
655 const Foo = struct {
656 name: []const u8,
657 };
658
659 var ok = true;
660
661 fn eql(a: []const u8) bool {
662 _ = a;
663 return true;
664 }
665
666 const ArrayList = struct {
667 fn toSlice(self: *ArrayList) []*Foo {
668 _ = self;
669 return @as([*]*Foo, undefined)[0..0];
670 }
671 };
672
673 fn doTheTest() !void {
674 var objects: ArrayList = undefined;
675
676 for (objects.toSlice()) |obj| {
677 if (eql(obj.name)) {
678 ok = false;
679 }
680 }
681
682 try expect(ok);
683 }
684 };
685 try S.doTheTest();
686}