| ... | ... | @@ -111,3 +111,39 @@ test "tuple initializer for var" { |
| 111 | 111 | S.doTheTest(); |
| 112 | 112 | comptime S.doTheTest(); |
| 113 | 113 | } |
| 114 | |
| 115 | test "array-like initializer for tuple types" { |
| 116 | const T = @Type(std.builtin.TypeInfo{ |
| 117 | .Struct = std.builtin.TypeInfo.Struct{ |
| 118 | .is_tuple = true, |
| 119 | .layout = .Auto, |
| 120 | .decls = &[_]std.builtin.TypeInfo.Declaration{}, |
| 121 | .fields = &[_]std.builtin.TypeInfo.StructField{ |
| 122 | .{ |
| 123 | .name = "0", |
| 124 | .field_type = i32, |
| 125 | .default_value = @as(?i32, null), |
| 126 | .is_comptime = false, |
| 127 | .alignment = @alignOf(i32), |
| 128 | }, |
| 129 | .{ |
| 130 | .name = "1", |
| 131 | .field_type = u8, |
| 132 | .default_value = @as(?i32, null), |
| 133 | .is_comptime = false, |
| 134 | .alignment = @alignOf(i32), |
| 135 | }, |
| 136 | }, |
| 137 | }, |
| 138 | }); |
| 139 | const S = struct { |
| 140 | fn doTheTest() !void { |
| 141 | var obj: T = .{ -1234, 128 }; |
| 142 | try testing.expectEqual(@as(i32, -1234), obj[0]); |
| 143 | try testing.expectEqual(@as(u8, 128), obj[1]); |
| 144 | } |
| 145 | }; |
| 146 | |
| 147 | try S.doTheTest(); |
| 148 | comptime try S.doTheTest(); |
| 149 | } |