| ... | @@ -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, |