| ... | ... | @@ -3164,3 +3164,23 @@ test "coercing a coerced function" { |
| 3164 | 3164 | }; |
| 3165 | 3165 | try S.doTheTest(); |
| 3166 | 3166 | } |
| 3167 | |
| 3168 | test "pointer to empty tuple coerces to any slice" { |
| 3169 | const tuple_ptr = &.{}; |
| 3170 | |
| 3171 | const const_slice_0: []const u8 = tuple_ptr; |
| 3172 | const const_slice_1: []const struct {} = tuple_ptr; |
| 3173 | const const_slice_2: []align(64) const struct { x: u8 } = tuple_ptr; |
| 3174 | |
| 3175 | const mut_slice_0: []const u8 = tuple_ptr; |
| 3176 | const mut_slice_1: []const struct {} = tuple_ptr; |
| 3177 | const mut_slice_2: []align(64) const struct { x: u8 } = tuple_ptr; |
| 3178 | |
| 3179 | comptime assert(const_slice_0.len == 0); |
| 3180 | comptime assert(const_slice_1.len == 0); |
| 3181 | comptime assert(const_slice_2.len == 0); |
| 3182 | |
| 3183 | comptime assert(mut_slice_0.len == 0); |
| 3184 | comptime assert(mut_slice_1.len == 0); |
| 3185 | comptime assert(mut_slice_2.len == 0); |
| 3186 | } |