authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-03-20 17:26:31-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-03-20 17:26:31-07:00
log7741aca96c8cc6df7e8c4bd10ada741d6a3ffb9d
treebb7989b7e6f64ae30ad211c10a62ac250b092672
parent2583b389eaf5f7aaa0eb79b51126506c1e172d15

std: work around compiler unable to evaluate condition at compile time


1 files changed, 13 insertions(+), 17 deletions(-)

lib/std/json/static.zig+13-17
...@@ -400,24 +400,20 @@ pub fn innerParse(...@@ -400,24 +400,20 @@ pub fn innerParse(
400 @memcpy(r[i..][0..slice.len], slice);400 @memcpy(r[i..][0..slice.len], slice);
401 i += slice.len;401 i += slice.len;
402 },402 },
403 .partial_string_escaped_1 => |arr| {403 inline .partial_string_escaped_1,
404 .partial_string_escaped_2,
405 .partial_string_escaped_3,
406 .partial_string_escaped_4,
407 => |arr| {
404 if (i + arr.len > r.len) return error.LengthMismatch;408 if (i + arr.len > r.len) return error.LengthMismatch;
405 @memcpy(r[i..][0..arr.len], arr[0..]);409
406 i += arr.len;410 // Implementing https://github.com/ziglang/zig/issues/3806
407 },411 // would make this no longer needed because the
408 .partial_string_escaped_2 => |arr| {412 // above condition would become compile-time
409 if (i + arr.len > r.len) return error.LengthMismatch;413 // known.
410 @memcpy(r[i..][0..arr.len], arr[0..]);414 if (arr.len > r.len) unreachable;
411 i += arr.len;415
412 },416 @memcpy(r[i..][0..arr.len], &arr);
413 .partial_string_escaped_3 => |arr| {
414 if (i + arr.len > r.len) return error.LengthMismatch;
415 @memcpy(r[i..][0..arr.len], arr[0..]);
416 i += arr.len;
417 },
418 .partial_string_escaped_4 => |arr| {
419 if (i + arr.len > r.len) return error.LengthMismatch;
420 @memcpy(r[i..][0..arr.len], arr[0..]);
421 i += arr.len;417 i += arr.len;
422 },418 },
423 else => unreachable,419 else => unreachable,