authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-08-27 18:31:28-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-08-27 18:31:28-04:00
log45d9d9f953df2167b35878ea02551d9c86ad8a0f
tree647c64025db7bd7c5948f8d5493befdf566c0071
parente2a9f2ef988e6ff4ec9f943ead9285c67c56ffd7
signaturelock-open Commit is signed but in an unrecognized format.

minor fixups


2 files changed, 16 insertions(+), 17 deletions(-)

src/ir.cpp+1-1
...@@ -8488,7 +8488,7 @@ static ConstCastOnly types_match_const_cast_only(IrAnalyze *ira, TypeTableEntry...@@ -8488,7 +8488,7 @@ static ConstCastOnly types_match_const_cast_only(IrAnalyze *ira, TypeTableEntry
8488 return result;8488 return result;
8489 }8489 }
84908490
8491 // *T and [*]T can always cast to ?*c_void8491 // *T and [*]T can always cast to *c_void
8492 if (wanted_type->id == TypeTableEntryIdPointer &&8492 if (wanted_type->id == TypeTableEntryIdPointer &&
8493 wanted_type->data.pointer.ptr_len == PtrLenSingle &&8493 wanted_type->data.pointer.ptr_len == PtrLenSingle &&
8494 wanted_type->data.pointer.child_type == g->builtin_types.entry_c_void &&8494 wanted_type->data.pointer.child_type == g->builtin_types.entry_c_void &&
test/cases/cast.zig+15-16
...@@ -487,20 +487,20 @@ fn MakeType(comptime T: type) type {...@@ -487,20 +487,20 @@ fn MakeType(comptime T: type) type {
487}487}
488488
489test "implicit cast from *[N]T to ?[*]T" {489test "implicit cast from *[N]T to ?[*]T" {
490 var x: ?[*]u16 = null;490 var x: ?[*]u16 = null;
491 var y: [4]u16 = [4]u16 {0, 1, 2, 3};491 var y: [4]u16 = [4]u16{ 0, 1, 2, 3 };
492492
493 x = &y;493 x = &y;
494 assert(std.mem.eql(u16, x.?[0..4], y[0..4]));494 assert(std.mem.eql(u16, x.?[0..4], y[0..4]));
495 x.?[0] = 8;495 x.?[0] = 8;
496 y[3] = 6;496 y[3] = 6;
497 assert(std.mem.eql(u16, x.?[0..4], y[0..4]));497 assert(std.mem.eql(u16, x.?[0..4], y[0..4]));
498}498}
499499
500test "implicit cast from *T to ?*c_void" {500test "implicit cast from *T to ?*c_void" {
501 var a: u8 = 1;501 var a: u8 = 1;
502 incrementVoidPtrValue(&a);502 incrementVoidPtrValue(&a);
503 std.debug.assert(a == 2);503 std.debug.assert(a == 2);
504}504}
505505
506fn incrementVoidPtrValue(value: ?*c_void) void {506fn incrementVoidPtrValue(value: ?*c_void) void {
...@@ -508,15 +508,14 @@ fn incrementVoidPtrValue(value: ?*c_void) void {...@@ -508,15 +508,14 @@ fn incrementVoidPtrValue(value: ?*c_void) void {
508}508}
509509
510test "implicit cast from [*]T to ?*c_void" {510test "implicit cast from [*]T to ?*c_void" {
511 var a = []u8{3, 2, 1};511 var a = []u8{ 3, 2, 1 };
512 incrementVoidPtrArray(a[0..].ptr, 3);512 incrementVoidPtrArray(a[0..].ptr, 3);
513 std.debug.assert(std.mem.eql(u8, a, []u8{4, 3, 2}));513 assert(std.mem.eql(u8, a, []u8{ 4, 3, 2 }));
514}514}
515515
516fn incrementVoidPtrArray(array: ?*c_void, len: usize) void {516fn incrementVoidPtrArray(array: ?*c_void, len: usize) void {
517 var n: usize = 0;517 var n: usize = 0;
518 while(n < len) : (n += 1) {518 while (n < len) : (n += 1) {
519 std.debug.warn("{}", n);
520 @ptrCast([*]u8, array.?)[n] += 1;519 @ptrCast([*]u8, array.?)[n] += 1;
521 }520 }
522}
\ No newline at end of file
521}