std: Disable the special casing of {} for u8 slices/arrays

Unless {s} is specified the contents won't be treated as a string.
This commit is contained in:
LemonBoy 2020-11-26 15:43:28 +01:00 committed by Andrew Kelley
parent 4420afe64d
commit 1ca2deca33

View File

@ -504,7 +504,9 @@ pub fn formatType(
.One => switch (@typeInfo(ptr_info.child)) { .One => switch (@typeInfo(ptr_info.child)) {
.Array => |info| { .Array => |info| {
if (info.child == u8) { if (info.child == u8) {
return formatText(value, fmt, options, writer); if (fmt.len > 0 and comptime mem.indexOfScalar(u8, "sxXeEzZ", fmt[0]) != null) {
return formatText(value, fmt, options, writer);
}
} }
return format(writer, "{s}@{x}", .{ @typeName(ptr_info.child), @ptrToInt(value) }); return format(writer, "{s}@{x}", .{ @typeName(ptr_info.child), @ptrToInt(value) });
}, },
@ -529,7 +531,7 @@ pub fn formatType(
return writer.writeAll("{ ... }"); return writer.writeAll("{ ... }");
} }
if (ptr_info.child == u8) { if (ptr_info.child == u8) {
if (fmt.len == 0 or comptime mem.indexOfScalar(u8, "sxXeEzZ", fmt[0]) != null) { if (fmt.len > 0 and comptime mem.indexOfScalar(u8, "sxXeEzZ", fmt[0]) != null) {
return formatText(value, fmt, options, writer); return formatText(value, fmt, options, writer);
} }
} }