diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2018-06-05 10:29:54 -0400 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2018-06-05 10:29:54 -0400 |
| commit | 7dd18294b7988062461430d431eaad2ad7b19daa (patch) | |
| tree | 8ce835394267efdf369948f0438de35a29db3b9f /test/cases/array.zig | |
| parent | 58ce79f9352a6139c873df6d99d1531101350e9f (diff) | |
| parent | 677eaf29b10df9b1dc461b37e7be78734b11ef19 (diff) | |
| download | zig-7dd18294b7988062461430d431eaad2ad7b19daa.tar.gz zig-7dd18294b7988062461430d431eaad2ad7b19daa.zip | |
Merge remote-tracking branch 'origin/master' into llvm7
Diffstat (limited to 'test/cases/array.zig')
| -rw-r--r-- | test/cases/array.zig | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/test/cases/array.zig b/test/cases/array.zig index 9a405216d8..ef919b27bd 100644 --- a/test/cases/array.zig +++ b/test/cases/array.zig @@ -115,3 +115,32 @@ test "array len property" { var x: [5]i32 = undefined; assert(@typeOf(x).len == 5); } + +test "single-item pointer to array indexing and slicing" { + testSingleItemPtrArrayIndexSlice(); + comptime testSingleItemPtrArrayIndexSlice(); +} + +fn testSingleItemPtrArrayIndexSlice() void { + var array = "aaaa"; + doSomeMangling(&array); + assert(mem.eql(u8, "azya", array)); +} + +fn doSomeMangling(array: *[4]u8) void { + array[1] = 'z'; + array[2..3][0] = 'y'; +} + +test "implicit cast single-item pointer" { + testImplicitCastSingleItemPtr(); + comptime testImplicitCastSingleItemPtr(); +} + +fn testImplicitCastSingleItemPtr() void { + var byte: u8 = 100; + const slice = (*[1]u8)(&byte)[0..]; + slice[0] += 1; + assert(byte == 101); +} + |
