fix std.mem.AsBytesReturnType (#3442)

closes #3334
This commit is contained in:
Emeka Nkurumeh 2019-10-16 17:15:52 -05:00 committed by Andrew Kelley
parent 45e5841281
commit 700bb19a90

View file

@ -1325,6 +1325,12 @@ fn AsBytesReturnType(comptime P: type) type {
const size = usize(@sizeOf(meta.Child(P)));
const alignment = comptime meta.alignment(P);
if (alignment == 0) {
if (comptime trait.isConstPtr(P))
return *const [size]u8;
return *[size]u8;
}
if (comptime trait.isConstPtr(P))
return *align(alignment) const [size]u8;
return *align(alignment) [size]u8;
@ -1364,6 +1370,10 @@ test "asBytes" {
.d = 0xA1,
};
testing.expect(eql(u8, asBytes(&inst), "\xBE\xEF\xDE\xA1"));
const ZST = struct {};
const zero = ZST{};
testing.expect(eql(u8, asBytes(&zero), ""));
}
///Given any value, returns a copy of its bytes in an array.