| ... | @@ -2201,6 +2201,23 @@ test "peer type resolution: pointer attributes are combined correctly" { | ... | @@ -2201,6 +2201,23 @@ test "peer type resolution: pointer attributes are combined correctly" { |
| 2201 | try expectEqualSlices(u8, std.mem.span(@volatileCast(r3)), "baz"); | 2201 | try expectEqualSlices(u8, std.mem.span(@volatileCast(r3)), "baz"); |
| 2202 | } | 2202 | } |
| 2203 | | 2203 | |
| | 2204 | test "peer type resolution: arrays of compatible types" { |
| | 2205 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| | 2206 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| | 2207 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| | 2208 | |
| | 2209 | var e0: u8 = 3; |
| | 2210 | var e1: u8 = 2; |
| | 2211 | var e2: u8 = 1; |
| | 2212 | const a = [3]*u8{ &e0, &e1, &e2 }; |
| | 2213 | const b = [3]*const u8{ &e0, &e1, &e2 }; |
| | 2214 | |
| | 2215 | comptime assert(@TypeOf(a, b) == [3]*const u8); |
| | 2216 | comptime assert(@TypeOf(b, a) == [3]*const u8); |
| | 2217 | |
| | 2218 | try expectEqual(@as(@TypeOf(a, b), a), b); |
| | 2219 | } |
| | 2220 | |
| 2204 | test "cast builtins can wrap result in optional" { | 2221 | test "cast builtins can wrap result in optional" { |
| 2205 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 2222 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 2206 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 2223 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |