| ... | ... | @@ -869,3 +869,20 @@ test "write through pointer to optional slice arg" { |
| 869 | 869 | try S.bar(&foo); |
| 870 | 870 | try expectEqualStrings(foo.?, "ok"); |
| 871 | 871 | } |
| 872 | |
| 873 | test "modify slice length at comptime" { |
| 874 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; |
| 875 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 876 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; |
| 877 | if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; |
| 878 | |
| 879 | const arr: [2]u8 = .{ 10, 20 }; |
| 880 | comptime var s: []const u8 = arr[0..0]; |
| 881 | s.len += 1; |
| 882 | const a = s; |
| 883 | s.len += 1; |
| 884 | const b = s; |
| 885 | |
| 886 | try expectEqualSlices(u8, &.{10}, a); |
| 887 | try expectEqualSlices(u8, &.{ 10, 20 }, b); |
| 888 | } |