From ad827841f02d23f04eb4ef0e19bd87ad84e0650f Mon Sep 17 00:00:00 2001 From: Luke Curley <432854+kixelated@users.noreply.github.com> Date: Sat, 7 Nov 2026 11:28:01 -0800 Subject: [PATCH 1/2] chore(quest): claim quest/m3/ts-unsafe/nonzero-unchecked-ops.md Quest-Claim: 1be64c6c416f6bf3 From 6fabb93ddc270df04fe06b50e5cdc88791fa8ebd Mon Sep 17 00:00:00 2001 From: Luke Curley <432854+kixelated@users.noreply.github.com> Date: Sat, 7 Nov 2026 11:36:31 -0800 Subject: [PATCH 2/2] feat(ts): translate NonZero's unchecked_add and unchecked_mul Each is its integer's checked form under rs.precondition, which aborts at std's call of its integer's method: the nonzero_integer! call that defines the width's NonZero, as a panic hook reads. Co-Authored-By: Claude Opus 5.5 --- quest/m3/ts-unsafe/README.md | 1 - quest/m3/ts-unsafe/nonzero-unchecked-ops.md | 19 - ts/README.md | 4 +- ts/fixtures/lang/methods/caller.ts | 2 +- ts/fixtures/lang/methods/expected/methods.ts | 4500 +++++++++-------- ts/fixtures/lang/methods/src/lib.rs | 2 +- ts/fixtures/lang/methods/src/methods.rs | 20 +- .../lang/panics/hook/expected/hooked.Shown.ts | 2 +- .../lang/panics/hook/expected/hooked.ts | 241 +- ts/fixtures/lang/panics/hook/expected/lib.ts | 2 +- ts/fixtures/lang/panics/src/hooked.rs | 10 +- ts/fixtures/lang/panics/src/lib.rs | 2 + ts/src/lower/library.rs | 5 +- 13 files changed, 2482 insertions(+), 2328 deletions(-) delete mode 100644 quest/m3/ts-unsafe/nonzero-unchecked-ops.md diff --git a/quest/m3/ts-unsafe/README.md b/quest/m3/ts-unsafe/README.md index fdc0dd431..86575a3a5 100644 --- a/quest/m3/ts-unsafe/README.md +++ b/quest/m3/ts-unsafe/README.md @@ -77,5 +77,4 @@ Public API: the translator's output. ## Required - [A raw pointer behind a reference](/quest/m3/ts-unsafe/raw-behind-ref.md) - `&raw const *r` of a value JS copies points where the reference came from -- [NonZero's unchecked arithmetic](/quest/m3/ts-unsafe/nonzero-unchecked-ops.md) - `NonZero::unchecked_add` and `unchecked_mul` translate, aborting at std's site - [UnsafeCell's raw accessors](/quest/m3/ts-unsafe/unsafecell.md) - `UnsafeCell::raw_get`, `from_mut`, and `replace` translate diff --git a/quest/m3/ts-unsafe/nonzero-unchecked-ops.md b/quest/m3/ts-unsafe/nonzero-unchecked-ops.md deleted file mode 100644 index 4b59c4f1e..000000000 --- a/quest/m3/ts-unsafe/nonzero-unchecked-ops.md +++ /dev/null @@ -1,19 +0,0 @@ -# [XS] NonZero's unchecked arithmetic - -## Goal - -[rust2-ts](/ts/README.md) translates `NonZero::unchecked_add` and `NonZero::unchecked_mul`, -proven by differential tests against native Rust. Today each is refused by name. - -## Plan - -Left by [#622](https://github.com/moq-dev/rust2/pull/622), which translated the integers' -`unchecked_*` and `NonZero::new_unchecked` through `rs.precondition`. Both are unstable -(`nonzero_ops`) and not `#[track_caller]`, so a violated precondition aborts with std's -`unsafe precondition(s) violated` text located inside std's source, through `caller.rs`'s -`SITES`, rather than at the call. - -Decided with the maintainer on 2026-11-07: ✅ m3, in this epic (rejected: skip). No -consumer at the moq pin. - -Public API: the translator's output. diff --git a/ts/README.md b/ts/README.md index 03cef191b..de0bcdc35 100644 --- a/ts/README.md +++ b/ts/README.md @@ -233,8 +233,8 @@ Each integer's inherent methods are std's, and a `NonZero`'s, a `Wrapping`'s, an `Saturating`'s are its integer's, as std defines them: a `Wrapping`'s `pow` is `wrapping_pow`. `pow` and `abs` panic on overflow as a debug build's do. An `unchecked_` method and `NonZero::new_unchecked` are their checked form, `rs.precondition(rs.u32CheckedAdd(a, b), ...)`, -which aborts where it gives `None` as a debug build's check of the precondition does; a -`NonZero`'s own `unchecked_` methods are refused. Those the operators +which aborts where it gives `None` as a debug build's check of the precondition does, a +`NonZero`'s own at std's call of its integer's. Those the operators lack are one runtime function for every width, `rs.intCheckedPow(a, n, 64, false)`, given the width and sign, which computes on the value's `bigint`. diff --git a/ts/fixtures/lang/methods/caller.ts b/ts/fixtures/lang/methods/caller.ts index 9620fad3f..5cb188ed0 100644 --- a/ts/fixtures/lang/methods/caller.ts +++ b/ts/fixtures/lang/methods/caller.ts @@ -32,7 +32,7 @@ function methods(): Uint8Array[] { const be = (v: bigint) => Array.from({ length: bits / 8 }, (_, i) => Number((v >> BigInt(bits - 8 - 8 * i)) & 0xffn)); const u32 = (n: number) => [n >>> 24, (n >>> 16) & 0xff, (n >>> 8) & 0xff, n & 0xff]; let i = 0; - for (let kind = 0; kind < 49; kind++) { + for (let kind = 0; kind < 51; kind++) { for (const a of edges) { if (exponents.has(kind)) { for (const n of shifts) cases.push(Uint8Array.of(...o, kind, ...be(a), ...be(others[i++ % others.length]), ...u32(n))); diff --git a/ts/fixtures/lang/methods/expected/methods.ts b/ts/fixtures/lang/methods/expected/methods.ts index 1f6bdfcc7..a8e5dd701 100644 --- a/ts/fixtures/lang/methods/expected/methods.ts +++ b/ts/fixtures/lang/methods/expected/methods.ts @@ -50,50 +50,50 @@ export function u8s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { _27(out6, v10); } }; - const _30: rs.u8 = rs.u8Rem(kind, 49); + const _30: rs.u8 = rs.u8Rem(kind, 51); if (_30 === 0) { - const part90 = rs.u8CheckedAdd(a, b); - putOpt(out, part90); - const part91 = rs.u8CheckedSub(a, b); - putOpt(out, part91); - const part92 = rs.u8CheckedMul(a, b); + const part92 = rs.u8CheckedAdd(a, b); putOpt(out, part92); - const part93 = rs.u8SaturatingAdd(a, b); - _22(out, part93); - const part94 = rs.u8SaturatingSub(a, b); - _22(out, part94); - const part95 = rs.u8SaturatingMul(a, b); + const part93 = rs.u8CheckedSub(a, b); + putOpt(out, part93); + const part94 = rs.u8CheckedMul(a, b); + putOpt(out, part94); + const part95 = rs.u8SaturatingAdd(a, b); _22(out, part95); - const part96 = rs.u8WrappingAdd(a, b); + const part96 = rs.u8SaturatingSub(a, b); _22(out, part96); - const part97 = rs.u8WrappingSub(a, b); + const part97 = rs.u8SaturatingMul(a, b); _22(out, part97); - const part98 = rs.u8WrappingMul(a, b); + const part98 = rs.u8WrappingAdd(a, b); _22(out, part98); - const part99 = rs.intOverflowingAdd(a, b, 8, false); - putPair(out, part99); - const part100 = rs.intOverflowingSub(a, b, 8, false); - putPair(out, part100); - const part101 = rs.intOverflowingMul(a, b, 8, false); + const part99 = rs.u8WrappingSub(a, b); + _22(out, part99); + const part100 = rs.u8WrappingMul(a, b); + _22(out, part100); + const part101 = rs.intOverflowingAdd(a, b, 8, false); putPair(out, part101); - const part102 = rs.intMidpoint(a, b, 8, false); - _22(out, part102); - const part103 = rs.intCheckedAdd(a, o, 8, false); - putOpt(out, part103); - const part104 = rs.intCheckedSub(a, o, 8, false); - putOpt(out, part104); - const part105 = rs.intSaturatingAdd(a, o, 8, false); - _22(out, part105); - const part106 = rs.intSaturatingSub(a, o, 8, false); - _22(out, part106); - const part107 = rs.intWrappingAdd(a, o, 8, false); + const part102 = rs.intOverflowingSub(a, b, 8, false); + putPair(out, part102); + const part103 = rs.intOverflowingMul(a, b, 8, false); + putPair(out, part103); + const part104 = rs.intMidpoint(a, b, 8, false); + _22(out, part104); + const part105 = rs.intCheckedAdd(a, o, 8, false); + putOpt(out, part105); + const part106 = rs.intCheckedSub(a, o, 8, false); + putOpt(out, part106); + const part107 = rs.intSaturatingAdd(a, o, 8, false); _22(out, part107); - const part108 = rs.intWrappingSub(a, o, 8, false); + const part108 = rs.intSaturatingSub(a, o, 8, false); _22(out, part108); - const part109 = rs.intOverflowingAdd(a, o, 8, false); - putPair(out, part109); - const part110 = rs.intOverflowingSub(a, o, 8, false); - putPair(out, part110); + const part109 = rs.intWrappingAdd(a, o, 8, false); + _22(out, part109); + const part110 = rs.intWrappingSub(a, o, 8, false); + _22(out, part110); + const part111 = rs.intOverflowingAdd(a, o, 8, false); + putPair(out, part111); + const part112 = rs.intOverflowingSub(a, o, 8, false); + putPair(out, part112); const b2: rs.u8 = o & 0xff; const _118: rs.i8 | undefined = rs.intCheckedSignedDiff(a, b2, 8, false) as rs.i8 | undefined; if (_118 === undefined) { @@ -108,10 +108,10 @@ export function u8s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { break; } const carry: boolean = _127; - const part111 = rs.intCarryingAdd(a, b2, carry, 8, false); - putPair(out, part111); - const part112 = rs.intBorrowingSub(a, b2, carry, 8, false); - putPair(out, part112); + const part113 = rs.intCarryingAdd(a, b2, carry, 8, false); + putPair(out, part113); + const part114 = rs.intBorrowingSub(a, b2, carry, 8, false); + putPair(out, part114); } const _141: [rs.u8, rs.u8] = rs.intCarryingMul(a, b2, a, 8, false); const lo: rs.u8 = _141[0]; @@ -123,34 +123,34 @@ export function u8s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { const hi2: rs.u8 = _150[1]; _22(out, lo2); _22(out, hi2); - const part113 = rs.intCheckedNextMultipleOf(a, b2, 8, false); - putOpt(out, part113); + const part115 = rs.intCheckedNextMultipleOf(a, b2, 8, false); + putOpt(out, part115); } else if (_30 === 1) { - const part85 = rs.intCheckedDiv(a, b, 8, false); - putOpt(out, part85); - const part86 = rs.intCheckedRem(a, b, 8, false); - putOpt(out, part86); - const part87 = rs.intCheckedDivEuclid(a, b, 8, false); + const part87 = rs.intCheckedDiv(a, b, 8, false); putOpt(out, part87); - const part88 = rs.intCheckedRemEuclid(a, b, 8, false); + const part88 = rs.intCheckedRem(a, b, 8, false); putOpt(out, part88); + const part89 = rs.intCheckedDivEuclid(a, b, 8, false); + putOpt(out, part89); + const part90 = rs.intCheckedRemEuclid(a, b, 8, false); + putOpt(out, part90); if (b !== 0) { - const part89 = rs.u8DivCeil(a, b); - _22(out, part89); + const part91 = rs.u8DivCeil(a, b); + _22(out, part91); rs.byteVecPush(out, rs.u8IsMultipleOf(a, b) ? 1 : 0); } } else if (_30 === 2) { - const part80 = rs.intCheckedNeg(a, 8, false); - putOpt(out, part80); - const part81 = rs.intWrappingNeg(a, 8, false); - _22(out, part81); - const part82 = rs.intOverflowingNeg(a, 8, false); - putPair(out, part82); + const part82 = rs.intCheckedNeg(a, 8, false); + putOpt(out, part82); + const part83 = rs.intWrappingNeg(a, 8, false); + _22(out, part83); + const part84 = rs.intOverflowingNeg(a, 8, false); + putPair(out, part84); rs.byteVecPush(out, rs.intIsPowerOfTwo(a, 8, false) ? 1 : 0); - const part83 = rs.intCheckedNextPowerOfTwo(a, 8, false); - putOpt(out, part83); - const part84 = rs.intBitWidth(a, 8, false); - _27(out, part84); + const part85 = rs.intCheckedNextPowerOfTwo(a, 8, false); + putOpt(out, part85); + const part86 = rs.intBitWidth(a, 8, false); + _27(out, part86); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.i8ToBeBytes((a << 24) >> 24))); } else if (_30 === 3) { const iter2: rs.Iter = rs.iterSlice([n, k]); @@ -160,14 +160,14 @@ export function u8s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { break; } const e: rs.u32 = _216; - const part76 = rs.intCheckedPow(a, e, 8, false); - putOpt(out, part76); - const part77 = rs.intWrappingPow(a, e, 8, false); - _22(out, part77); - const part78 = rs.intSaturatingPow(a, e, 8, false); - _22(out, part78); - const part79 = rs.intOverflowingPow(a, e, 8, false); - putPair(out, part79); + const part78 = rs.intCheckedPow(a, e, 8, false); + putOpt(out, part78); + const part79 = rs.intWrappingPow(a, e, 8, false); + _22(out, part79); + const part80 = rs.intSaturatingPow(a, e, 8, false); + _22(out, part80); + const part81 = rs.intOverflowingPow(a, e, 8, false); + putPair(out, part81); } } else if (_30 === 4) { const iter3: rs.Iter = rs.iterSlice([n, k]); @@ -177,26 +177,26 @@ export function u8s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { break; } const s: rs.u32 = _239; - const part66 = rs.intCheckedShl(a, s, 8, false); - putOpt(out, part66); - const part67 = rs.intCheckedShr(a, s, 8, false); - putOpt(out, part67); - const part68 = rs.intWrappingShl(a, s, 8, false); - _22(out, part68); - const part69 = rs.intWrappingShr(a, s, 8, false); - _22(out, part69); - const part70 = rs.intOverflowingShl(a, s, 8, false); - putPair(out, part70); - const part71 = rs.intOverflowingShr(a, s, 8, false); - putPair(out, part71); - const part72 = rs.intUnboundedShl(a, s, 8, false); - _22(out, part72); - const part73 = rs.intUnboundedShr(a, s, 8, false); - _22(out, part73); - const part74 = rs.intRotateLeft(a, s, 8, false); + const part68 = rs.intCheckedShl(a, s, 8, false); + putOpt(out, part68); + const part69 = rs.intCheckedShr(a, s, 8, false); + putOpt(out, part69); + const part70 = rs.intWrappingShl(a, s, 8, false); + _22(out, part70); + const part71 = rs.intWrappingShr(a, s, 8, false); + _22(out, part71); + const part72 = rs.intOverflowingShl(a, s, 8, false); + putPair(out, part72); + const part73 = rs.intOverflowingShr(a, s, 8, false); + putPair(out, part73); + const part74 = rs.intUnboundedShl(a, s, 8, false); _22(out, part74); - const part75 = rs.intRotateRight(a, s, 8, false); + const part75 = rs.intUnboundedShr(a, s, 8, false); _22(out, part75); + const part76 = rs.intRotateLeft(a, s, 8, false); + _22(out, part76); + const part77 = rs.intRotateRight(a, s, 8, false); + _22(out, part77); } } else if (_30 === 5) { const iter4: rs.Iter = rs.iterSlice([rs.intCountOnes(a, 8, false), rs.intCountZeros(a, 8, false), rs.u8LeadingZeros(a), rs.u8TrailingZeros(a), rs.u8LeadingOnes(a), rs.intTrailingOnes(a, 8, false)]); @@ -215,48 +215,48 @@ export function u8s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } _22(out, _308); } - const part62 = rs.intHighestOne(a, 8, false); - putOptU32(out, part62); - const part63 = rs.intLowestOne(a, 8, false); - putOptU32(out, part63); - const part64 = rs.intIsolateHighestOne(a, 8, false); - _22(out, part64); - const part65 = rs.intIsolateLowestOne(a, 8, false); - _22(out, part65); + const part64 = rs.intHighestOne(a, 8, false); + putOptU32(out, part64); + const part65 = rs.intLowestOne(a, 8, false); + putOptU32(out, part65); + const part66 = rs.intIsolateHighestOne(a, 8, false); + _22(out, part66); + const part67 = rs.intIsolateLowestOne(a, 8, false); + _22(out, part67); _22(out, 255); _22(out, 0); } else if (_30 === 6) { - const part59 = rs.intCheckedIlog(a, b, 8, false); - putOptU32(out, part59); - const part60 = rs.intCheckedIlog2(a, 8, false); - putOptU32(out, part60); - const part61 = rs.intCheckedIlog10(a, 8, false); + const part61 = rs.intCheckedIlog(a, b, 8, false); putOptU32(out, part61); + const part62 = rs.intCheckedIlog2(a, 8, false); + putOptU32(out, part62); + const part63 = rs.intCheckedIlog10(a, 8, false); + putOptU32(out, part63); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.u8ToBeBytes(rs.intAbsDiff(a, b, 8, false) as rs.u8))); } else if (_30 === 7) { - const part58 = rs.intPow(a, k, 8, false); - _22(out, part58); + const part60 = rs.intPow(a, k, 8, false); + _22(out, part60); } else if (_30 === 8) { - const part57 = rs.intPow(a, n, 8, false); - _22(out, part57); + const part59 = rs.intPow(a, n, 8, false); + _22(out, part59); } else if (_30 === 9) { - const part56 = rs.intDivEuclid(a, b, 8, false); - _22(out, part56); + const part58 = rs.intDivEuclid(a, b, 8, false); + _22(out, part58); } else if (_30 === 10) { - const part55 = rs.intRemEuclid(a, b, 8, false); - _22(out, part55); + const part57 = rs.intRemEuclid(a, b, 8, false); + _22(out, part57); } else if (_30 === 11) { - const part54 = rs.intIsqrt(a, 8, false); - _22(out, part54); + const part56 = rs.intIsqrt(a, 8, false); + _22(out, part56); } else if (_30 === 12) { - const part53 = rs.intIlog(a, b, 8, false); - _27(out, part53); + const part55 = rs.intIlog(a, b, 8, false); + _27(out, part55); } else if (_30 === 13) { - const part52 = rs.intIlog2(a, 8, false); - _27(out, part52); + const part54 = rs.intIlog2(a, 8, false); + _27(out, part54); } else if (_30 === 14) { - const part51 = rs.intIlog10(a, 8, false); - _27(out, part51); + const part53 = rs.intIlog10(a, 8, false); + _27(out, part53); } else if (_30 === 15) { _22(out, rs.u8Add(a, b)); } else if (_30 === 16) { @@ -268,65 +268,65 @@ export function u8s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } else if (_30 === 19) { _22(out, rs.u8Rem(a, b)); } else if (_30 === 20) { - const part45 = rs.intStrictNeg(a, 8, false); - _22(out, part45); + const part47 = rs.intStrictNeg(a, 8, false); + _22(out, part47); } else if (_30 === 21) { _22(out, rs.u8Shl(a, k)); } else if (_30 === 22) { _22(out, rs.u8Shr(a, k)); } else if (_30 === 23) { - const part42 = rs.intPow(a, k, 8, false); - _22(out, part42); + const part44 = rs.intPow(a, k, 8, false); + _22(out, part44); } else if (_30 === 24) { - const part41 = rs.intDivEuclid(a, b, 8, false); - _22(out, part41); + const part43 = rs.intDivEuclid(a, b, 8, false); + _22(out, part43); } else if (_30 === 25) { - const part40 = rs.intRemEuclid(a, b, 8, false); - _22(out, part40); + const part42 = rs.intRemEuclid(a, b, 8, false); + _22(out, part42); } else if (_30 === 26) { - const part39 = rs.intStrictAdd(a, o, 8, false); - _22(out, part39); + const part41 = rs.intStrictAdd(a, o, 8, false); + _22(out, part41); } else if (_30 === 27) { - const part38 = rs.intStrictSub(a, o, 8, false); - _22(out, part38); + const part40 = rs.intStrictSub(a, o, 8, false); + _22(out, part40); } else if (_30 === 28) { _22(out, rs.u8Div(a, b)); } else if (_30 === 29) { _22(out, rs.u8Rem(a, b)); } else if (_30 === 30) { - const part35 = rs.intWrappingDivEuclid(a, b, 8, false); - _22(out, part35); + const part37 = rs.intWrappingDivEuclid(a, b, 8, false); + _22(out, part37); } else if (_30 === 31) { - const part34 = rs.intWrappingRemEuclid(a, b, 8, false); - _22(out, part34); + const part36 = rs.intWrappingRemEuclid(a, b, 8, false); + _22(out, part36); } else if (_30 === 32) { - const part33 = rs.intOverflowingDiv(a, b, 8, false); - putPair(out, part33); + const part35 = rs.intOverflowingDiv(a, b, 8, false); + putPair(out, part35); } else if (_30 === 33) { - const part32 = rs.intOverflowingRem(a, b, 8, false); - putPair(out, part32); + const part34 = rs.intOverflowingRem(a, b, 8, false); + putPair(out, part34); } else if (_30 === 34) { - const part31 = rs.intOverflowingDivEuclid(a, b, 8, false); - putPair(out, part31); + const part33 = rs.intOverflowingDivEuclid(a, b, 8, false); + putPair(out, part33); } else if (_30 === 35) { - const part30 = rs.intOverflowingRemEuclid(a, b, 8, false); - putPair(out, part30); + const part32 = rs.intOverflowingRemEuclid(a, b, 8, false); + putPair(out, part32); } else if (_30 === 36) { _22(out, rs.u8Div(a, b)); } else if (_30 === 37) { - const part28 = rs.intNextPowerOfTwo(a, 8, false); - _22(out, part28); + const part30 = rs.intNextPowerOfTwo(a, 8, false); + _22(out, part30); } else if (_30 === 38) { const _449: rs.u32 = rs.u32Rem(k, 3); if (_449 === 0) { - const part27 = rs.intNextMultipleOf(a, b, 8, false); - _22(out, part27); + const part29 = rs.intNextMultipleOf(a, b, 8, false); + _22(out, part29); } else if (_449 === 1) { - const part26 = rs.intFunnelShl(a, b, k, 8, false); - _22(out, part26); + const part28 = rs.intFunnelShl(a, b, k, 8, false); + _22(out, part28); } else { - const part25 = rs.intFunnelShr(a, b, k, 8, false); - _22(out, part25); + const part27 = rs.intFunnelShr(a, b, k, 8, false); + _22(out, part27); } } else if (_30 === 39) { const s2: rs.u8 = a; @@ -364,8 +364,8 @@ export function u8s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { _22(out, _527); } rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(Uint8Array.of(rs.intIsPowerOfTwo(s2, 8, false) ? 1 : 0, rs.intIsPowerOfTwo(w, 8, false) ? 1 : 0))); - const part24 = rs.intWrappingNextPowerOfTwo(w, 8, false); - _22(out, part24); + const part26 = rs.intWrappingNextPowerOfTwo(w, 8, false); + _22(out, part26); } else if (_30 === 40) { const _548: [rs.u8 | undefined, rs.u8 | undefined] = [rs.nonZero(a), rs.nonZero(b)]; if (_548[0] !== undefined) { @@ -380,37 +380,37 @@ export function u8s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } _27(out, _564); } - const part11 = option_map$1far4bd(rs.u8CheckedMul(x, y), (a0: rs.u8): rs.u8 => { + const part13 = option_map$1far4bd(rs.u8CheckedMul(x, y), (a0: rs.u8): rs.u8 => { return a0; }); - putOpt(out, part11); - const part12 = rs.u8SaturatingMul(x, y); - _22(out, part12); - const part13 = option_map$1far4bd(rs.intCheckedPow(x, k, 8, false), (a02: rs.u8): rs.u8 => { + putOpt(out, part13); + const part14 = rs.u8SaturatingMul(x, y); + _22(out, part14); + const part15 = option_map$1far4bd(rs.intCheckedPow(x, k, 8, false), (a02: rs.u8): rs.u8 => { return a02; }); - putOpt(out, part13); - const part14 = option_map$1far4bd(rs.intCheckedPow(x, n, 8, false), (a03: rs.u8): rs.u8 => { + putOpt(out, part15); + const part16 = option_map$1far4bd(rs.intCheckedPow(x, n, 8, false), (a03: rs.u8): rs.u8 => { return a03; }); - putOpt(out, part14); - const part15 = rs.intSaturatingPow(x, k, 8, false); - _22(out, part15); - const part16 = rs.intIsolateHighestOne(x, 8, false); - _22(out, part16); - const part17 = rs.intIsolateLowestOne(x, 8, false); + putOpt(out, part16); + const part17 = rs.intSaturatingPow(x, k, 8, false); _22(out, part17); + const part18 = rs.intIsolateHighestOne(x, 8, false); + _22(out, part18); + const part19 = rs.intIsolateLowestOne(x, 8, false); + _22(out, part19); rs.byteVecPush(out, rs.intIsPowerOfTwo(x, 8, false) ? 1 : 0); - const part18 = option_map$1far4bd(rs.u8CheckedAdd(x, b), (a04: rs.u8): rs.u8 => { + const part20 = option_map$1far4bd(rs.u8CheckedAdd(x, b), (a04: rs.u8): rs.u8 => { return a04; }); - putOpt(out, part18); - const part19 = rs.u8SaturatingAdd(x, b); - _22(out, part19); - const part20 = option_map$1far4bd(rs.intCheckedNextPowerOfTwo(x, 8, false), (a05: rs.u8): rs.u8 => { + putOpt(out, part20); + const part21 = rs.u8SaturatingAdd(x, b); + _22(out, part21); + const part22 = option_map$1far4bd(rs.intCheckedNextPowerOfTwo(x, 8, false), (a05: rs.u8): rs.u8 => { return a05; }); - putOpt(out, part20); + putOpt(out, part22); const iter11: rs.Iter = rs.iterSlice([rs.intIlog2(x, 8, false), rs.intIlog10(x, 8, false), rs.intBitWidth(x, 8, false)]); while (true) { const _631: rs.u32 | rs.Done = iter11.next(); @@ -419,43 +419,57 @@ export function u8s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } _27(out, _631); } - const part21 = rs.intMidpoint(x, y, 8, false); - _22(out, part21); - const part22 = rs.intIsqrt(x, 8, false); - _22(out, part22); - const part23 = rs.u8DivCeil(x, y); + const part23 = rs.intMidpoint(x, y, 8, false); _22(out, part23); + const part24 = rs.intIsqrt(x, 8, false); + _22(out, part24); + const part25 = rs.u8DivCeil(x, y); + _22(out, part25); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.i8ToBeBytes((x << 24) >> 24))); } } } else if (_30 === 41) { rs.byteVecPush(out, 0); } else if (_30 === 42) { - const part10 = rs.precondition(rs.u8CheckedAdd(a, b), "u8::unchecked_add cannot overflow"); - _22(out, part10); + const part12 = rs.precondition(rs.u8CheckedAdd(a, b), "u8::unchecked_add cannot overflow"); + _22(out, part12); } else if (_30 === 43) { - const part9 = rs.precondition(rs.u8CheckedSub(a, b), "u8::unchecked_sub cannot overflow"); - _22(out, part9); + const part11 = rs.precondition(rs.u8CheckedSub(a, b), "u8::unchecked_sub cannot overflow"); + _22(out, part11); } else if (_30 === 44) { - const part8 = rs.precondition(rs.u8CheckedMul(a, b), "u8::unchecked_mul cannot overflow"); - _22(out, part8); + const part10 = rs.precondition(rs.u8CheckedMul(a, b), "u8::unchecked_mul cannot overflow"); + _22(out, part10); } else if (_30 === 45) { - const part7 = rs.precondition(rs.intCheckedShl(a, k, 8, false), "u8::unchecked_shl cannot overflow"); - _22(out, part7); + const part9 = rs.precondition(rs.intCheckedShl(a, k, 8, false), "u8::unchecked_shl cannot overflow"); + _22(out, part9); } else if (_30 === 46) { - const part6 = rs.precondition(rs.intCheckedShr(a, k, 8, false), "u8::unchecked_shr cannot overflow"); - _22(out, part6); + const part8 = rs.precondition(rs.intCheckedShr(a, k, 8, false), "u8::unchecked_shr cannot overflow"); + _22(out, part8); } else if (_30 === 47) { if (rs.u32Rem(k, 2) === 0) { - const part5 = rs.precondition(rs.intCheckedFunnelShl(a, b, k, 8, false), "u8::unchecked_funnel_shl cannot overflow"); - _22(out, part5); + const part7 = rs.precondition(rs.intCheckedFunnelShl(a, b, k, 8, false), "u8::unchecked_funnel_shl cannot overflow"); + _22(out, part7); } else { - const part4 = rs.precondition(rs.intCheckedFunnelShr(a, b, k, 8, false), "u8::unchecked_funnel_shr cannot overflow"); - _22(out, part4); + const part6 = rs.precondition(rs.intCheckedFunnelShr(a, b, k, 8, false), "u8::unchecked_funnel_shr cannot overflow"); + _22(out, part6); + } + } else if (_30 === 48) { + const part5 = rs.precondition(rs.nonZero(a), "NonZero::new_unchecked requires the argument to be non-zero"); + _22(out, part5); + } else if (_30 === 49) { + const _686: [rs.u8 | undefined, rs.u8 | undefined] = [rs.nonZero(a), rs.nonZero(b)]; + if (_686[0] !== undefined) { + if (_686[1] !== undefined) { + const part4 = rs.precondition(rs.u8CheckedMul(_686[0], _686[1]), "u8::unchecked_mul cannot overflow"); + _22(out, part4); + } } } else { - const part3 = rs.precondition(rs.nonZero(a), "NonZero::new_unchecked requires the argument to be non-zero"); - _22(out, part3); + const _698: rs.u8 | undefined = rs.nonZero(a); + if (_698 !== undefined) { + const part3 = rs.precondition(rs.u8CheckedAdd(_698, b), "u8::unchecked_add cannot overflow"); + _22(out, part3); + } } } @@ -506,50 +520,50 @@ export function u16s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { _27(out6, v10); } }; - const _30: rs.u8 = rs.u8Rem(kind, 49); + const _30: rs.u8 = rs.u8Rem(kind, 51); if (_30 === 0) { - const part90 = rs.u16CheckedAdd(a, b); - putOpt(out, part90); - const part91 = rs.u16CheckedSub(a, b); - putOpt(out, part91); - const part92 = rs.u16CheckedMul(a, b); + const part92 = rs.u16CheckedAdd(a, b); putOpt(out, part92); - const part93 = rs.u16SaturatingAdd(a, b); - _22(out, part93); - const part94 = rs.u16SaturatingSub(a, b); - _22(out, part94); - const part95 = rs.u16SaturatingMul(a, b); + const part93 = rs.u16CheckedSub(a, b); + putOpt(out, part93); + const part94 = rs.u16CheckedMul(a, b); + putOpt(out, part94); + const part95 = rs.u16SaturatingAdd(a, b); _22(out, part95); - const part96 = rs.u16WrappingAdd(a, b); + const part96 = rs.u16SaturatingSub(a, b); _22(out, part96); - const part97 = rs.u16WrappingSub(a, b); + const part97 = rs.u16SaturatingMul(a, b); _22(out, part97); - const part98 = rs.u16WrappingMul(a, b); + const part98 = rs.u16WrappingAdd(a, b); _22(out, part98); - const part99 = rs.intOverflowingAdd(a, b, 16, false); - putPair(out, part99); - const part100 = rs.intOverflowingSub(a, b, 16, false); - putPair(out, part100); - const part101 = rs.intOverflowingMul(a, b, 16, false); + const part99 = rs.u16WrappingSub(a, b); + _22(out, part99); + const part100 = rs.u16WrappingMul(a, b); + _22(out, part100); + const part101 = rs.intOverflowingAdd(a, b, 16, false); putPair(out, part101); - const part102 = rs.intMidpoint(a, b, 16, false); - _22(out, part102); - const part103 = rs.intCheckedAdd(a, o, 16, false); - putOpt(out, part103); - const part104 = rs.intCheckedSub(a, o, 16, false); - putOpt(out, part104); - const part105 = rs.intSaturatingAdd(a, o, 16, false); - _22(out, part105); - const part106 = rs.intSaturatingSub(a, o, 16, false); - _22(out, part106); - const part107 = rs.intWrappingAdd(a, o, 16, false); + const part102 = rs.intOverflowingSub(a, b, 16, false); + putPair(out, part102); + const part103 = rs.intOverflowingMul(a, b, 16, false); + putPair(out, part103); + const part104 = rs.intMidpoint(a, b, 16, false); + _22(out, part104); + const part105 = rs.intCheckedAdd(a, o, 16, false); + putOpt(out, part105); + const part106 = rs.intCheckedSub(a, o, 16, false); + putOpt(out, part106); + const part107 = rs.intSaturatingAdd(a, o, 16, false); _22(out, part107); - const part108 = rs.intWrappingSub(a, o, 16, false); + const part108 = rs.intSaturatingSub(a, o, 16, false); _22(out, part108); - const part109 = rs.intOverflowingAdd(a, o, 16, false); - putPair(out, part109); - const part110 = rs.intOverflowingSub(a, o, 16, false); - putPair(out, part110); + const part109 = rs.intWrappingAdd(a, o, 16, false); + _22(out, part109); + const part110 = rs.intWrappingSub(a, o, 16, false); + _22(out, part110); + const part111 = rs.intOverflowingAdd(a, o, 16, false); + putPair(out, part111); + const part112 = rs.intOverflowingSub(a, o, 16, false); + putPair(out, part112); const b2: rs.u16 = o & 0xffff; const _118: rs.i16 | undefined = rs.intCheckedSignedDiff(a, b2, 16, false) as rs.i16 | undefined; if (_118 === undefined) { @@ -564,10 +578,10 @@ export function u16s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { break; } const carry: boolean = _127; - const part111 = rs.intCarryingAdd(a, b2, carry, 16, false); - putPair(out, part111); - const part112 = rs.intBorrowingSub(a, b2, carry, 16, false); - putPair(out, part112); + const part113 = rs.intCarryingAdd(a, b2, carry, 16, false); + putPair(out, part113); + const part114 = rs.intBorrowingSub(a, b2, carry, 16, false); + putPair(out, part114); } const _141: [rs.u16, rs.u16] = rs.intCarryingMul(a, b2, a, 16, false); const lo: rs.u16 = _141[0]; @@ -579,34 +593,34 @@ export function u16s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { const hi2: rs.u16 = _150[1]; _22(out, lo2); _22(out, hi2); - const part113 = rs.intCheckedNextMultipleOf(a, b2, 16, false); - putOpt(out, part113); + const part115 = rs.intCheckedNextMultipleOf(a, b2, 16, false); + putOpt(out, part115); } else if (_30 === 1) { - const part85 = rs.intCheckedDiv(a, b, 16, false); - putOpt(out, part85); - const part86 = rs.intCheckedRem(a, b, 16, false); - putOpt(out, part86); - const part87 = rs.intCheckedDivEuclid(a, b, 16, false); + const part87 = rs.intCheckedDiv(a, b, 16, false); putOpt(out, part87); - const part88 = rs.intCheckedRemEuclid(a, b, 16, false); + const part88 = rs.intCheckedRem(a, b, 16, false); putOpt(out, part88); + const part89 = rs.intCheckedDivEuclid(a, b, 16, false); + putOpt(out, part89); + const part90 = rs.intCheckedRemEuclid(a, b, 16, false); + putOpt(out, part90); if (b !== 0) { - const part89 = rs.u16DivCeil(a, b); - _22(out, part89); + const part91 = rs.u16DivCeil(a, b); + _22(out, part91); rs.byteVecPush(out, rs.u16IsMultipleOf(a, b) ? 1 : 0); } } else if (_30 === 2) { - const part80 = rs.intCheckedNeg(a, 16, false); - putOpt(out, part80); - const part81 = rs.intWrappingNeg(a, 16, false); - _22(out, part81); - const part82 = rs.intOverflowingNeg(a, 16, false); - putPair(out, part82); + const part82 = rs.intCheckedNeg(a, 16, false); + putOpt(out, part82); + const part83 = rs.intWrappingNeg(a, 16, false); + _22(out, part83); + const part84 = rs.intOverflowingNeg(a, 16, false); + putPair(out, part84); rs.byteVecPush(out, rs.intIsPowerOfTwo(a, 16, false) ? 1 : 0); - const part83 = rs.intCheckedNextPowerOfTwo(a, 16, false); - putOpt(out, part83); - const part84 = rs.intBitWidth(a, 16, false); - _27(out, part84); + const part85 = rs.intCheckedNextPowerOfTwo(a, 16, false); + putOpt(out, part85); + const part86 = rs.intBitWidth(a, 16, false); + _27(out, part86); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.i16ToBeBytes((a << 16) >> 16))); } else if (_30 === 3) { const iter2: rs.Iter = rs.iterSlice([n, k]); @@ -616,14 +630,14 @@ export function u16s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { break; } const e: rs.u32 = _216; - const part76 = rs.intCheckedPow(a, e, 16, false); - putOpt(out, part76); - const part77 = rs.intWrappingPow(a, e, 16, false); - _22(out, part77); - const part78 = rs.intSaturatingPow(a, e, 16, false); - _22(out, part78); - const part79 = rs.intOverflowingPow(a, e, 16, false); - putPair(out, part79); + const part78 = rs.intCheckedPow(a, e, 16, false); + putOpt(out, part78); + const part79 = rs.intWrappingPow(a, e, 16, false); + _22(out, part79); + const part80 = rs.intSaturatingPow(a, e, 16, false); + _22(out, part80); + const part81 = rs.intOverflowingPow(a, e, 16, false); + putPair(out, part81); } } else if (_30 === 4) { const iter3: rs.Iter = rs.iterSlice([n, k]); @@ -633,26 +647,26 @@ export function u16s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { break; } const s: rs.u32 = _239; - const part66 = rs.intCheckedShl(a, s, 16, false); - putOpt(out, part66); - const part67 = rs.intCheckedShr(a, s, 16, false); - putOpt(out, part67); - const part68 = rs.intWrappingShl(a, s, 16, false); - _22(out, part68); - const part69 = rs.intWrappingShr(a, s, 16, false); - _22(out, part69); - const part70 = rs.intOverflowingShl(a, s, 16, false); - putPair(out, part70); - const part71 = rs.intOverflowingShr(a, s, 16, false); - putPair(out, part71); - const part72 = rs.intUnboundedShl(a, s, 16, false); - _22(out, part72); - const part73 = rs.intUnboundedShr(a, s, 16, false); - _22(out, part73); - const part74 = rs.intRotateLeft(a, s, 16, false); + const part68 = rs.intCheckedShl(a, s, 16, false); + putOpt(out, part68); + const part69 = rs.intCheckedShr(a, s, 16, false); + putOpt(out, part69); + const part70 = rs.intWrappingShl(a, s, 16, false); + _22(out, part70); + const part71 = rs.intWrappingShr(a, s, 16, false); + _22(out, part71); + const part72 = rs.intOverflowingShl(a, s, 16, false); + putPair(out, part72); + const part73 = rs.intOverflowingShr(a, s, 16, false); + putPair(out, part73); + const part74 = rs.intUnboundedShl(a, s, 16, false); _22(out, part74); - const part75 = rs.intRotateRight(a, s, 16, false); + const part75 = rs.intUnboundedShr(a, s, 16, false); _22(out, part75); + const part76 = rs.intRotateLeft(a, s, 16, false); + _22(out, part76); + const part77 = rs.intRotateRight(a, s, 16, false); + _22(out, part77); } } else if (_30 === 5) { const iter4: rs.Iter = rs.iterSlice([rs.intCountOnes(a, 16, false), rs.intCountZeros(a, 16, false), rs.u16LeadingZeros(a), rs.u16TrailingZeros(a), rs.u16LeadingOnes(a), rs.intTrailingOnes(a, 16, false)]); @@ -671,48 +685,48 @@ export function u16s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } _22(out, _308); } - const part62 = rs.intHighestOne(a, 16, false); - putOptU32(out, part62); - const part63 = rs.intLowestOne(a, 16, false); - putOptU32(out, part63); - const part64 = rs.intIsolateHighestOne(a, 16, false); - _22(out, part64); - const part65 = rs.intIsolateLowestOne(a, 16, false); - _22(out, part65); + const part64 = rs.intHighestOne(a, 16, false); + putOptU32(out, part64); + const part65 = rs.intLowestOne(a, 16, false); + putOptU32(out, part65); + const part66 = rs.intIsolateHighestOne(a, 16, false); + _22(out, part66); + const part67 = rs.intIsolateLowestOne(a, 16, false); + _22(out, part67); _22(out, 65535); _22(out, 0); } else if (_30 === 6) { - const part59 = rs.intCheckedIlog(a, b, 16, false); - putOptU32(out, part59); - const part60 = rs.intCheckedIlog2(a, 16, false); - putOptU32(out, part60); - const part61 = rs.intCheckedIlog10(a, 16, false); + const part61 = rs.intCheckedIlog(a, b, 16, false); putOptU32(out, part61); + const part62 = rs.intCheckedIlog2(a, 16, false); + putOptU32(out, part62); + const part63 = rs.intCheckedIlog10(a, 16, false); + putOptU32(out, part63); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.u16ToBeBytes(rs.intAbsDiff(a, b, 16, false) as rs.u16))); } else if (_30 === 7) { - const part58 = rs.intPow(a, k, 16, false); - _22(out, part58); + const part60 = rs.intPow(a, k, 16, false); + _22(out, part60); } else if (_30 === 8) { - const part57 = rs.intPow(a, n, 16, false); - _22(out, part57); + const part59 = rs.intPow(a, n, 16, false); + _22(out, part59); } else if (_30 === 9) { - const part56 = rs.intDivEuclid(a, b, 16, false); - _22(out, part56); + const part58 = rs.intDivEuclid(a, b, 16, false); + _22(out, part58); } else if (_30 === 10) { - const part55 = rs.intRemEuclid(a, b, 16, false); - _22(out, part55); + const part57 = rs.intRemEuclid(a, b, 16, false); + _22(out, part57); } else if (_30 === 11) { - const part54 = rs.intIsqrt(a, 16, false); - _22(out, part54); + const part56 = rs.intIsqrt(a, 16, false); + _22(out, part56); } else if (_30 === 12) { - const part53 = rs.intIlog(a, b, 16, false); - _27(out, part53); + const part55 = rs.intIlog(a, b, 16, false); + _27(out, part55); } else if (_30 === 13) { - const part52 = rs.intIlog2(a, 16, false); - _27(out, part52); + const part54 = rs.intIlog2(a, 16, false); + _27(out, part54); } else if (_30 === 14) { - const part51 = rs.intIlog10(a, 16, false); - _27(out, part51); + const part53 = rs.intIlog10(a, 16, false); + _27(out, part53); } else if (_30 === 15) { _22(out, rs.u16Add(a, b)); } else if (_30 === 16) { @@ -724,65 +738,65 @@ export function u16s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } else if (_30 === 19) { _22(out, rs.u16Rem(a, b)); } else if (_30 === 20) { - const part45 = rs.intStrictNeg(a, 16, false); - _22(out, part45); + const part47 = rs.intStrictNeg(a, 16, false); + _22(out, part47); } else if (_30 === 21) { _22(out, rs.u16Shl(a, k)); } else if (_30 === 22) { _22(out, rs.u16Shr(a, k)); } else if (_30 === 23) { - const part42 = rs.intPow(a, k, 16, false); - _22(out, part42); + const part44 = rs.intPow(a, k, 16, false); + _22(out, part44); } else if (_30 === 24) { - const part41 = rs.intDivEuclid(a, b, 16, false); - _22(out, part41); + const part43 = rs.intDivEuclid(a, b, 16, false); + _22(out, part43); } else if (_30 === 25) { - const part40 = rs.intRemEuclid(a, b, 16, false); - _22(out, part40); + const part42 = rs.intRemEuclid(a, b, 16, false); + _22(out, part42); } else if (_30 === 26) { - const part39 = rs.intStrictAdd(a, o, 16, false); - _22(out, part39); + const part41 = rs.intStrictAdd(a, o, 16, false); + _22(out, part41); } else if (_30 === 27) { - const part38 = rs.intStrictSub(a, o, 16, false); - _22(out, part38); + const part40 = rs.intStrictSub(a, o, 16, false); + _22(out, part40); } else if (_30 === 28) { _22(out, rs.u16Div(a, b)); } else if (_30 === 29) { _22(out, rs.u16Rem(a, b)); } else if (_30 === 30) { - const part35 = rs.intWrappingDivEuclid(a, b, 16, false); - _22(out, part35); + const part37 = rs.intWrappingDivEuclid(a, b, 16, false); + _22(out, part37); } else if (_30 === 31) { - const part34 = rs.intWrappingRemEuclid(a, b, 16, false); - _22(out, part34); + const part36 = rs.intWrappingRemEuclid(a, b, 16, false); + _22(out, part36); } else if (_30 === 32) { - const part33 = rs.intOverflowingDiv(a, b, 16, false); - putPair(out, part33); + const part35 = rs.intOverflowingDiv(a, b, 16, false); + putPair(out, part35); } else if (_30 === 33) { - const part32 = rs.intOverflowingRem(a, b, 16, false); - putPair(out, part32); + const part34 = rs.intOverflowingRem(a, b, 16, false); + putPair(out, part34); } else if (_30 === 34) { - const part31 = rs.intOverflowingDivEuclid(a, b, 16, false); - putPair(out, part31); + const part33 = rs.intOverflowingDivEuclid(a, b, 16, false); + putPair(out, part33); } else if (_30 === 35) { - const part30 = rs.intOverflowingRemEuclid(a, b, 16, false); - putPair(out, part30); + const part32 = rs.intOverflowingRemEuclid(a, b, 16, false); + putPair(out, part32); } else if (_30 === 36) { _22(out, rs.u16Div(a, b)); } else if (_30 === 37) { - const part28 = rs.intNextPowerOfTwo(a, 16, false); - _22(out, part28); + const part30 = rs.intNextPowerOfTwo(a, 16, false); + _22(out, part30); } else if (_30 === 38) { const _449: rs.u32 = rs.u32Rem(k, 3); if (_449 === 0) { - const part27 = rs.intNextMultipleOf(a, b, 16, false); - _22(out, part27); + const part29 = rs.intNextMultipleOf(a, b, 16, false); + _22(out, part29); } else if (_449 === 1) { - const part26 = rs.intFunnelShl(a, b, k, 16, false); - _22(out, part26); + const part28 = rs.intFunnelShl(a, b, k, 16, false); + _22(out, part28); } else { - const part25 = rs.intFunnelShr(a, b, k, 16, false); - _22(out, part25); + const part27 = rs.intFunnelShr(a, b, k, 16, false); + _22(out, part27); } } else if (_30 === 39) { const s2: rs.u16 = a; @@ -820,8 +834,8 @@ export function u16s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { _22(out, _527); } rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(Uint8Array.of(rs.intIsPowerOfTwo(s2, 16, false) ? 1 : 0, rs.intIsPowerOfTwo(w, 16, false) ? 1 : 0))); - const part24 = rs.intWrappingNextPowerOfTwo(w, 16, false); - _22(out, part24); + const part26 = rs.intWrappingNextPowerOfTwo(w, 16, false); + _22(out, part26); } else if (_30 === 40) { const _548: [rs.u16 | undefined, rs.u16 | undefined] = [rs.nonZero(a), rs.nonZero(b)]; if (_548[0] !== undefined) { @@ -836,37 +850,37 @@ export function u16s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } _27(out, _564); } - const part11 = option_map$0frntt5(rs.u16CheckedMul(x, y), (a0: rs.u16): rs.u16 => { + const part13 = option_map$0frntt5(rs.u16CheckedMul(x, y), (a0: rs.u16): rs.u16 => { return a0; }); - putOpt(out, part11); - const part12 = rs.u16SaturatingMul(x, y); - _22(out, part12); - const part13 = option_map$0frntt5(rs.intCheckedPow(x, k, 16, false), (a02: rs.u16): rs.u16 => { + putOpt(out, part13); + const part14 = rs.u16SaturatingMul(x, y); + _22(out, part14); + const part15 = option_map$0frntt5(rs.intCheckedPow(x, k, 16, false), (a02: rs.u16): rs.u16 => { return a02; }); - putOpt(out, part13); - const part14 = option_map$0frntt5(rs.intCheckedPow(x, n, 16, false), (a03: rs.u16): rs.u16 => { + putOpt(out, part15); + const part16 = option_map$0frntt5(rs.intCheckedPow(x, n, 16, false), (a03: rs.u16): rs.u16 => { return a03; }); - putOpt(out, part14); - const part15 = rs.intSaturatingPow(x, k, 16, false); - _22(out, part15); - const part16 = rs.intIsolateHighestOne(x, 16, false); - _22(out, part16); - const part17 = rs.intIsolateLowestOne(x, 16, false); + putOpt(out, part16); + const part17 = rs.intSaturatingPow(x, k, 16, false); _22(out, part17); + const part18 = rs.intIsolateHighestOne(x, 16, false); + _22(out, part18); + const part19 = rs.intIsolateLowestOne(x, 16, false); + _22(out, part19); rs.byteVecPush(out, rs.intIsPowerOfTwo(x, 16, false) ? 1 : 0); - const part18 = option_map$0frntt5(rs.u16CheckedAdd(x, b), (a04: rs.u16): rs.u16 => { + const part20 = option_map$0frntt5(rs.u16CheckedAdd(x, b), (a04: rs.u16): rs.u16 => { return a04; }); - putOpt(out, part18); - const part19 = rs.u16SaturatingAdd(x, b); - _22(out, part19); - const part20 = option_map$0frntt5(rs.intCheckedNextPowerOfTwo(x, 16, false), (a05: rs.u16): rs.u16 => { + putOpt(out, part20); + const part21 = rs.u16SaturatingAdd(x, b); + _22(out, part21); + const part22 = option_map$0frntt5(rs.intCheckedNextPowerOfTwo(x, 16, false), (a05: rs.u16): rs.u16 => { return a05; }); - putOpt(out, part20); + putOpt(out, part22); const iter11: rs.Iter = rs.iterSlice([rs.intIlog2(x, 16, false), rs.intIlog10(x, 16, false), rs.intBitWidth(x, 16, false)]); while (true) { const _631: rs.u32 | rs.Done = iter11.next(); @@ -875,43 +889,57 @@ export function u16s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } _27(out, _631); } - const part21 = rs.intMidpoint(x, y, 16, false); - _22(out, part21); - const part22 = rs.intIsqrt(x, 16, false); - _22(out, part22); - const part23 = rs.u16DivCeil(x, y); + const part23 = rs.intMidpoint(x, y, 16, false); _22(out, part23); + const part24 = rs.intIsqrt(x, 16, false); + _22(out, part24); + const part25 = rs.u16DivCeil(x, y); + _22(out, part25); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.i16ToBeBytes((x << 16) >> 16))); } } } else if (_30 === 41) { rs.byteVecPush(out, 0); } else if (_30 === 42) { - const part10 = rs.precondition(rs.u16CheckedAdd(a, b), "u16::unchecked_add cannot overflow"); - _22(out, part10); + const part12 = rs.precondition(rs.u16CheckedAdd(a, b), "u16::unchecked_add cannot overflow"); + _22(out, part12); } else if (_30 === 43) { - const part9 = rs.precondition(rs.u16CheckedSub(a, b), "u16::unchecked_sub cannot overflow"); - _22(out, part9); + const part11 = rs.precondition(rs.u16CheckedSub(a, b), "u16::unchecked_sub cannot overflow"); + _22(out, part11); } else if (_30 === 44) { - const part8 = rs.precondition(rs.u16CheckedMul(a, b), "u16::unchecked_mul cannot overflow"); - _22(out, part8); + const part10 = rs.precondition(rs.u16CheckedMul(a, b), "u16::unchecked_mul cannot overflow"); + _22(out, part10); } else if (_30 === 45) { - const part7 = rs.precondition(rs.intCheckedShl(a, k, 16, false), "u16::unchecked_shl cannot overflow"); - _22(out, part7); + const part9 = rs.precondition(rs.intCheckedShl(a, k, 16, false), "u16::unchecked_shl cannot overflow"); + _22(out, part9); } else if (_30 === 46) { - const part6 = rs.precondition(rs.intCheckedShr(a, k, 16, false), "u16::unchecked_shr cannot overflow"); - _22(out, part6); + const part8 = rs.precondition(rs.intCheckedShr(a, k, 16, false), "u16::unchecked_shr cannot overflow"); + _22(out, part8); } else if (_30 === 47) { if (rs.u32Rem(k, 2) === 0) { - const part5 = rs.precondition(rs.intCheckedFunnelShl(a, b, k, 16, false), "u16::unchecked_funnel_shl cannot overflow"); - _22(out, part5); + const part7 = rs.precondition(rs.intCheckedFunnelShl(a, b, k, 16, false), "u16::unchecked_funnel_shl cannot overflow"); + _22(out, part7); } else { - const part4 = rs.precondition(rs.intCheckedFunnelShr(a, b, k, 16, false), "u16::unchecked_funnel_shr cannot overflow"); - _22(out, part4); + const part6 = rs.precondition(rs.intCheckedFunnelShr(a, b, k, 16, false), "u16::unchecked_funnel_shr cannot overflow"); + _22(out, part6); + } + } else if (_30 === 48) { + const part5 = rs.precondition(rs.nonZero(a), "NonZero::new_unchecked requires the argument to be non-zero"); + _22(out, part5); + } else if (_30 === 49) { + const _686: [rs.u16 | undefined, rs.u16 | undefined] = [rs.nonZero(a), rs.nonZero(b)]; + if (_686[0] !== undefined) { + if (_686[1] !== undefined) { + const part4 = rs.precondition(rs.u16CheckedMul(_686[0], _686[1]), "u16::unchecked_mul cannot overflow"); + _22(out, part4); + } } } else { - const part3 = rs.precondition(rs.nonZero(a), "NonZero::new_unchecked requires the argument to be non-zero"); - _22(out, part3); + const _698: rs.u16 | undefined = rs.nonZero(a); + if (_698 !== undefined) { + const part3 = rs.precondition(rs.u16CheckedAdd(_698, b), "u16::unchecked_add cannot overflow"); + _22(out, part3); + } } } @@ -962,50 +990,50 @@ export function u32s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { _27(out6, v10); } }; - const _30: rs.u8 = rs.u8Rem(kind, 49); + const _30: rs.u8 = rs.u8Rem(kind, 51); if (_30 === 0) { - const part90 = rs.u32CheckedAdd(a, b); - putOpt(out, part90); - const part91 = rs.u32CheckedSub(a, b); - putOpt(out, part91); - const part92 = rs.u32CheckedMul(a, b); + const part92 = rs.u32CheckedAdd(a, b); putOpt(out, part92); - const part93 = rs.u32SaturatingAdd(a, b); - _22(out, part93); - const part94 = rs.u32SaturatingSub(a, b); - _22(out, part94); - const part95 = rs.u32SaturatingMul(a, b); + const part93 = rs.u32CheckedSub(a, b); + putOpt(out, part93); + const part94 = rs.u32CheckedMul(a, b); + putOpt(out, part94); + const part95 = rs.u32SaturatingAdd(a, b); _22(out, part95); - const part96 = rs.u32WrappingAdd(a, b); + const part96 = rs.u32SaturatingSub(a, b); _22(out, part96); - const part97 = rs.u32WrappingSub(a, b); + const part97 = rs.u32SaturatingMul(a, b); _22(out, part97); - const part98 = rs.u32WrappingMul(a, b); + const part98 = rs.u32WrappingAdd(a, b); _22(out, part98); - const part99 = rs.intOverflowingAdd(a, b, 32, false); - putPair(out, part99); - const part100 = rs.intOverflowingSub(a, b, 32, false); - putPair(out, part100); - const part101 = rs.intOverflowingMul(a, b, 32, false); + const part99 = rs.u32WrappingSub(a, b); + _22(out, part99); + const part100 = rs.u32WrappingMul(a, b); + _22(out, part100); + const part101 = rs.intOverflowingAdd(a, b, 32, false); putPair(out, part101); - const part102 = rs.intMidpoint(a, b, 32, false); - _22(out, part102); - const part103 = rs.intCheckedAdd(a, o, 32, false); - putOpt(out, part103); - const part104 = rs.intCheckedSub(a, o, 32, false); - putOpt(out, part104); - const part105 = rs.intSaturatingAdd(a, o, 32, false); - _22(out, part105); - const part106 = rs.intSaturatingSub(a, o, 32, false); - _22(out, part106); - const part107 = rs.intWrappingAdd(a, o, 32, false); + const part102 = rs.intOverflowingSub(a, b, 32, false); + putPair(out, part102); + const part103 = rs.intOverflowingMul(a, b, 32, false); + putPair(out, part103); + const part104 = rs.intMidpoint(a, b, 32, false); + _22(out, part104); + const part105 = rs.intCheckedAdd(a, o, 32, false); + putOpt(out, part105); + const part106 = rs.intCheckedSub(a, o, 32, false); + putOpt(out, part106); + const part107 = rs.intSaturatingAdd(a, o, 32, false); _22(out, part107); - const part108 = rs.intWrappingSub(a, o, 32, false); + const part108 = rs.intSaturatingSub(a, o, 32, false); _22(out, part108); - const part109 = rs.intOverflowingAdd(a, o, 32, false); - putPair(out, part109); - const part110 = rs.intOverflowingSub(a, o, 32, false); - putPair(out, part110); + const part109 = rs.intWrappingAdd(a, o, 32, false); + _22(out, part109); + const part110 = rs.intWrappingSub(a, o, 32, false); + _22(out, part110); + const part111 = rs.intOverflowingAdd(a, o, 32, false); + putPair(out, part111); + const part112 = rs.intOverflowingSub(a, o, 32, false); + putPair(out, part112); const b2: rs.u32 = o >>> 0; const _118: rs.i32 | undefined = rs.intCheckedSignedDiff(a, b2, 32, false) as rs.i32 | undefined; if (_118 === undefined) { @@ -1020,10 +1048,10 @@ export function u32s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { break; } const carry: boolean = _127; - const part111 = rs.intCarryingAdd(a, b2, carry, 32, false); - putPair(out, part111); - const part112 = rs.intBorrowingSub(a, b2, carry, 32, false); - putPair(out, part112); + const part113 = rs.intCarryingAdd(a, b2, carry, 32, false); + putPair(out, part113); + const part114 = rs.intBorrowingSub(a, b2, carry, 32, false); + putPair(out, part114); } const _141: [rs.u32, rs.u32] = rs.intCarryingMul(a, b2, a, 32, false); const lo: rs.u32 = _141[0]; @@ -1035,34 +1063,34 @@ export function u32s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { const hi2: rs.u32 = _150[1]; _22(out, lo2); _22(out, hi2); - const part113 = rs.intCheckedNextMultipleOf(a, b2, 32, false); - putOpt(out, part113); + const part115 = rs.intCheckedNextMultipleOf(a, b2, 32, false); + putOpt(out, part115); } else if (_30 === 1) { - const part85 = rs.intCheckedDiv(a, b, 32, false); - putOpt(out, part85); - const part86 = rs.intCheckedRem(a, b, 32, false); - putOpt(out, part86); - const part87 = rs.intCheckedDivEuclid(a, b, 32, false); + const part87 = rs.intCheckedDiv(a, b, 32, false); putOpt(out, part87); - const part88 = rs.intCheckedRemEuclid(a, b, 32, false); + const part88 = rs.intCheckedRem(a, b, 32, false); putOpt(out, part88); + const part89 = rs.intCheckedDivEuclid(a, b, 32, false); + putOpt(out, part89); + const part90 = rs.intCheckedRemEuclid(a, b, 32, false); + putOpt(out, part90); if (b !== 0) { - const part89 = rs.u32DivCeil(a, b); - _22(out, part89); + const part91 = rs.u32DivCeil(a, b); + _22(out, part91); rs.byteVecPush(out, rs.u32IsMultipleOf(a, b) ? 1 : 0); } } else if (_30 === 2) { - const part80 = rs.intCheckedNeg(a, 32, false); - putOpt(out, part80); - const part81 = rs.intWrappingNeg(a, 32, false); - _22(out, part81); - const part82 = rs.intOverflowingNeg(a, 32, false); - putPair(out, part82); + const part82 = rs.intCheckedNeg(a, 32, false); + putOpt(out, part82); + const part83 = rs.intWrappingNeg(a, 32, false); + _22(out, part83); + const part84 = rs.intOverflowingNeg(a, 32, false); + putPair(out, part84); rs.byteVecPush(out, rs.intIsPowerOfTwo(a, 32, false) ? 1 : 0); - const part83 = rs.intCheckedNextPowerOfTwo(a, 32, false); - putOpt(out, part83); - const part84 = rs.intBitWidth(a, 32, false); - _27(out, part84); + const part85 = rs.intCheckedNextPowerOfTwo(a, 32, false); + putOpt(out, part85); + const part86 = rs.intBitWidth(a, 32, false); + _27(out, part86); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.i32ToBeBytes(a | 0))); } else if (_30 === 3) { const iter2: rs.Iter = rs.iterSlice([n, k]); @@ -1072,14 +1100,14 @@ export function u32s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { break; } const e: rs.u32 = _216; - const part76 = rs.intCheckedPow(a, e, 32, false); - putOpt(out, part76); - const part77 = rs.intWrappingPow(a, e, 32, false); - _22(out, part77); - const part78 = rs.intSaturatingPow(a, e, 32, false); - _22(out, part78); - const part79 = rs.intOverflowingPow(a, e, 32, false); - putPair(out, part79); + const part78 = rs.intCheckedPow(a, e, 32, false); + putOpt(out, part78); + const part79 = rs.intWrappingPow(a, e, 32, false); + _22(out, part79); + const part80 = rs.intSaturatingPow(a, e, 32, false); + _22(out, part80); + const part81 = rs.intOverflowingPow(a, e, 32, false); + putPair(out, part81); } } else if (_30 === 4) { const iter3: rs.Iter = rs.iterSlice([n, k]); @@ -1089,26 +1117,26 @@ export function u32s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { break; } const s: rs.u32 = _239; - const part66 = rs.intCheckedShl(a, s, 32, false); - putOpt(out, part66); - const part67 = rs.intCheckedShr(a, s, 32, false); - putOpt(out, part67); - const part68 = rs.intWrappingShl(a, s, 32, false); - _22(out, part68); - const part69 = rs.intWrappingShr(a, s, 32, false); - _22(out, part69); - const part70 = rs.intOverflowingShl(a, s, 32, false); - putPair(out, part70); - const part71 = rs.intOverflowingShr(a, s, 32, false); - putPair(out, part71); - const part72 = rs.intUnboundedShl(a, s, 32, false); - _22(out, part72); - const part73 = rs.intUnboundedShr(a, s, 32, false); - _22(out, part73); - const part74 = rs.intRotateLeft(a, s, 32, false); + const part68 = rs.intCheckedShl(a, s, 32, false); + putOpt(out, part68); + const part69 = rs.intCheckedShr(a, s, 32, false); + putOpt(out, part69); + const part70 = rs.intWrappingShl(a, s, 32, false); + _22(out, part70); + const part71 = rs.intWrappingShr(a, s, 32, false); + _22(out, part71); + const part72 = rs.intOverflowingShl(a, s, 32, false); + putPair(out, part72); + const part73 = rs.intOverflowingShr(a, s, 32, false); + putPair(out, part73); + const part74 = rs.intUnboundedShl(a, s, 32, false); _22(out, part74); - const part75 = rs.intRotateRight(a, s, 32, false); + const part75 = rs.intUnboundedShr(a, s, 32, false); _22(out, part75); + const part76 = rs.intRotateLeft(a, s, 32, false); + _22(out, part76); + const part77 = rs.intRotateRight(a, s, 32, false); + _22(out, part77); } } else if (_30 === 5) { const iter4: rs.Iter = rs.iterSlice([rs.intCountOnes(a, 32, false), rs.intCountZeros(a, 32, false), rs.u32LeadingZeros(a), rs.u32TrailingZeros(a), rs.u32LeadingOnes(a), rs.intTrailingOnes(a, 32, false)]); @@ -1127,48 +1155,48 @@ export function u32s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } _22(out, _308); } - const part62 = rs.intHighestOne(a, 32, false); - putOptU32(out, part62); - const part63 = rs.intLowestOne(a, 32, false); - putOptU32(out, part63); - const part64 = rs.intIsolateHighestOne(a, 32, false); - _22(out, part64); - const part65 = rs.intIsolateLowestOne(a, 32, false); - _22(out, part65); + const part64 = rs.intHighestOne(a, 32, false); + putOptU32(out, part64); + const part65 = rs.intLowestOne(a, 32, false); + putOptU32(out, part65); + const part66 = rs.intIsolateHighestOne(a, 32, false); + _22(out, part66); + const part67 = rs.intIsolateLowestOne(a, 32, false); + _22(out, part67); _22(out, 4294967295); _22(out, 0); } else if (_30 === 6) { - const part59 = rs.intCheckedIlog(a, b, 32, false); - putOptU32(out, part59); - const part60 = rs.intCheckedIlog2(a, 32, false); - putOptU32(out, part60); - const part61 = rs.intCheckedIlog10(a, 32, false); + const part61 = rs.intCheckedIlog(a, b, 32, false); putOptU32(out, part61); + const part62 = rs.intCheckedIlog2(a, 32, false); + putOptU32(out, part62); + const part63 = rs.intCheckedIlog10(a, 32, false); + putOptU32(out, part63); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.u32ToBeBytes(rs.intAbsDiff(a, b, 32, false) as rs.u32))); } else if (_30 === 7) { - const part58 = rs.intPow(a, k, 32, false); - _22(out, part58); + const part60 = rs.intPow(a, k, 32, false); + _22(out, part60); } else if (_30 === 8) { - const part57 = rs.intPow(a, n, 32, false); - _22(out, part57); + const part59 = rs.intPow(a, n, 32, false); + _22(out, part59); } else if (_30 === 9) { - const part56 = rs.intDivEuclid(a, b, 32, false); - _22(out, part56); + const part58 = rs.intDivEuclid(a, b, 32, false); + _22(out, part58); } else if (_30 === 10) { - const part55 = rs.intRemEuclid(a, b, 32, false); - _22(out, part55); + const part57 = rs.intRemEuclid(a, b, 32, false); + _22(out, part57); } else if (_30 === 11) { - const part54 = rs.intIsqrt(a, 32, false); - _22(out, part54); + const part56 = rs.intIsqrt(a, 32, false); + _22(out, part56); } else if (_30 === 12) { - const part53 = rs.intIlog(a, b, 32, false); - _27(out, part53); + const part55 = rs.intIlog(a, b, 32, false); + _27(out, part55); } else if (_30 === 13) { - const part52 = rs.intIlog2(a, 32, false); - _27(out, part52); + const part54 = rs.intIlog2(a, 32, false); + _27(out, part54); } else if (_30 === 14) { - const part51 = rs.intIlog10(a, 32, false); - _27(out, part51); + const part53 = rs.intIlog10(a, 32, false); + _27(out, part53); } else if (_30 === 15) { _22(out, rs.u32Add(a, b)); } else if (_30 === 16) { @@ -1180,65 +1208,65 @@ export function u32s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } else if (_30 === 19) { _22(out, rs.u32Rem(a, b)); } else if (_30 === 20) { - const part45 = rs.intStrictNeg(a, 32, false); - _22(out, part45); + const part47 = rs.intStrictNeg(a, 32, false); + _22(out, part47); } else if (_30 === 21) { _22(out, rs.u32Shl(a, k)); } else if (_30 === 22) { _22(out, rs.u32Shr(a, k)); } else if (_30 === 23) { - const part42 = rs.intPow(a, k, 32, false); - _22(out, part42); + const part44 = rs.intPow(a, k, 32, false); + _22(out, part44); } else if (_30 === 24) { - const part41 = rs.intDivEuclid(a, b, 32, false); - _22(out, part41); + const part43 = rs.intDivEuclid(a, b, 32, false); + _22(out, part43); } else if (_30 === 25) { - const part40 = rs.intRemEuclid(a, b, 32, false); - _22(out, part40); + const part42 = rs.intRemEuclid(a, b, 32, false); + _22(out, part42); } else if (_30 === 26) { - const part39 = rs.intStrictAdd(a, o, 32, false); - _22(out, part39); + const part41 = rs.intStrictAdd(a, o, 32, false); + _22(out, part41); } else if (_30 === 27) { - const part38 = rs.intStrictSub(a, o, 32, false); - _22(out, part38); + const part40 = rs.intStrictSub(a, o, 32, false); + _22(out, part40); } else if (_30 === 28) { _22(out, rs.u32Div(a, b)); } else if (_30 === 29) { _22(out, rs.u32Rem(a, b)); } else if (_30 === 30) { - const part35 = rs.intWrappingDivEuclid(a, b, 32, false); - _22(out, part35); + const part37 = rs.intWrappingDivEuclid(a, b, 32, false); + _22(out, part37); } else if (_30 === 31) { - const part34 = rs.intWrappingRemEuclid(a, b, 32, false); - _22(out, part34); + const part36 = rs.intWrappingRemEuclid(a, b, 32, false); + _22(out, part36); } else if (_30 === 32) { - const part33 = rs.intOverflowingDiv(a, b, 32, false); - putPair(out, part33); + const part35 = rs.intOverflowingDiv(a, b, 32, false); + putPair(out, part35); } else if (_30 === 33) { - const part32 = rs.intOverflowingRem(a, b, 32, false); - putPair(out, part32); + const part34 = rs.intOverflowingRem(a, b, 32, false); + putPair(out, part34); } else if (_30 === 34) { - const part31 = rs.intOverflowingDivEuclid(a, b, 32, false); - putPair(out, part31); + const part33 = rs.intOverflowingDivEuclid(a, b, 32, false); + putPair(out, part33); } else if (_30 === 35) { - const part30 = rs.intOverflowingRemEuclid(a, b, 32, false); - putPair(out, part30); + const part32 = rs.intOverflowingRemEuclid(a, b, 32, false); + putPair(out, part32); } else if (_30 === 36) { _22(out, rs.u32Div(a, b)); } else if (_30 === 37) { - const part28 = rs.intNextPowerOfTwo(a, 32, false); - _22(out, part28); + const part30 = rs.intNextPowerOfTwo(a, 32, false); + _22(out, part30); } else if (_30 === 38) { const _449: rs.u32 = rs.u32Rem(k, 3); if (_449 === 0) { - const part27 = rs.intNextMultipleOf(a, b, 32, false); - _22(out, part27); + const part29 = rs.intNextMultipleOf(a, b, 32, false); + _22(out, part29); } else if (_449 === 1) { - const part26 = rs.intFunnelShl(a, b, k, 32, false); - _22(out, part26); + const part28 = rs.intFunnelShl(a, b, k, 32, false); + _22(out, part28); } else { - const part25 = rs.intFunnelShr(a, b, k, 32, false); - _22(out, part25); + const part27 = rs.intFunnelShr(a, b, k, 32, false); + _22(out, part27); } } else if (_30 === 39) { const s2: rs.u32 = a; @@ -1276,8 +1304,8 @@ export function u32s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { _22(out, _527); } rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(Uint8Array.of(rs.intIsPowerOfTwo(s2, 32, false) ? 1 : 0, rs.intIsPowerOfTwo(w, 32, false) ? 1 : 0))); - const part24 = rs.intWrappingNextPowerOfTwo(w, 32, false); - _22(out, part24); + const part26 = rs.intWrappingNextPowerOfTwo(w, 32, false); + _22(out, part26); } else if (_30 === 40) { const _548: [rs.u32 | undefined, rs.u32 | undefined] = [rs.nonZero(a), rs.nonZero(b)]; if (_548[0] !== undefined) { @@ -1292,37 +1320,37 @@ export function u32s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } _27(out, _564); } - const part11 = option_map$03qwbb9(rs.u32CheckedMul(x, y), (a0: rs.u32): rs.u32 => { + const part13 = option_map$03qwbb9(rs.u32CheckedMul(x, y), (a0: rs.u32): rs.u32 => { return a0; }); - putOpt(out, part11); - const part12 = rs.u32SaturatingMul(x, y); - _22(out, part12); - const part13 = option_map$03qwbb9(rs.intCheckedPow(x, k, 32, false), (a02: rs.u32): rs.u32 => { + putOpt(out, part13); + const part14 = rs.u32SaturatingMul(x, y); + _22(out, part14); + const part15 = option_map$03qwbb9(rs.intCheckedPow(x, k, 32, false), (a02: rs.u32): rs.u32 => { return a02; }); - putOpt(out, part13); - const part14 = option_map$03qwbb9(rs.intCheckedPow(x, n, 32, false), (a03: rs.u32): rs.u32 => { + putOpt(out, part15); + const part16 = option_map$03qwbb9(rs.intCheckedPow(x, n, 32, false), (a03: rs.u32): rs.u32 => { return a03; }); - putOpt(out, part14); - const part15 = rs.intSaturatingPow(x, k, 32, false); - _22(out, part15); - const part16 = rs.intIsolateHighestOne(x, 32, false); - _22(out, part16); - const part17 = rs.intIsolateLowestOne(x, 32, false); + putOpt(out, part16); + const part17 = rs.intSaturatingPow(x, k, 32, false); _22(out, part17); + const part18 = rs.intIsolateHighestOne(x, 32, false); + _22(out, part18); + const part19 = rs.intIsolateLowestOne(x, 32, false); + _22(out, part19); rs.byteVecPush(out, rs.intIsPowerOfTwo(x, 32, false) ? 1 : 0); - const part18 = option_map$03qwbb9(rs.u32CheckedAdd(x, b), (a04: rs.u32): rs.u32 => { + const part20 = option_map$03qwbb9(rs.u32CheckedAdd(x, b), (a04: rs.u32): rs.u32 => { return a04; }); - putOpt(out, part18); - const part19 = rs.u32SaturatingAdd(x, b); - _22(out, part19); - const part20 = option_map$03qwbb9(rs.intCheckedNextPowerOfTwo(x, 32, false), (a05: rs.u32): rs.u32 => { + putOpt(out, part20); + const part21 = rs.u32SaturatingAdd(x, b); + _22(out, part21); + const part22 = option_map$03qwbb9(rs.intCheckedNextPowerOfTwo(x, 32, false), (a05: rs.u32): rs.u32 => { return a05; }); - putOpt(out, part20); + putOpt(out, part22); const iter11: rs.Iter = rs.iterSlice([rs.intIlog2(x, 32, false), rs.intIlog10(x, 32, false), rs.intBitWidth(x, 32, false)]); while (true) { const _631: rs.u32 | rs.Done = iter11.next(); @@ -1331,43 +1359,57 @@ export function u32s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } _27(out, _631); } - const part21 = rs.intMidpoint(x, y, 32, false); - _22(out, part21); - const part22 = rs.intIsqrt(x, 32, false); - _22(out, part22); - const part23 = rs.u32DivCeil(x, y); + const part23 = rs.intMidpoint(x, y, 32, false); _22(out, part23); + const part24 = rs.intIsqrt(x, 32, false); + _22(out, part24); + const part25 = rs.u32DivCeil(x, y); + _22(out, part25); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.i32ToBeBytes(x | 0))); } } } else if (_30 === 41) { rs.byteVecPush(out, 0); } else if (_30 === 42) { - const part10 = rs.precondition(rs.u32CheckedAdd(a, b), "u32::unchecked_add cannot overflow"); - _22(out, part10); + const part12 = rs.precondition(rs.u32CheckedAdd(a, b), "u32::unchecked_add cannot overflow"); + _22(out, part12); } else if (_30 === 43) { - const part9 = rs.precondition(rs.u32CheckedSub(a, b), "u32::unchecked_sub cannot overflow"); - _22(out, part9); + const part11 = rs.precondition(rs.u32CheckedSub(a, b), "u32::unchecked_sub cannot overflow"); + _22(out, part11); } else if (_30 === 44) { - const part8 = rs.precondition(rs.u32CheckedMul(a, b), "u32::unchecked_mul cannot overflow"); - _22(out, part8); + const part10 = rs.precondition(rs.u32CheckedMul(a, b), "u32::unchecked_mul cannot overflow"); + _22(out, part10); } else if (_30 === 45) { - const part7 = rs.precondition(rs.intCheckedShl(a, k, 32, false), "u32::unchecked_shl cannot overflow"); - _22(out, part7); + const part9 = rs.precondition(rs.intCheckedShl(a, k, 32, false), "u32::unchecked_shl cannot overflow"); + _22(out, part9); } else if (_30 === 46) { - const part6 = rs.precondition(rs.intCheckedShr(a, k, 32, false), "u32::unchecked_shr cannot overflow"); - _22(out, part6); + const part8 = rs.precondition(rs.intCheckedShr(a, k, 32, false), "u32::unchecked_shr cannot overflow"); + _22(out, part8); } else if (_30 === 47) { if (rs.u32Rem(k, 2) === 0) { - const part5 = rs.precondition(rs.intCheckedFunnelShl(a, b, k, 32, false), "u32::unchecked_funnel_shl cannot overflow"); - _22(out, part5); + const part7 = rs.precondition(rs.intCheckedFunnelShl(a, b, k, 32, false), "u32::unchecked_funnel_shl cannot overflow"); + _22(out, part7); } else { - const part4 = rs.precondition(rs.intCheckedFunnelShr(a, b, k, 32, false), "u32::unchecked_funnel_shr cannot overflow"); - _22(out, part4); + const part6 = rs.precondition(rs.intCheckedFunnelShr(a, b, k, 32, false), "u32::unchecked_funnel_shr cannot overflow"); + _22(out, part6); + } + } else if (_30 === 48) { + const part5 = rs.precondition(rs.nonZero(a), "NonZero::new_unchecked requires the argument to be non-zero"); + _22(out, part5); + } else if (_30 === 49) { + const _686: [rs.u32 | undefined, rs.u32 | undefined] = [rs.nonZero(a), rs.nonZero(b)]; + if (_686[0] !== undefined) { + if (_686[1] !== undefined) { + const part4 = rs.precondition(rs.u32CheckedMul(_686[0], _686[1]), "u32::unchecked_mul cannot overflow"); + _22(out, part4); + } } } else { - const part3 = rs.precondition(rs.nonZero(a), "NonZero::new_unchecked requires the argument to be non-zero"); - _22(out, part3); + const _698: rs.u32 | undefined = rs.nonZero(a); + if (_698 !== undefined) { + const part3 = rs.precondition(rs.u32CheckedAdd(_698, b), "u32::unchecked_add cannot overflow"); + _22(out, part3); + } } } @@ -1418,50 +1460,50 @@ export function u64s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { _27(out6, v10); } }; - const _30: rs.u8 = rs.u8Rem(kind, 49); + const _30: rs.u8 = rs.u8Rem(kind, 51); if (_30 === 0) { - const part90 = rs.u64CheckedAdd(a, b); - putOpt(out, part90); - const part91 = rs.u64CheckedSub(a, b); - putOpt(out, part91); - const part92 = rs.u64CheckedMul(a, b); + const part92 = rs.u64CheckedAdd(a, b); putOpt(out, part92); - const part93 = rs.u64SaturatingAdd(a, b); - _22(out, part93); - const part94 = rs.u64SaturatingSub(a, b); - _22(out, part94); - const part95 = rs.u64SaturatingMul(a, b); + const part93 = rs.u64CheckedSub(a, b); + putOpt(out, part93); + const part94 = rs.u64CheckedMul(a, b); + putOpt(out, part94); + const part95 = rs.u64SaturatingAdd(a, b); _22(out, part95); - const part96 = rs.u64WrappingAdd(a, b); + const part96 = rs.u64SaturatingSub(a, b); _22(out, part96); - const part97 = rs.u64WrappingSub(a, b); + const part97 = rs.u64SaturatingMul(a, b); _22(out, part97); - const part98 = rs.u64WrappingMul(a, b); + const part98 = rs.u64WrappingAdd(a, b); _22(out, part98); - const part99 = rs.intOverflowingAdd(a, b, 64, false); - putPair(out, part99); - const part100 = rs.intOverflowingSub(a, b, 64, false); - putPair(out, part100); - const part101 = rs.intOverflowingMul(a, b, 64, false); + const part99 = rs.u64WrappingSub(a, b); + _22(out, part99); + const part100 = rs.u64WrappingMul(a, b); + _22(out, part100); + const part101 = rs.intOverflowingAdd(a, b, 64, false); putPair(out, part101); - const part102 = rs.intMidpoint(a, b, 64, false); - _22(out, part102); - const part103 = rs.intCheckedAdd(a, o, 64, false); - putOpt(out, part103); - const part104 = rs.intCheckedSub(a, o, 64, false); - putOpt(out, part104); - const part105 = rs.intSaturatingAdd(a, o, 64, false); - _22(out, part105); - const part106 = rs.intSaturatingSub(a, o, 64, false); - _22(out, part106); - const part107 = rs.intWrappingAdd(a, o, 64, false); + const part102 = rs.intOverflowingSub(a, b, 64, false); + putPair(out, part102); + const part103 = rs.intOverflowingMul(a, b, 64, false); + putPair(out, part103); + const part104 = rs.intMidpoint(a, b, 64, false); + _22(out, part104); + const part105 = rs.intCheckedAdd(a, o, 64, false); + putOpt(out, part105); + const part106 = rs.intCheckedSub(a, o, 64, false); + putOpt(out, part106); + const part107 = rs.intSaturatingAdd(a, o, 64, false); _22(out, part107); - const part108 = rs.intWrappingSub(a, o, 64, false); + const part108 = rs.intSaturatingSub(a, o, 64, false); _22(out, part108); - const part109 = rs.intOverflowingAdd(a, o, 64, false); - putPair(out, part109); - const part110 = rs.intOverflowingSub(a, o, 64, false); - putPair(out, part110); + const part109 = rs.intWrappingAdd(a, o, 64, false); + _22(out, part109); + const part110 = rs.intWrappingSub(a, o, 64, false); + _22(out, part110); + const part111 = rs.intOverflowingAdd(a, o, 64, false); + putPair(out, part111); + const part112 = rs.intOverflowingSub(a, o, 64, false); + putPair(out, part112); const b2: rs.u64 = rs.u64Cast(o); const _118: rs.i64 | undefined = rs.intCheckedSignedDiff(a, b2, 64, false) as rs.i64 | undefined; if (_118 === undefined) { @@ -1476,10 +1518,10 @@ export function u64s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { break; } const carry: boolean = _127; - const part111 = rs.intCarryingAdd(a, b2, carry, 64, false); - putPair(out, part111); - const part112 = rs.intBorrowingSub(a, b2, carry, 64, false); - putPair(out, part112); + const part113 = rs.intCarryingAdd(a, b2, carry, 64, false); + putPair(out, part113); + const part114 = rs.intBorrowingSub(a, b2, carry, 64, false); + putPair(out, part114); } const _141: [rs.u64, rs.u64] = rs.intCarryingMul(a, b2, a, 64, false); const lo: rs.u64 = _141[0]; @@ -1491,34 +1533,34 @@ export function u64s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { const hi2: rs.u64 = _150[1]; _22(out, lo2); _22(out, hi2); - const part113 = rs.intCheckedNextMultipleOf(a, b2, 64, false); - putOpt(out, part113); + const part115 = rs.intCheckedNextMultipleOf(a, b2, 64, false); + putOpt(out, part115); } else if (_30 === 1) { - const part85 = rs.intCheckedDiv(a, b, 64, false); - putOpt(out, part85); - const part86 = rs.intCheckedRem(a, b, 64, false); - putOpt(out, part86); - const part87 = rs.intCheckedDivEuclid(a, b, 64, false); + const part87 = rs.intCheckedDiv(a, b, 64, false); putOpt(out, part87); - const part88 = rs.intCheckedRemEuclid(a, b, 64, false); + const part88 = rs.intCheckedRem(a, b, 64, false); putOpt(out, part88); + const part89 = rs.intCheckedDivEuclid(a, b, 64, false); + putOpt(out, part89); + const part90 = rs.intCheckedRemEuclid(a, b, 64, false); + putOpt(out, part90); if (b !== 0) { - const part89 = rs.u64DivCeil(a, b); - _22(out, part89); + const part91 = rs.u64DivCeil(a, b); + _22(out, part91); rs.byteVecPush(out, rs.u64IsMultipleOf(a, b) ? 1 : 0); } } else if (_30 === 2) { - const part80 = rs.intCheckedNeg(a, 64, false); - putOpt(out, part80); - const part81 = rs.intWrappingNeg(a, 64, false); - _22(out, part81); - const part82 = rs.intOverflowingNeg(a, 64, false); - putPair(out, part82); + const part82 = rs.intCheckedNeg(a, 64, false); + putOpt(out, part82); + const part83 = rs.intWrappingNeg(a, 64, false); + _22(out, part83); + const part84 = rs.intOverflowingNeg(a, 64, false); + putPair(out, part84); rs.byteVecPush(out, rs.intIsPowerOfTwo(a, 64, false) ? 1 : 0); - const part83 = rs.intCheckedNextPowerOfTwo(a, 64, false); - putOpt(out, part83); - const part84 = rs.intBitWidth(a, 64, false); - _27(out, part84); + const part85 = rs.intCheckedNextPowerOfTwo(a, 64, false); + putOpt(out, part85); + const part86 = rs.intBitWidth(a, 64, false); + _27(out, part86); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.i64ToBeBytes(rs.i64Cast(a)))); } else if (_30 === 3) { const iter2: rs.Iter = rs.iterSlice([n, k]); @@ -1528,14 +1570,14 @@ export function u64s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { break; } const e: rs.u32 = _216; - const part76 = rs.intCheckedPow(a, e, 64, false); - putOpt(out, part76); - const part77 = rs.intWrappingPow(a, e, 64, false); - _22(out, part77); - const part78 = rs.intSaturatingPow(a, e, 64, false); - _22(out, part78); - const part79 = rs.intOverflowingPow(a, e, 64, false); - putPair(out, part79); + const part78 = rs.intCheckedPow(a, e, 64, false); + putOpt(out, part78); + const part79 = rs.intWrappingPow(a, e, 64, false); + _22(out, part79); + const part80 = rs.intSaturatingPow(a, e, 64, false); + _22(out, part80); + const part81 = rs.intOverflowingPow(a, e, 64, false); + putPair(out, part81); } } else if (_30 === 4) { const iter3: rs.Iter = rs.iterSlice([n, k]); @@ -1545,26 +1587,26 @@ export function u64s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { break; } const s: rs.u32 = _239; - const part66 = rs.intCheckedShl(a, s, 64, false); - putOpt(out, part66); - const part67 = rs.intCheckedShr(a, s, 64, false); - putOpt(out, part67); - const part68 = rs.intWrappingShl(a, s, 64, false); - _22(out, part68); - const part69 = rs.intWrappingShr(a, s, 64, false); - _22(out, part69); - const part70 = rs.intOverflowingShl(a, s, 64, false); - putPair(out, part70); - const part71 = rs.intOverflowingShr(a, s, 64, false); - putPair(out, part71); - const part72 = rs.intUnboundedShl(a, s, 64, false); - _22(out, part72); - const part73 = rs.intUnboundedShr(a, s, 64, false); - _22(out, part73); - const part74 = rs.intRotateLeft(a, s, 64, false); + const part68 = rs.intCheckedShl(a, s, 64, false); + putOpt(out, part68); + const part69 = rs.intCheckedShr(a, s, 64, false); + putOpt(out, part69); + const part70 = rs.intWrappingShl(a, s, 64, false); + _22(out, part70); + const part71 = rs.intWrappingShr(a, s, 64, false); + _22(out, part71); + const part72 = rs.intOverflowingShl(a, s, 64, false); + putPair(out, part72); + const part73 = rs.intOverflowingShr(a, s, 64, false); + putPair(out, part73); + const part74 = rs.intUnboundedShl(a, s, 64, false); _22(out, part74); - const part75 = rs.intRotateRight(a, s, 64, false); + const part75 = rs.intUnboundedShr(a, s, 64, false); _22(out, part75); + const part76 = rs.intRotateLeft(a, s, 64, false); + _22(out, part76); + const part77 = rs.intRotateRight(a, s, 64, false); + _22(out, part77); } } else if (_30 === 5) { const iter4: rs.Iter = rs.iterSlice([rs.intCountOnes(a, 64, false), rs.intCountZeros(a, 64, false), rs.u64LeadingZeros(a), rs.u64TrailingZeros(a), rs.u64LeadingOnes(a), rs.intTrailingOnes(a, 64, false)]); @@ -1583,48 +1625,48 @@ export function u64s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } _22(out, _308); } - const part62 = rs.intHighestOne(a, 64, false); - putOptU32(out, part62); - const part63 = rs.intLowestOne(a, 64, false); - putOptU32(out, part63); - const part64 = rs.intIsolateHighestOne(a, 64, false); - _22(out, part64); - const part65 = rs.intIsolateLowestOne(a, 64, false); - _22(out, part65); + const part64 = rs.intHighestOne(a, 64, false); + putOptU32(out, part64); + const part65 = rs.intLowestOne(a, 64, false); + putOptU32(out, part65); + const part66 = rs.intIsolateHighestOne(a, 64, false); + _22(out, part66); + const part67 = rs.intIsolateLowestOne(a, 64, false); + _22(out, part67); _22(out, { hi: 0xffffffff, lo: 0xffffffff } as rs.u64); _22(out, 0); } else if (_30 === 6) { - const part59 = rs.intCheckedIlog(a, b, 64, false); - putOptU32(out, part59); - const part60 = rs.intCheckedIlog2(a, 64, false); - putOptU32(out, part60); - const part61 = rs.intCheckedIlog10(a, 64, false); + const part61 = rs.intCheckedIlog(a, b, 64, false); putOptU32(out, part61); + const part62 = rs.intCheckedIlog2(a, 64, false); + putOptU32(out, part62); + const part63 = rs.intCheckedIlog10(a, 64, false); + putOptU32(out, part63); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.u64ToBeBytes(rs.intAbsDiff(a, b, 64, false) as rs.u64))); } else if (_30 === 7) { - const part58 = rs.intPow(a, k, 64, false); - _22(out, part58); + const part60 = rs.intPow(a, k, 64, false); + _22(out, part60); } else if (_30 === 8) { - const part57 = rs.intPow(a, n, 64, false); - _22(out, part57); + const part59 = rs.intPow(a, n, 64, false); + _22(out, part59); } else if (_30 === 9) { - const part56 = rs.intDivEuclid(a, b, 64, false); - _22(out, part56); + const part58 = rs.intDivEuclid(a, b, 64, false); + _22(out, part58); } else if (_30 === 10) { - const part55 = rs.intRemEuclid(a, b, 64, false); - _22(out, part55); + const part57 = rs.intRemEuclid(a, b, 64, false); + _22(out, part57); } else if (_30 === 11) { - const part54 = rs.intIsqrt(a, 64, false); - _22(out, part54); + const part56 = rs.intIsqrt(a, 64, false); + _22(out, part56); } else if (_30 === 12) { - const part53 = rs.intIlog(a, b, 64, false); - _27(out, part53); + const part55 = rs.intIlog(a, b, 64, false); + _27(out, part55); } else if (_30 === 13) { - const part52 = rs.intIlog2(a, 64, false); - _27(out, part52); + const part54 = rs.intIlog2(a, 64, false); + _27(out, part54); } else if (_30 === 14) { - const part51 = rs.intIlog10(a, 64, false); - _27(out, part51); + const part53 = rs.intIlog10(a, 64, false); + _27(out, part53); } else if (_30 === 15) { _22(out, rs.u64Add(a, b)); } else if (_30 === 16) { @@ -1636,65 +1678,65 @@ export function u64s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } else if (_30 === 19) { _22(out, rs.u64Rem(a, b)); } else if (_30 === 20) { - const part45 = rs.intStrictNeg(a, 64, false); - _22(out, part45); + const part47 = rs.intStrictNeg(a, 64, false); + _22(out, part47); } else if (_30 === 21) { _22(out, rs.u64Shl(a, k)); } else if (_30 === 22) { _22(out, rs.u64Shr(a, k)); } else if (_30 === 23) { - const part42 = rs.intPow(a, k, 64, false); - _22(out, part42); + const part44 = rs.intPow(a, k, 64, false); + _22(out, part44); } else if (_30 === 24) { - const part41 = rs.intDivEuclid(a, b, 64, false); - _22(out, part41); + const part43 = rs.intDivEuclid(a, b, 64, false); + _22(out, part43); } else if (_30 === 25) { - const part40 = rs.intRemEuclid(a, b, 64, false); - _22(out, part40); + const part42 = rs.intRemEuclid(a, b, 64, false); + _22(out, part42); } else if (_30 === 26) { - const part39 = rs.intStrictAdd(a, o, 64, false); - _22(out, part39); + const part41 = rs.intStrictAdd(a, o, 64, false); + _22(out, part41); } else if (_30 === 27) { - const part38 = rs.intStrictSub(a, o, 64, false); - _22(out, part38); + const part40 = rs.intStrictSub(a, o, 64, false); + _22(out, part40); } else if (_30 === 28) { _22(out, rs.u64Div(a, b)); } else if (_30 === 29) { _22(out, rs.u64Rem(a, b)); } else if (_30 === 30) { - const part35 = rs.intWrappingDivEuclid(a, b, 64, false); - _22(out, part35); + const part37 = rs.intWrappingDivEuclid(a, b, 64, false); + _22(out, part37); } else if (_30 === 31) { - const part34 = rs.intWrappingRemEuclid(a, b, 64, false); - _22(out, part34); + const part36 = rs.intWrappingRemEuclid(a, b, 64, false); + _22(out, part36); } else if (_30 === 32) { - const part33 = rs.intOverflowingDiv(a, b, 64, false); - putPair(out, part33); + const part35 = rs.intOverflowingDiv(a, b, 64, false); + putPair(out, part35); } else if (_30 === 33) { - const part32 = rs.intOverflowingRem(a, b, 64, false); - putPair(out, part32); + const part34 = rs.intOverflowingRem(a, b, 64, false); + putPair(out, part34); } else if (_30 === 34) { - const part31 = rs.intOverflowingDivEuclid(a, b, 64, false); - putPair(out, part31); + const part33 = rs.intOverflowingDivEuclid(a, b, 64, false); + putPair(out, part33); } else if (_30 === 35) { - const part30 = rs.intOverflowingRemEuclid(a, b, 64, false); - putPair(out, part30); + const part32 = rs.intOverflowingRemEuclid(a, b, 64, false); + putPair(out, part32); } else if (_30 === 36) { _22(out, rs.u64Div(a, b)); } else if (_30 === 37) { - const part28 = rs.intNextPowerOfTwo(a, 64, false); - _22(out, part28); + const part30 = rs.intNextPowerOfTwo(a, 64, false); + _22(out, part30); } else if (_30 === 38) { const _449: rs.u32 = rs.u32Rem(k, 3); if (_449 === 0) { - const part27 = rs.intNextMultipleOf(a, b, 64, false); - _22(out, part27); + const part29 = rs.intNextMultipleOf(a, b, 64, false); + _22(out, part29); } else if (_449 === 1) { - const part26 = rs.intFunnelShl(a, b, k, 64, false); - _22(out, part26); + const part28 = rs.intFunnelShl(a, b, k, 64, false); + _22(out, part28); } else { - const part25 = rs.intFunnelShr(a, b, k, 64, false); - _22(out, part25); + const part27 = rs.intFunnelShr(a, b, k, 64, false); + _22(out, part27); } } else if (_30 === 39) { const s2: rs.u64 = a; @@ -1732,8 +1774,8 @@ export function u64s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { _22(out, _527); } rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(Uint8Array.of(rs.intIsPowerOfTwo(s2, 64, false) ? 1 : 0, rs.intIsPowerOfTwo(w, 64, false) ? 1 : 0))); - const part24 = rs.intWrappingNextPowerOfTwo(w, 64, false); - _22(out, part24); + const part26 = rs.intWrappingNextPowerOfTwo(w, 64, false); + _22(out, part26); } else if (_30 === 40) { const _548: [rs.u64 | undefined, rs.u64 | undefined] = [rs.nonZero(a), rs.nonZero(b)]; if (_548[0] !== undefined) { @@ -1748,37 +1790,37 @@ export function u64s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } _27(out, _564); } - const part11 = option_map$0fest7b(rs.u64CheckedMul(x, y), (a0: rs.u64): rs.u64 => { + const part13 = option_map$0fest7b(rs.u64CheckedMul(x, y), (a0: rs.u64): rs.u64 => { return a0; }); - putOpt(out, part11); - const part12 = rs.u64SaturatingMul(x, y); - _22(out, part12); - const part13 = option_map$0fest7b(rs.intCheckedPow(x, k, 64, false), (a02: rs.u64): rs.u64 => { + putOpt(out, part13); + const part14 = rs.u64SaturatingMul(x, y); + _22(out, part14); + const part15 = option_map$0fest7b(rs.intCheckedPow(x, k, 64, false), (a02: rs.u64): rs.u64 => { return a02; }); - putOpt(out, part13); - const part14 = option_map$0fest7b(rs.intCheckedPow(x, n, 64, false), (a03: rs.u64): rs.u64 => { + putOpt(out, part15); + const part16 = option_map$0fest7b(rs.intCheckedPow(x, n, 64, false), (a03: rs.u64): rs.u64 => { return a03; }); - putOpt(out, part14); - const part15 = rs.intSaturatingPow(x, k, 64, false); - _22(out, part15); - const part16 = rs.intIsolateHighestOne(x, 64, false); - _22(out, part16); - const part17 = rs.intIsolateLowestOne(x, 64, false); + putOpt(out, part16); + const part17 = rs.intSaturatingPow(x, k, 64, false); _22(out, part17); + const part18 = rs.intIsolateHighestOne(x, 64, false); + _22(out, part18); + const part19 = rs.intIsolateLowestOne(x, 64, false); + _22(out, part19); rs.byteVecPush(out, rs.intIsPowerOfTwo(x, 64, false) ? 1 : 0); - const part18 = option_map$0fest7b(rs.u64CheckedAdd(x, b), (a04: rs.u64): rs.u64 => { + const part20 = option_map$0fest7b(rs.u64CheckedAdd(x, b), (a04: rs.u64): rs.u64 => { return a04; }); - putOpt(out, part18); - const part19 = rs.u64SaturatingAdd(x, b); - _22(out, part19); - const part20 = option_map$0fest7b(rs.intCheckedNextPowerOfTwo(x, 64, false), (a05: rs.u64): rs.u64 => { + putOpt(out, part20); + const part21 = rs.u64SaturatingAdd(x, b); + _22(out, part21); + const part22 = option_map$0fest7b(rs.intCheckedNextPowerOfTwo(x, 64, false), (a05: rs.u64): rs.u64 => { return a05; }); - putOpt(out, part20); + putOpt(out, part22); const iter11: rs.Iter = rs.iterSlice([rs.intIlog2(x, 64, false), rs.intIlog10(x, 64, false), rs.intBitWidth(x, 64, false)]); while (true) { const _631: rs.u32 | rs.Done = iter11.next(); @@ -1787,43 +1829,57 @@ export function u64s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } _27(out, _631); } - const part21 = rs.intMidpoint(x, y, 64, false); - _22(out, part21); - const part22 = rs.intIsqrt(x, 64, false); - _22(out, part22); - const part23 = rs.u64DivCeil(x, y); + const part23 = rs.intMidpoint(x, y, 64, false); _22(out, part23); + const part24 = rs.intIsqrt(x, 64, false); + _22(out, part24); + const part25 = rs.u64DivCeil(x, y); + _22(out, part25); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.i64ToBeBytes(rs.i64Cast(x)))); } } } else if (_30 === 41) { rs.byteVecPush(out, 0); } else if (_30 === 42) { - const part10 = rs.precondition(rs.u64CheckedAdd(a, b), "u64::unchecked_add cannot overflow"); - _22(out, part10); + const part12 = rs.precondition(rs.u64CheckedAdd(a, b), "u64::unchecked_add cannot overflow"); + _22(out, part12); } else if (_30 === 43) { - const part9 = rs.precondition(rs.u64CheckedSub(a, b), "u64::unchecked_sub cannot overflow"); - _22(out, part9); + const part11 = rs.precondition(rs.u64CheckedSub(a, b), "u64::unchecked_sub cannot overflow"); + _22(out, part11); } else if (_30 === 44) { - const part8 = rs.precondition(rs.u64CheckedMul(a, b), "u64::unchecked_mul cannot overflow"); - _22(out, part8); + const part10 = rs.precondition(rs.u64CheckedMul(a, b), "u64::unchecked_mul cannot overflow"); + _22(out, part10); } else if (_30 === 45) { - const part7 = rs.precondition(rs.intCheckedShl(a, k, 64, false), "u64::unchecked_shl cannot overflow"); - _22(out, part7); + const part9 = rs.precondition(rs.intCheckedShl(a, k, 64, false), "u64::unchecked_shl cannot overflow"); + _22(out, part9); } else if (_30 === 46) { - const part6 = rs.precondition(rs.intCheckedShr(a, k, 64, false), "u64::unchecked_shr cannot overflow"); - _22(out, part6); + const part8 = rs.precondition(rs.intCheckedShr(a, k, 64, false), "u64::unchecked_shr cannot overflow"); + _22(out, part8); } else if (_30 === 47) { if (rs.u32Rem(k, 2) === 0) { - const part5 = rs.precondition(rs.intCheckedFunnelShl(a, b, k, 64, false), "u64::unchecked_funnel_shl cannot overflow"); - _22(out, part5); + const part7 = rs.precondition(rs.intCheckedFunnelShl(a, b, k, 64, false), "u64::unchecked_funnel_shl cannot overflow"); + _22(out, part7); } else { - const part4 = rs.precondition(rs.intCheckedFunnelShr(a, b, k, 64, false), "u64::unchecked_funnel_shr cannot overflow"); - _22(out, part4); + const part6 = rs.precondition(rs.intCheckedFunnelShr(a, b, k, 64, false), "u64::unchecked_funnel_shr cannot overflow"); + _22(out, part6); + } + } else if (_30 === 48) { + const part5 = rs.precondition(rs.nonZero(a), "NonZero::new_unchecked requires the argument to be non-zero"); + _22(out, part5); + } else if (_30 === 49) { + const _686: [rs.u64 | undefined, rs.u64 | undefined] = [rs.nonZero(a), rs.nonZero(b)]; + if (_686[0] !== undefined) { + if (_686[1] !== undefined) { + const part4 = rs.precondition(rs.u64CheckedMul(_686[0], _686[1]), "u64::unchecked_mul cannot overflow"); + _22(out, part4); + } } } else { - const part3 = rs.precondition(rs.nonZero(a), "NonZero::new_unchecked requires the argument to be non-zero"); - _22(out, part3); + const _698: rs.u64 | undefined = rs.nonZero(a); + if (_698 !== undefined) { + const part3 = rs.precondition(rs.u64CheckedAdd(_698, b), "u64::unchecked_add cannot overflow"); + _22(out, part3); + } } } @@ -1874,50 +1930,50 @@ export function u128s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { _27(out6, v10); } }; - const _30: rs.u8 = rs.u8Rem(kind, 49); + const _30: rs.u8 = rs.u8Rem(kind, 51); if (_30 === 0) { - const part90 = rs.u128CheckedAdd(a, b); - putOpt(out, part90); - const part91 = rs.u128CheckedSub(a, b); - putOpt(out, part91); - const part92 = rs.u128CheckedMul(a, b); + const part92 = rs.u128CheckedAdd(a, b); putOpt(out, part92); - const part93 = rs.u128SaturatingAdd(a, b); - _22(out, part93); - const part94 = rs.u128SaturatingSub(a, b); - _22(out, part94); - const part95 = rs.u128SaturatingMul(a, b); + const part93 = rs.u128CheckedSub(a, b); + putOpt(out, part93); + const part94 = rs.u128CheckedMul(a, b); + putOpt(out, part94); + const part95 = rs.u128SaturatingAdd(a, b); _22(out, part95); - const part96 = rs.u128WrappingAdd(a, b); + const part96 = rs.u128SaturatingSub(a, b); _22(out, part96); - const part97 = rs.u128WrappingSub(a, b); + const part97 = rs.u128SaturatingMul(a, b); _22(out, part97); - const part98 = rs.u128WrappingMul(a, b); + const part98 = rs.u128WrappingAdd(a, b); _22(out, part98); - const part99 = rs.intOverflowingAdd(a, b, 128, false); - putPair(out, part99); - const part100 = rs.intOverflowingSub(a, b, 128, false); - putPair(out, part100); - const part101 = rs.intOverflowingMul(a, b, 128, false); + const part99 = rs.u128WrappingSub(a, b); + _22(out, part99); + const part100 = rs.u128WrappingMul(a, b); + _22(out, part100); + const part101 = rs.intOverflowingAdd(a, b, 128, false); putPair(out, part101); - const part102 = rs.intMidpoint(a, b, 128, false); - _22(out, part102); - const part103 = rs.intCheckedAdd(a, o, 128, false); - putOpt(out, part103); - const part104 = rs.intCheckedSub(a, o, 128, false); - putOpt(out, part104); - const part105 = rs.intSaturatingAdd(a, o, 128, false); - _22(out, part105); - const part106 = rs.intSaturatingSub(a, o, 128, false); - _22(out, part106); - const part107 = rs.intWrappingAdd(a, o, 128, false); + const part102 = rs.intOverflowingSub(a, b, 128, false); + putPair(out, part102); + const part103 = rs.intOverflowingMul(a, b, 128, false); + putPair(out, part103); + const part104 = rs.intMidpoint(a, b, 128, false); + _22(out, part104); + const part105 = rs.intCheckedAdd(a, o, 128, false); + putOpt(out, part105); + const part106 = rs.intCheckedSub(a, o, 128, false); + putOpt(out, part106); + const part107 = rs.intSaturatingAdd(a, o, 128, false); _22(out, part107); - const part108 = rs.intWrappingSub(a, o, 128, false); + const part108 = rs.intSaturatingSub(a, o, 128, false); _22(out, part108); - const part109 = rs.intOverflowingAdd(a, o, 128, false); - putPair(out, part109); - const part110 = rs.intOverflowingSub(a, o, 128, false); - putPair(out, part110); + const part109 = rs.intWrappingAdd(a, o, 128, false); + _22(out, part109); + const part110 = rs.intWrappingSub(a, o, 128, false); + _22(out, part110); + const part111 = rs.intOverflowingAdd(a, o, 128, false); + putPair(out, part111); + const part112 = rs.intOverflowingSub(a, o, 128, false); + putPair(out, part112); const b2: rs.u128 = rs.u128Cast(o); const _118: rs.i128 | undefined = rs.intCheckedSignedDiff(a, b2, 128, false) as rs.i128 | undefined; if (_118 === undefined) { @@ -1932,10 +1988,10 @@ export function u128s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { break; } const carry: boolean = _127; - const part111 = rs.intCarryingAdd(a, b2, carry, 128, false); - putPair(out, part111); - const part112 = rs.intBorrowingSub(a, b2, carry, 128, false); - putPair(out, part112); + const part113 = rs.intCarryingAdd(a, b2, carry, 128, false); + putPair(out, part113); + const part114 = rs.intBorrowingSub(a, b2, carry, 128, false); + putPair(out, part114); } const _141: [rs.u128, rs.u128] = rs.intCarryingMul(a, b2, a, 128, false); const lo: rs.u128 = _141[0]; @@ -1947,34 +2003,34 @@ export function u128s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { const hi2: rs.u128 = _150[1]; _22(out, lo2); _22(out, hi2); - const part113 = rs.intCheckedNextMultipleOf(a, b2, 128, false); - putOpt(out, part113); + const part115 = rs.intCheckedNextMultipleOf(a, b2, 128, false); + putOpt(out, part115); } else if (_30 === 1) { - const part85 = rs.intCheckedDiv(a, b, 128, false); - putOpt(out, part85); - const part86 = rs.intCheckedRem(a, b, 128, false); - putOpt(out, part86); - const part87 = rs.intCheckedDivEuclid(a, b, 128, false); + const part87 = rs.intCheckedDiv(a, b, 128, false); putOpt(out, part87); - const part88 = rs.intCheckedRemEuclid(a, b, 128, false); + const part88 = rs.intCheckedRem(a, b, 128, false); putOpt(out, part88); + const part89 = rs.intCheckedDivEuclid(a, b, 128, false); + putOpt(out, part89); + const part90 = rs.intCheckedRemEuclid(a, b, 128, false); + putOpt(out, part90); if (b !== 0) { - const part89 = rs.u128DivCeil(a, b); - _22(out, part89); + const part91 = rs.u128DivCeil(a, b); + _22(out, part91); rs.byteVecPush(out, rs.u128IsMultipleOf(a, b) ? 1 : 0); } } else if (_30 === 2) { - const part80 = rs.intCheckedNeg(a, 128, false); - putOpt(out, part80); - const part81 = rs.intWrappingNeg(a, 128, false); - _22(out, part81); - const part82 = rs.intOverflowingNeg(a, 128, false); - putPair(out, part82); + const part82 = rs.intCheckedNeg(a, 128, false); + putOpt(out, part82); + const part83 = rs.intWrappingNeg(a, 128, false); + _22(out, part83); + const part84 = rs.intOverflowingNeg(a, 128, false); + putPair(out, part84); rs.byteVecPush(out, rs.intIsPowerOfTwo(a, 128, false) ? 1 : 0); - const part83 = rs.intCheckedNextPowerOfTwo(a, 128, false); - putOpt(out, part83); - const part84 = rs.intBitWidth(a, 128, false); - _27(out, part84); + const part85 = rs.intCheckedNextPowerOfTwo(a, 128, false); + putOpt(out, part85); + const part86 = rs.intBitWidth(a, 128, false); + _27(out, part86); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.i128ToBeBytes(rs.i128Cast(a)))); } else if (_30 === 3) { const iter2: rs.Iter = rs.iterSlice([n, k]); @@ -1984,14 +2040,14 @@ export function u128s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { break; } const e: rs.u32 = _216; - const part76 = rs.intCheckedPow(a, e, 128, false); - putOpt(out, part76); - const part77 = rs.intWrappingPow(a, e, 128, false); - _22(out, part77); - const part78 = rs.intSaturatingPow(a, e, 128, false); - _22(out, part78); - const part79 = rs.intOverflowingPow(a, e, 128, false); - putPair(out, part79); + const part78 = rs.intCheckedPow(a, e, 128, false); + putOpt(out, part78); + const part79 = rs.intWrappingPow(a, e, 128, false); + _22(out, part79); + const part80 = rs.intSaturatingPow(a, e, 128, false); + _22(out, part80); + const part81 = rs.intOverflowingPow(a, e, 128, false); + putPair(out, part81); } } else if (_30 === 4) { const iter3: rs.Iter = rs.iterSlice([n, k]); @@ -2001,26 +2057,26 @@ export function u128s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { break; } const s: rs.u32 = _239; - const part66 = rs.intCheckedShl(a, s, 128, false); - putOpt(out, part66); - const part67 = rs.intCheckedShr(a, s, 128, false); - putOpt(out, part67); - const part68 = rs.intWrappingShl(a, s, 128, false); - _22(out, part68); - const part69 = rs.intWrappingShr(a, s, 128, false); - _22(out, part69); - const part70 = rs.intOverflowingShl(a, s, 128, false); - putPair(out, part70); - const part71 = rs.intOverflowingShr(a, s, 128, false); - putPair(out, part71); - const part72 = rs.intUnboundedShl(a, s, 128, false); - _22(out, part72); - const part73 = rs.intUnboundedShr(a, s, 128, false); - _22(out, part73); - const part74 = rs.intRotateLeft(a, s, 128, false); + const part68 = rs.intCheckedShl(a, s, 128, false); + putOpt(out, part68); + const part69 = rs.intCheckedShr(a, s, 128, false); + putOpt(out, part69); + const part70 = rs.intWrappingShl(a, s, 128, false); + _22(out, part70); + const part71 = rs.intWrappingShr(a, s, 128, false); + _22(out, part71); + const part72 = rs.intOverflowingShl(a, s, 128, false); + putPair(out, part72); + const part73 = rs.intOverflowingShr(a, s, 128, false); + putPair(out, part73); + const part74 = rs.intUnboundedShl(a, s, 128, false); _22(out, part74); - const part75 = rs.intRotateRight(a, s, 128, false); + const part75 = rs.intUnboundedShr(a, s, 128, false); _22(out, part75); + const part76 = rs.intRotateLeft(a, s, 128, false); + _22(out, part76); + const part77 = rs.intRotateRight(a, s, 128, false); + _22(out, part77); } } else if (_30 === 5) { const iter4: rs.Iter = rs.iterSlice([rs.intCountOnes(a, 128, false), rs.intCountZeros(a, 128, false), rs.u128LeadingZeros(a), rs.u128TrailingZeros(a), rs.u128LeadingOnes(a), rs.intTrailingOnes(a, 128, false)]); @@ -2039,48 +2095,48 @@ export function u128s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } _22(out, _308); } - const part62 = rs.intHighestOne(a, 128, false); - putOptU32(out, part62); - const part63 = rs.intLowestOne(a, 128, false); - putOptU32(out, part63); - const part64 = rs.intIsolateHighestOne(a, 128, false); - _22(out, part64); - const part65 = rs.intIsolateLowestOne(a, 128, false); - _22(out, part65); + const part64 = rs.intHighestOne(a, 128, false); + putOptU32(out, part64); + const part65 = rs.intLowestOne(a, 128, false); + putOptU32(out, part65); + const part66 = rs.intIsolateHighestOne(a, 128, false); + _22(out, part66); + const part67 = rs.intIsolateLowestOne(a, 128, false); + _22(out, part67); _22(out, { hi: 0xffffffff, w2: 0xffffffff, w1: 0xffffffff, lo: 0xffffffff } as rs.u128); _22(out, 0); } else if (_30 === 6) { - const part59 = rs.intCheckedIlog(a, b, 128, false); - putOptU32(out, part59); - const part60 = rs.intCheckedIlog2(a, 128, false); - putOptU32(out, part60); - const part61 = rs.intCheckedIlog10(a, 128, false); + const part61 = rs.intCheckedIlog(a, b, 128, false); putOptU32(out, part61); + const part62 = rs.intCheckedIlog2(a, 128, false); + putOptU32(out, part62); + const part63 = rs.intCheckedIlog10(a, 128, false); + putOptU32(out, part63); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.u128ToBeBytes(rs.intAbsDiff(a, b, 128, false) as rs.u128))); } else if (_30 === 7) { - const part58 = rs.intPow(a, k, 128, false); - _22(out, part58); + const part60 = rs.intPow(a, k, 128, false); + _22(out, part60); } else if (_30 === 8) { - const part57 = rs.intPow(a, n, 128, false); - _22(out, part57); + const part59 = rs.intPow(a, n, 128, false); + _22(out, part59); } else if (_30 === 9) { - const part56 = rs.intDivEuclid(a, b, 128, false); - _22(out, part56); + const part58 = rs.intDivEuclid(a, b, 128, false); + _22(out, part58); } else if (_30 === 10) { - const part55 = rs.intRemEuclid(a, b, 128, false); - _22(out, part55); + const part57 = rs.intRemEuclid(a, b, 128, false); + _22(out, part57); } else if (_30 === 11) { - const part54 = rs.intIsqrt(a, 128, false); - _22(out, part54); + const part56 = rs.intIsqrt(a, 128, false); + _22(out, part56); } else if (_30 === 12) { - const part53 = rs.intIlog(a, b, 128, false); - _27(out, part53); + const part55 = rs.intIlog(a, b, 128, false); + _27(out, part55); } else if (_30 === 13) { - const part52 = rs.intIlog2(a, 128, false); - _27(out, part52); + const part54 = rs.intIlog2(a, 128, false); + _27(out, part54); } else if (_30 === 14) { - const part51 = rs.intIlog10(a, 128, false); - _27(out, part51); + const part53 = rs.intIlog10(a, 128, false); + _27(out, part53); } else if (_30 === 15) { _22(out, rs.u128Add(a, b)); } else if (_30 === 16) { @@ -2092,65 +2148,65 @@ export function u128s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } else if (_30 === 19) { _22(out, rs.u128Rem(a, b)); } else if (_30 === 20) { - const part45 = rs.intStrictNeg(a, 128, false); - _22(out, part45); + const part47 = rs.intStrictNeg(a, 128, false); + _22(out, part47); } else if (_30 === 21) { _22(out, rs.u128Shl(a, k)); } else if (_30 === 22) { _22(out, rs.u128Shr(a, k)); } else if (_30 === 23) { - const part42 = rs.intPow(a, k, 128, false); - _22(out, part42); + const part44 = rs.intPow(a, k, 128, false); + _22(out, part44); } else if (_30 === 24) { - const part41 = rs.intDivEuclid(a, b, 128, false); - _22(out, part41); + const part43 = rs.intDivEuclid(a, b, 128, false); + _22(out, part43); } else if (_30 === 25) { - const part40 = rs.intRemEuclid(a, b, 128, false); - _22(out, part40); + const part42 = rs.intRemEuclid(a, b, 128, false); + _22(out, part42); } else if (_30 === 26) { - const part39 = rs.intStrictAdd(a, o, 128, false); - _22(out, part39); + const part41 = rs.intStrictAdd(a, o, 128, false); + _22(out, part41); } else if (_30 === 27) { - const part38 = rs.intStrictSub(a, o, 128, false); - _22(out, part38); + const part40 = rs.intStrictSub(a, o, 128, false); + _22(out, part40); } else if (_30 === 28) { _22(out, rs.u128Div(a, b)); } else if (_30 === 29) { _22(out, rs.u128Rem(a, b)); } else if (_30 === 30) { - const part35 = rs.intWrappingDivEuclid(a, b, 128, false); - _22(out, part35); + const part37 = rs.intWrappingDivEuclid(a, b, 128, false); + _22(out, part37); } else if (_30 === 31) { - const part34 = rs.intWrappingRemEuclid(a, b, 128, false); - _22(out, part34); + const part36 = rs.intWrappingRemEuclid(a, b, 128, false); + _22(out, part36); } else if (_30 === 32) { - const part33 = rs.intOverflowingDiv(a, b, 128, false); - putPair(out, part33); + const part35 = rs.intOverflowingDiv(a, b, 128, false); + putPair(out, part35); } else if (_30 === 33) { - const part32 = rs.intOverflowingRem(a, b, 128, false); - putPair(out, part32); + const part34 = rs.intOverflowingRem(a, b, 128, false); + putPair(out, part34); } else if (_30 === 34) { - const part31 = rs.intOverflowingDivEuclid(a, b, 128, false); - putPair(out, part31); + const part33 = rs.intOverflowingDivEuclid(a, b, 128, false); + putPair(out, part33); } else if (_30 === 35) { - const part30 = rs.intOverflowingRemEuclid(a, b, 128, false); - putPair(out, part30); + const part32 = rs.intOverflowingRemEuclid(a, b, 128, false); + putPair(out, part32); } else if (_30 === 36) { _22(out, rs.u128Div(a, b)); } else if (_30 === 37) { - const part28 = rs.intNextPowerOfTwo(a, 128, false); - _22(out, part28); + const part30 = rs.intNextPowerOfTwo(a, 128, false); + _22(out, part30); } else if (_30 === 38) { const _449: rs.u32 = rs.u32Rem(k, 3); if (_449 === 0) { - const part27 = rs.intNextMultipleOf(a, b, 128, false); - _22(out, part27); + const part29 = rs.intNextMultipleOf(a, b, 128, false); + _22(out, part29); } else if (_449 === 1) { - const part26 = rs.intFunnelShl(a, b, k, 128, false); - _22(out, part26); + const part28 = rs.intFunnelShl(a, b, k, 128, false); + _22(out, part28); } else { - const part25 = rs.intFunnelShr(a, b, k, 128, false); - _22(out, part25); + const part27 = rs.intFunnelShr(a, b, k, 128, false); + _22(out, part27); } } else if (_30 === 39) { const s2: rs.u128 = a; @@ -2188,8 +2244,8 @@ export function u128s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { _22(out, _527); } rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(Uint8Array.of(rs.intIsPowerOfTwo(s2, 128, false) ? 1 : 0, rs.intIsPowerOfTwo(w, 128, false) ? 1 : 0))); - const part24 = rs.intWrappingNextPowerOfTwo(w, 128, false); - _22(out, part24); + const part26 = rs.intWrappingNextPowerOfTwo(w, 128, false); + _22(out, part26); } else if (_30 === 40) { const _548: [rs.u128 | undefined, rs.u128 | undefined] = [rs.nonZero(a), rs.nonZero(b)]; if (_548[0] !== undefined) { @@ -2204,37 +2260,37 @@ export function u128s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } _27(out, _564); } - const part11 = option_map$1x2mrlk(rs.u128CheckedMul(x, y), (a0: rs.u128): rs.u128 => { + const part13 = option_map$1x2mrlk(rs.u128CheckedMul(x, y), (a0: rs.u128): rs.u128 => { return a0; }); - putOpt(out, part11); - const part12 = rs.u128SaturatingMul(x, y); - _22(out, part12); - const part13 = option_map$1x2mrlk(rs.intCheckedPow(x, k, 128, false), (a02: rs.u128): rs.u128 => { + putOpt(out, part13); + const part14 = rs.u128SaturatingMul(x, y); + _22(out, part14); + const part15 = option_map$1x2mrlk(rs.intCheckedPow(x, k, 128, false), (a02: rs.u128): rs.u128 => { return a02; }); - putOpt(out, part13); - const part14 = option_map$1x2mrlk(rs.intCheckedPow(x, n, 128, false), (a03: rs.u128): rs.u128 => { + putOpt(out, part15); + const part16 = option_map$1x2mrlk(rs.intCheckedPow(x, n, 128, false), (a03: rs.u128): rs.u128 => { return a03; }); - putOpt(out, part14); - const part15 = rs.intSaturatingPow(x, k, 128, false); - _22(out, part15); - const part16 = rs.intIsolateHighestOne(x, 128, false); - _22(out, part16); - const part17 = rs.intIsolateLowestOne(x, 128, false); + putOpt(out, part16); + const part17 = rs.intSaturatingPow(x, k, 128, false); _22(out, part17); + const part18 = rs.intIsolateHighestOne(x, 128, false); + _22(out, part18); + const part19 = rs.intIsolateLowestOne(x, 128, false); + _22(out, part19); rs.byteVecPush(out, rs.intIsPowerOfTwo(x, 128, false) ? 1 : 0); - const part18 = option_map$1x2mrlk(rs.u128CheckedAdd(x, b), (a04: rs.u128): rs.u128 => { + const part20 = option_map$1x2mrlk(rs.u128CheckedAdd(x, b), (a04: rs.u128): rs.u128 => { return a04; }); - putOpt(out, part18); - const part19 = rs.u128SaturatingAdd(x, b); - _22(out, part19); - const part20 = option_map$1x2mrlk(rs.intCheckedNextPowerOfTwo(x, 128, false), (a05: rs.u128): rs.u128 => { + putOpt(out, part20); + const part21 = rs.u128SaturatingAdd(x, b); + _22(out, part21); + const part22 = option_map$1x2mrlk(rs.intCheckedNextPowerOfTwo(x, 128, false), (a05: rs.u128): rs.u128 => { return a05; }); - putOpt(out, part20); + putOpt(out, part22); const iter11: rs.Iter = rs.iterSlice([rs.intIlog2(x, 128, false), rs.intIlog10(x, 128, false), rs.intBitWidth(x, 128, false)]); while (true) { const _631: rs.u32 | rs.Done = iter11.next(); @@ -2243,43 +2299,57 @@ export function u128s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } _27(out, _631); } - const part21 = rs.intMidpoint(x, y, 128, false); - _22(out, part21); - const part22 = rs.intIsqrt(x, 128, false); - _22(out, part22); - const part23 = rs.u128DivCeil(x, y); + const part23 = rs.intMidpoint(x, y, 128, false); _22(out, part23); + const part24 = rs.intIsqrt(x, 128, false); + _22(out, part24); + const part25 = rs.u128DivCeil(x, y); + _22(out, part25); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.i128ToBeBytes(rs.i128Cast(x)))); } } } else if (_30 === 41) { rs.byteVecPush(out, 0); } else if (_30 === 42) { - const part10 = rs.precondition(rs.u128CheckedAdd(a, b), "u128::unchecked_add cannot overflow"); - _22(out, part10); + const part12 = rs.precondition(rs.u128CheckedAdd(a, b), "u128::unchecked_add cannot overflow"); + _22(out, part12); } else if (_30 === 43) { - const part9 = rs.precondition(rs.u128CheckedSub(a, b), "u128::unchecked_sub cannot overflow"); - _22(out, part9); + const part11 = rs.precondition(rs.u128CheckedSub(a, b), "u128::unchecked_sub cannot overflow"); + _22(out, part11); } else if (_30 === 44) { - const part8 = rs.precondition(rs.u128CheckedMul(a, b), "u128::unchecked_mul cannot overflow"); - _22(out, part8); + const part10 = rs.precondition(rs.u128CheckedMul(a, b), "u128::unchecked_mul cannot overflow"); + _22(out, part10); } else if (_30 === 45) { - const part7 = rs.precondition(rs.intCheckedShl(a, k, 128, false), "u128::unchecked_shl cannot overflow"); - _22(out, part7); + const part9 = rs.precondition(rs.intCheckedShl(a, k, 128, false), "u128::unchecked_shl cannot overflow"); + _22(out, part9); } else if (_30 === 46) { - const part6 = rs.precondition(rs.intCheckedShr(a, k, 128, false), "u128::unchecked_shr cannot overflow"); - _22(out, part6); + const part8 = rs.precondition(rs.intCheckedShr(a, k, 128, false), "u128::unchecked_shr cannot overflow"); + _22(out, part8); } else if (_30 === 47) { if (rs.u32Rem(k, 2) === 0) { - const part5 = rs.precondition(rs.intCheckedFunnelShl(a, b, k, 128, false), "u128::unchecked_funnel_shl cannot overflow"); - _22(out, part5); + const part7 = rs.precondition(rs.intCheckedFunnelShl(a, b, k, 128, false), "u128::unchecked_funnel_shl cannot overflow"); + _22(out, part7); } else { - const part4 = rs.precondition(rs.intCheckedFunnelShr(a, b, k, 128, false), "u128::unchecked_funnel_shr cannot overflow"); - _22(out, part4); + const part6 = rs.precondition(rs.intCheckedFunnelShr(a, b, k, 128, false), "u128::unchecked_funnel_shr cannot overflow"); + _22(out, part6); + } + } else if (_30 === 48) { + const part5 = rs.precondition(rs.nonZero(a), "NonZero::new_unchecked requires the argument to be non-zero"); + _22(out, part5); + } else if (_30 === 49) { + const _686: [rs.u128 | undefined, rs.u128 | undefined] = [rs.nonZero(a), rs.nonZero(b)]; + if (_686[0] !== undefined) { + if (_686[1] !== undefined) { + const part4 = rs.precondition(rs.u128CheckedMul(_686[0], _686[1]), "u128::unchecked_mul cannot overflow"); + _22(out, part4); + } } } else { - const part3 = rs.precondition(rs.nonZero(a), "NonZero::new_unchecked requires the argument to be non-zero"); - _22(out, part3); + const _698: rs.u128 | undefined = rs.nonZero(a); + if (_698 !== undefined) { + const part3 = rs.precondition(rs.u128CheckedAdd(_698, b), "u128::unchecked_add cannot overflow"); + _22(out, part3); + } } } @@ -2330,50 +2400,50 @@ export function usizes(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { _27(out6, v10); } }; - const _30: rs.u8 = rs.u8Rem(kind, 49); + const _30: rs.u8 = rs.u8Rem(kind, 51); if (_30 === 0) { - const part90 = rs.usizeCheckedAdd(a, b); - putOpt(out, part90); - const part91 = rs.usizeCheckedSub(a, b); - putOpt(out, part91); - const part92 = rs.usizeCheckedMul(a, b); + const part92 = rs.usizeCheckedAdd(a, b); putOpt(out, part92); - const part93 = rs.usizeSaturatingAdd(a, b); - _22(out, part93); - const part94 = rs.usizeSaturatingSub(a, b); - _22(out, part94); - const part95 = rs.usizeSaturatingMul(a, b); + const part93 = rs.usizeCheckedSub(a, b); + putOpt(out, part93); + const part94 = rs.usizeCheckedMul(a, b); + putOpt(out, part94); + const part95 = rs.usizeSaturatingAdd(a, b); _22(out, part95); - const part96 = rs.usizeWrappingAdd(a, b); + const part96 = rs.usizeSaturatingSub(a, b); _22(out, part96); - const part97 = rs.usizeWrappingSub(a, b); + const part97 = rs.usizeSaturatingMul(a, b); _22(out, part97); - const part98 = rs.usizeWrappingMul(a, b); + const part98 = rs.usizeWrappingAdd(a, b); _22(out, part98); - const part99 = rs.intOverflowingAdd(a, b, 32, false); - putPair(out, part99); - const part100 = rs.intOverflowingSub(a, b, 32, false); - putPair(out, part100); - const part101 = rs.intOverflowingMul(a, b, 32, false); + const part99 = rs.usizeWrappingSub(a, b); + _22(out, part99); + const part100 = rs.usizeWrappingMul(a, b); + _22(out, part100); + const part101 = rs.intOverflowingAdd(a, b, 32, false); putPair(out, part101); - const part102 = rs.intMidpoint(a, b, 32, false); - _22(out, part102); - const part103 = rs.intCheckedAdd(a, o, 32, false); - putOpt(out, part103); - const part104 = rs.intCheckedSub(a, o, 32, false); - putOpt(out, part104); - const part105 = rs.intSaturatingAdd(a, o, 32, false); - _22(out, part105); - const part106 = rs.intSaturatingSub(a, o, 32, false); - _22(out, part106); - const part107 = rs.intWrappingAdd(a, o, 32, false); + const part102 = rs.intOverflowingSub(a, b, 32, false); + putPair(out, part102); + const part103 = rs.intOverflowingMul(a, b, 32, false); + putPair(out, part103); + const part104 = rs.intMidpoint(a, b, 32, false); + _22(out, part104); + const part105 = rs.intCheckedAdd(a, o, 32, false); + putOpt(out, part105); + const part106 = rs.intCheckedSub(a, o, 32, false); + putOpt(out, part106); + const part107 = rs.intSaturatingAdd(a, o, 32, false); _22(out, part107); - const part108 = rs.intWrappingSub(a, o, 32, false); + const part108 = rs.intSaturatingSub(a, o, 32, false); _22(out, part108); - const part109 = rs.intOverflowingAdd(a, o, 32, false); - putPair(out, part109); - const part110 = rs.intOverflowingSub(a, o, 32, false); - putPair(out, part110); + const part109 = rs.intWrappingAdd(a, o, 32, false); + _22(out, part109); + const part110 = rs.intWrappingSub(a, o, 32, false); + _22(out, part110); + const part111 = rs.intOverflowingAdd(a, o, 32, false); + putPair(out, part111); + const part112 = rs.intOverflowingSub(a, o, 32, false); + putPair(out, part112); const b2: rs.usize = o >>> 0; const _118: rs.isize | undefined = rs.intCheckedSignedDiff(a, b2, 32, false) as rs.isize | undefined; if (_118 === undefined) { @@ -2388,10 +2458,10 @@ export function usizes(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { break; } const carry: boolean = _127; - const part111 = rs.intCarryingAdd(a, b2, carry, 32, false); - putPair(out, part111); - const part112 = rs.intBorrowingSub(a, b2, carry, 32, false); - putPair(out, part112); + const part113 = rs.intCarryingAdd(a, b2, carry, 32, false); + putPair(out, part113); + const part114 = rs.intBorrowingSub(a, b2, carry, 32, false); + putPair(out, part114); } const _141: [rs.usize, rs.usize] = rs.intCarryingMul(a, b2, a, 32, false); const lo: rs.usize = _141[0]; @@ -2403,34 +2473,34 @@ export function usizes(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { const hi2: rs.usize = _150[1]; _22(out, lo2); _22(out, hi2); - const part113 = rs.intCheckedNextMultipleOf(a, b2, 32, false); - putOpt(out, part113); + const part115 = rs.intCheckedNextMultipleOf(a, b2, 32, false); + putOpt(out, part115); } else if (_30 === 1) { - const part85 = rs.intCheckedDiv(a, b, 32, false); - putOpt(out, part85); - const part86 = rs.intCheckedRem(a, b, 32, false); - putOpt(out, part86); - const part87 = rs.intCheckedDivEuclid(a, b, 32, false); + const part87 = rs.intCheckedDiv(a, b, 32, false); putOpt(out, part87); - const part88 = rs.intCheckedRemEuclid(a, b, 32, false); + const part88 = rs.intCheckedRem(a, b, 32, false); putOpt(out, part88); + const part89 = rs.intCheckedDivEuclid(a, b, 32, false); + putOpt(out, part89); + const part90 = rs.intCheckedRemEuclid(a, b, 32, false); + putOpt(out, part90); if (b !== 0) { - const part89 = rs.usizeDivCeil(a, b); - _22(out, part89); + const part91 = rs.usizeDivCeil(a, b); + _22(out, part91); rs.byteVecPush(out, rs.usizeIsMultipleOf(a, b) ? 1 : 0); } } else if (_30 === 2) { - const part80 = rs.intCheckedNeg(a, 32, false); - putOpt(out, part80); - const part81 = rs.intWrappingNeg(a, 32, false); - _22(out, part81); - const part82 = rs.intOverflowingNeg(a, 32, false); - putPair(out, part82); + const part82 = rs.intCheckedNeg(a, 32, false); + putOpt(out, part82); + const part83 = rs.intWrappingNeg(a, 32, false); + _22(out, part83); + const part84 = rs.intOverflowingNeg(a, 32, false); + putPair(out, part84); rs.byteVecPush(out, rs.intIsPowerOfTwo(a, 32, false) ? 1 : 0); - const part83 = rs.intCheckedNextPowerOfTwo(a, 32, false); - putOpt(out, part83); - const part84 = rs.intBitWidth(a, 32, false); - _27(out, part84); + const part85 = rs.intCheckedNextPowerOfTwo(a, 32, false); + putOpt(out, part85); + const part86 = rs.intBitWidth(a, 32, false); + _27(out, part86); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.isizeToBeBytes(a | 0))); } else if (_30 === 3) { const iter2: rs.Iter = rs.iterSlice([n, k]); @@ -2440,14 +2510,14 @@ export function usizes(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { break; } const e: rs.u32 = _216; - const part76 = rs.intCheckedPow(a, e, 32, false); - putOpt(out, part76); - const part77 = rs.intWrappingPow(a, e, 32, false); - _22(out, part77); - const part78 = rs.intSaturatingPow(a, e, 32, false); - _22(out, part78); - const part79 = rs.intOverflowingPow(a, e, 32, false); - putPair(out, part79); + const part78 = rs.intCheckedPow(a, e, 32, false); + putOpt(out, part78); + const part79 = rs.intWrappingPow(a, e, 32, false); + _22(out, part79); + const part80 = rs.intSaturatingPow(a, e, 32, false); + _22(out, part80); + const part81 = rs.intOverflowingPow(a, e, 32, false); + putPair(out, part81); } } else if (_30 === 4) { const iter3: rs.Iter = rs.iterSlice([n, k]); @@ -2457,26 +2527,26 @@ export function usizes(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { break; } const s: rs.u32 = _239; - const part66 = rs.intCheckedShl(a, s, 32, false); - putOpt(out, part66); - const part67 = rs.intCheckedShr(a, s, 32, false); - putOpt(out, part67); - const part68 = rs.intWrappingShl(a, s, 32, false); - _22(out, part68); - const part69 = rs.intWrappingShr(a, s, 32, false); - _22(out, part69); - const part70 = rs.intOverflowingShl(a, s, 32, false); - putPair(out, part70); - const part71 = rs.intOverflowingShr(a, s, 32, false); - putPair(out, part71); - const part72 = rs.intUnboundedShl(a, s, 32, false); - _22(out, part72); - const part73 = rs.intUnboundedShr(a, s, 32, false); - _22(out, part73); - const part74 = rs.intRotateLeft(a, s, 32, false); + const part68 = rs.intCheckedShl(a, s, 32, false); + putOpt(out, part68); + const part69 = rs.intCheckedShr(a, s, 32, false); + putOpt(out, part69); + const part70 = rs.intWrappingShl(a, s, 32, false); + _22(out, part70); + const part71 = rs.intWrappingShr(a, s, 32, false); + _22(out, part71); + const part72 = rs.intOverflowingShl(a, s, 32, false); + putPair(out, part72); + const part73 = rs.intOverflowingShr(a, s, 32, false); + putPair(out, part73); + const part74 = rs.intUnboundedShl(a, s, 32, false); _22(out, part74); - const part75 = rs.intRotateRight(a, s, 32, false); + const part75 = rs.intUnboundedShr(a, s, 32, false); _22(out, part75); + const part76 = rs.intRotateLeft(a, s, 32, false); + _22(out, part76); + const part77 = rs.intRotateRight(a, s, 32, false); + _22(out, part77); } } else if (_30 === 5) { const iter4: rs.Iter = rs.iterSlice([rs.intCountOnes(a, 32, false), rs.intCountZeros(a, 32, false), rs.usizeLeadingZeros(a), rs.usizeTrailingZeros(a), rs.usizeLeadingOnes(a), rs.intTrailingOnes(a, 32, false)]); @@ -2495,48 +2565,48 @@ export function usizes(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } _22(out, _308); } - const part62 = rs.intHighestOne(a, 32, false); - putOptU32(out, part62); - const part63 = rs.intLowestOne(a, 32, false); - putOptU32(out, part63); - const part64 = rs.intIsolateHighestOne(a, 32, false); - _22(out, part64); - const part65 = rs.intIsolateLowestOne(a, 32, false); - _22(out, part65); + const part64 = rs.intHighestOne(a, 32, false); + putOptU32(out, part64); + const part65 = rs.intLowestOne(a, 32, false); + putOptU32(out, part65); + const part66 = rs.intIsolateHighestOne(a, 32, false); + _22(out, part66); + const part67 = rs.intIsolateLowestOne(a, 32, false); + _22(out, part67); _22(out, 4294967295); _22(out, 0); } else if (_30 === 6) { - const part59 = rs.intCheckedIlog(a, b, 32, false); - putOptU32(out, part59); - const part60 = rs.intCheckedIlog2(a, 32, false); - putOptU32(out, part60); - const part61 = rs.intCheckedIlog10(a, 32, false); + const part61 = rs.intCheckedIlog(a, b, 32, false); putOptU32(out, part61); + const part62 = rs.intCheckedIlog2(a, 32, false); + putOptU32(out, part62); + const part63 = rs.intCheckedIlog10(a, 32, false); + putOptU32(out, part63); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.usizeToBeBytes(rs.intAbsDiff(a, b, 32, false) as rs.usize))); } else if (_30 === 7) { - const part58 = rs.intPow(a, k, 32, false); - _22(out, part58); + const part60 = rs.intPow(a, k, 32, false); + _22(out, part60); } else if (_30 === 8) { - const part57 = rs.intPow(a, n, 32, false); - _22(out, part57); + const part59 = rs.intPow(a, n, 32, false); + _22(out, part59); } else if (_30 === 9) { - const part56 = rs.intDivEuclid(a, b, 32, false); - _22(out, part56); + const part58 = rs.intDivEuclid(a, b, 32, false); + _22(out, part58); } else if (_30 === 10) { - const part55 = rs.intRemEuclid(a, b, 32, false); - _22(out, part55); + const part57 = rs.intRemEuclid(a, b, 32, false); + _22(out, part57); } else if (_30 === 11) { - const part54 = rs.intIsqrt(a, 32, false); - _22(out, part54); + const part56 = rs.intIsqrt(a, 32, false); + _22(out, part56); } else if (_30 === 12) { - const part53 = rs.intIlog(a, b, 32, false); - _27(out, part53); + const part55 = rs.intIlog(a, b, 32, false); + _27(out, part55); } else if (_30 === 13) { - const part52 = rs.intIlog2(a, 32, false); - _27(out, part52); + const part54 = rs.intIlog2(a, 32, false); + _27(out, part54); } else if (_30 === 14) { - const part51 = rs.intIlog10(a, 32, false); - _27(out, part51); + const part53 = rs.intIlog10(a, 32, false); + _27(out, part53); } else if (_30 === 15) { _22(out, rs.usizeAdd(a, b)); } else if (_30 === 16) { @@ -2548,65 +2618,65 @@ export function usizes(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } else if (_30 === 19) { _22(out, rs.usizeRem(a, b)); } else if (_30 === 20) { - const part45 = rs.intStrictNeg(a, 32, false); - _22(out, part45); + const part47 = rs.intStrictNeg(a, 32, false); + _22(out, part47); } else if (_30 === 21) { _22(out, rs.usizeShl(a, k)); } else if (_30 === 22) { _22(out, rs.usizeShr(a, k)); } else if (_30 === 23) { - const part42 = rs.intPow(a, k, 32, false); - _22(out, part42); + const part44 = rs.intPow(a, k, 32, false); + _22(out, part44); } else if (_30 === 24) { - const part41 = rs.intDivEuclid(a, b, 32, false); - _22(out, part41); + const part43 = rs.intDivEuclid(a, b, 32, false); + _22(out, part43); } else if (_30 === 25) { - const part40 = rs.intRemEuclid(a, b, 32, false); - _22(out, part40); + const part42 = rs.intRemEuclid(a, b, 32, false); + _22(out, part42); } else if (_30 === 26) { - const part39 = rs.intStrictAdd(a, o, 32, false); - _22(out, part39); + const part41 = rs.intStrictAdd(a, o, 32, false); + _22(out, part41); } else if (_30 === 27) { - const part38 = rs.intStrictSub(a, o, 32, false); - _22(out, part38); + const part40 = rs.intStrictSub(a, o, 32, false); + _22(out, part40); } else if (_30 === 28) { _22(out, rs.usizeDiv(a, b)); } else if (_30 === 29) { _22(out, rs.usizeRem(a, b)); } else if (_30 === 30) { - const part35 = rs.intWrappingDivEuclid(a, b, 32, false); - _22(out, part35); + const part37 = rs.intWrappingDivEuclid(a, b, 32, false); + _22(out, part37); } else if (_30 === 31) { - const part34 = rs.intWrappingRemEuclid(a, b, 32, false); - _22(out, part34); + const part36 = rs.intWrappingRemEuclid(a, b, 32, false); + _22(out, part36); } else if (_30 === 32) { - const part33 = rs.intOverflowingDiv(a, b, 32, false); - putPair(out, part33); + const part35 = rs.intOverflowingDiv(a, b, 32, false); + putPair(out, part35); } else if (_30 === 33) { - const part32 = rs.intOverflowingRem(a, b, 32, false); - putPair(out, part32); + const part34 = rs.intOverflowingRem(a, b, 32, false); + putPair(out, part34); } else if (_30 === 34) { - const part31 = rs.intOverflowingDivEuclid(a, b, 32, false); - putPair(out, part31); + const part33 = rs.intOverflowingDivEuclid(a, b, 32, false); + putPair(out, part33); } else if (_30 === 35) { - const part30 = rs.intOverflowingRemEuclid(a, b, 32, false); - putPair(out, part30); + const part32 = rs.intOverflowingRemEuclid(a, b, 32, false); + putPair(out, part32); } else if (_30 === 36) { _22(out, rs.usizeDiv(a, b)); } else if (_30 === 37) { - const part28 = rs.intNextPowerOfTwo(a, 32, false); - _22(out, part28); + const part30 = rs.intNextPowerOfTwo(a, 32, false); + _22(out, part30); } else if (_30 === 38) { const _449: rs.u32 = rs.u32Rem(k, 3); if (_449 === 0) { - const part27 = rs.intNextMultipleOf(a, b, 32, false); - _22(out, part27); + const part29 = rs.intNextMultipleOf(a, b, 32, false); + _22(out, part29); } else if (_449 === 1) { - const part26 = rs.intFunnelShl(a, b, k, 32, false); - _22(out, part26); + const part28 = rs.intFunnelShl(a, b, k, 32, false); + _22(out, part28); } else { - const part25 = rs.intFunnelShr(a, b, k, 32, false); - _22(out, part25); + const part27 = rs.intFunnelShr(a, b, k, 32, false); + _22(out, part27); } } else if (_30 === 39) { const s2: rs.usize = a; @@ -2644,8 +2714,8 @@ export function usizes(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { _22(out, _527); } rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(Uint8Array.of(rs.intIsPowerOfTwo(s2, 32, false) ? 1 : 0, rs.intIsPowerOfTwo(w, 32, false) ? 1 : 0))); - const part24 = rs.intWrappingNextPowerOfTwo(w, 32, false); - _22(out, part24); + const part26 = rs.intWrappingNextPowerOfTwo(w, 32, false); + _22(out, part26); } else if (_30 === 40) { const _548: [rs.usize | undefined, rs.usize | undefined] = [rs.nonZero(a), rs.nonZero(b)]; if (_548[0] !== undefined) { @@ -2660,37 +2730,37 @@ export function usizes(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } _27(out, _564); } - const part11 = option_map$07b2cw7(rs.usizeCheckedMul(x, y), (a0: rs.usize): rs.usize => { + const part13 = option_map$07b2cw7(rs.usizeCheckedMul(x, y), (a0: rs.usize): rs.usize => { return a0; }); - putOpt(out, part11); - const part12 = rs.usizeSaturatingMul(x, y); - _22(out, part12); - const part13 = option_map$07b2cw7(rs.intCheckedPow(x, k, 32, false), (a02: rs.usize): rs.usize => { + putOpt(out, part13); + const part14 = rs.usizeSaturatingMul(x, y); + _22(out, part14); + const part15 = option_map$07b2cw7(rs.intCheckedPow(x, k, 32, false), (a02: rs.usize): rs.usize => { return a02; }); - putOpt(out, part13); - const part14 = option_map$07b2cw7(rs.intCheckedPow(x, n, 32, false), (a03: rs.usize): rs.usize => { + putOpt(out, part15); + const part16 = option_map$07b2cw7(rs.intCheckedPow(x, n, 32, false), (a03: rs.usize): rs.usize => { return a03; }); - putOpt(out, part14); - const part15 = rs.intSaturatingPow(x, k, 32, false); - _22(out, part15); - const part16 = rs.intIsolateHighestOne(x, 32, false); - _22(out, part16); - const part17 = rs.intIsolateLowestOne(x, 32, false); + putOpt(out, part16); + const part17 = rs.intSaturatingPow(x, k, 32, false); _22(out, part17); + const part18 = rs.intIsolateHighestOne(x, 32, false); + _22(out, part18); + const part19 = rs.intIsolateLowestOne(x, 32, false); + _22(out, part19); rs.byteVecPush(out, rs.intIsPowerOfTwo(x, 32, false) ? 1 : 0); - const part18 = option_map$07b2cw7(rs.usizeCheckedAdd(x, b), (a04: rs.usize): rs.usize => { + const part20 = option_map$07b2cw7(rs.usizeCheckedAdd(x, b), (a04: rs.usize): rs.usize => { return a04; }); - putOpt(out, part18); - const part19 = rs.usizeSaturatingAdd(x, b); - _22(out, part19); - const part20 = option_map$07b2cw7(rs.intCheckedNextPowerOfTwo(x, 32, false), (a05: rs.usize): rs.usize => { + putOpt(out, part20); + const part21 = rs.usizeSaturatingAdd(x, b); + _22(out, part21); + const part22 = option_map$07b2cw7(rs.intCheckedNextPowerOfTwo(x, 32, false), (a05: rs.usize): rs.usize => { return a05; }); - putOpt(out, part20); + putOpt(out, part22); const iter11: rs.Iter = rs.iterSlice([rs.intIlog2(x, 32, false), rs.intIlog10(x, 32, false), rs.intBitWidth(x, 32, false)]); while (true) { const _631: rs.u32 | rs.Done = iter11.next(); @@ -2699,43 +2769,57 @@ export function usizes(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } _27(out, _631); } - const part21 = rs.intMidpoint(x, y, 32, false); - _22(out, part21); - const part22 = rs.intIsqrt(x, 32, false); - _22(out, part22); - const part23 = rs.usizeDivCeil(x, y); + const part23 = rs.intMidpoint(x, y, 32, false); _22(out, part23); + const part24 = rs.intIsqrt(x, 32, false); + _22(out, part24); + const part25 = rs.usizeDivCeil(x, y); + _22(out, part25); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.isizeToBeBytes(x | 0))); } } } else if (_30 === 41) { rs.byteVecPush(out, 0); } else if (_30 === 42) { - const part10 = rs.precondition(rs.usizeCheckedAdd(a, b), "usize::unchecked_add cannot overflow"); - _22(out, part10); + const part12 = rs.precondition(rs.usizeCheckedAdd(a, b), "usize::unchecked_add cannot overflow"); + _22(out, part12); } else if (_30 === 43) { - const part9 = rs.precondition(rs.usizeCheckedSub(a, b), "usize::unchecked_sub cannot overflow"); - _22(out, part9); + const part11 = rs.precondition(rs.usizeCheckedSub(a, b), "usize::unchecked_sub cannot overflow"); + _22(out, part11); } else if (_30 === 44) { - const part8 = rs.precondition(rs.usizeCheckedMul(a, b), "usize::unchecked_mul cannot overflow"); - _22(out, part8); + const part10 = rs.precondition(rs.usizeCheckedMul(a, b), "usize::unchecked_mul cannot overflow"); + _22(out, part10); } else if (_30 === 45) { - const part7 = rs.precondition(rs.intCheckedShl(a, k, 32, false), "usize::unchecked_shl cannot overflow"); - _22(out, part7); + const part9 = rs.precondition(rs.intCheckedShl(a, k, 32, false), "usize::unchecked_shl cannot overflow"); + _22(out, part9); } else if (_30 === 46) { - const part6 = rs.precondition(rs.intCheckedShr(a, k, 32, false), "usize::unchecked_shr cannot overflow"); - _22(out, part6); + const part8 = rs.precondition(rs.intCheckedShr(a, k, 32, false), "usize::unchecked_shr cannot overflow"); + _22(out, part8); } else if (_30 === 47) { if (rs.u32Rem(k, 2) === 0) { - const part5 = rs.precondition(rs.intCheckedFunnelShl(a, b, k, 32, false), "usize::unchecked_funnel_shl cannot overflow"); - _22(out, part5); + const part7 = rs.precondition(rs.intCheckedFunnelShl(a, b, k, 32, false), "usize::unchecked_funnel_shl cannot overflow"); + _22(out, part7); } else { - const part4 = rs.precondition(rs.intCheckedFunnelShr(a, b, k, 32, false), "usize::unchecked_funnel_shr cannot overflow"); - _22(out, part4); + const part6 = rs.precondition(rs.intCheckedFunnelShr(a, b, k, 32, false), "usize::unchecked_funnel_shr cannot overflow"); + _22(out, part6); + } + } else if (_30 === 48) { + const part5 = rs.precondition(rs.nonZero(a), "NonZero::new_unchecked requires the argument to be non-zero"); + _22(out, part5); + } else if (_30 === 49) { + const _686: [rs.usize | undefined, rs.usize | undefined] = [rs.nonZero(a), rs.nonZero(b)]; + if (_686[0] !== undefined) { + if (_686[1] !== undefined) { + const part4 = rs.precondition(rs.usizeCheckedMul(_686[0], _686[1]), "usize::unchecked_mul cannot overflow"); + _22(out, part4); + } } } else { - const part3 = rs.precondition(rs.nonZero(a), "NonZero::new_unchecked requires the argument to be non-zero"); - _22(out, part3); + const _698: rs.usize | undefined = rs.nonZero(a); + if (_698 !== undefined) { + const part3 = rs.precondition(rs.usizeCheckedAdd(_698, b), "usize::unchecked_add cannot overflow"); + _22(out, part3); + } } } @@ -2786,92 +2870,92 @@ export function i8s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { _27(out6, v14); } }; - const _30: rs.u8 = rs.u8Rem(kind, 49); + const _30: rs.u8 = rs.u8Rem(kind, 51); if (_30 === 0) { - const part95 = rs.i8CheckedAdd(a, b); - putOpt(out, part95); - const part96 = rs.i8CheckedSub(a, b); + const part96 = rs.i8CheckedAdd(a, b); putOpt(out, part96); - const part97 = rs.i8CheckedMul(a, b); + const part97 = rs.i8CheckedSub(a, b); putOpt(out, part97); - const part98 = rs.i8SaturatingAdd(a, b); - _22(out, part98); - const part99 = rs.i8SaturatingSub(a, b); + const part98 = rs.i8CheckedMul(a, b); + putOpt(out, part98); + const part99 = rs.i8SaturatingAdd(a, b); _22(out, part99); - const part100 = rs.i8SaturatingMul(a, b); + const part100 = rs.i8SaturatingSub(a, b); _22(out, part100); - const part101 = rs.i8WrappingAdd(a, b); + const part101 = rs.i8SaturatingMul(a, b); _22(out, part101); - const part102 = rs.i8WrappingSub(a, b); + const part102 = rs.i8WrappingAdd(a, b); _22(out, part102); - const part103 = rs.i8WrappingMul(a, b); + const part103 = rs.i8WrappingSub(a, b); _22(out, part103); - const part104 = rs.intOverflowingAdd(a, b, 8, true); - putPair(out, part104); - const part105 = rs.intOverflowingSub(a, b, 8, true); + const part104 = rs.i8WrappingMul(a, b); + _22(out, part104); + const part105 = rs.intOverflowingAdd(a, b, 8, true); putPair(out, part105); - const part106 = rs.intOverflowingMul(a, b, 8, true); + const part106 = rs.intOverflowingSub(a, b, 8, true); putPair(out, part106); - const part107 = rs.intMidpoint(a, b, 8, true); - _22(out, part107); - const part108 = rs.intCheckedAdd(a, o, 8, true); - putOpt(out, part108); - const part109 = rs.intCheckedSub(a, o, 8, true); + const part107 = rs.intOverflowingMul(a, b, 8, true); + putPair(out, part107); + const part108 = rs.intMidpoint(a, b, 8, true); + _22(out, part108); + const part109 = rs.intCheckedAdd(a, o, 8, true); putOpt(out, part109); - const part110 = rs.intSaturatingAdd(a, o, 8, true); - _22(out, part110); - const part111 = rs.intSaturatingSub(a, o, 8, true); + const part110 = rs.intCheckedSub(a, o, 8, true); + putOpt(out, part110); + const part111 = rs.intSaturatingAdd(a, o, 8, true); _22(out, part111); - const part112 = rs.intWrappingAdd(a, o, 8, true); + const part112 = rs.intSaturatingSub(a, o, 8, true); _22(out, part112); - const part113 = rs.intWrappingSub(a, o, 8, true); + const part113 = rs.intWrappingAdd(a, o, 8, true); _22(out, part113); - const part114 = rs.intOverflowingAdd(a, o, 8, true); - putPair(out, part114); - const part115 = rs.intOverflowingSub(a, o, 8, true); + const part114 = rs.intWrappingSub(a, o, 8, true); + _22(out, part114); + const part115 = rs.intOverflowingAdd(a, o, 8, true); putPair(out, part115); + const part116 = rs.intOverflowingSub(a, o, 8, true); + putPair(out, part116); } else if (_30 === 1) { - const part87 = rs.intCheckedDiv(a, b, 8, true); - putOpt(out, part87); - const part88 = rs.intCheckedRem(a, b, 8, true); + const part88 = rs.intCheckedDiv(a, b, 8, true); putOpt(out, part88); - const part89 = rs.intCheckedDivEuclid(a, b, 8, true); + const part89 = rs.intCheckedRem(a, b, 8, true); putOpt(out, part89); - const part90 = rs.intCheckedRemEuclid(a, b, 8, true); + const part90 = rs.intCheckedDivEuclid(a, b, 8, true); putOpt(out, part90); + const part91 = rs.intCheckedRemEuclid(a, b, 8, true); + putOpt(out, part91); if (b !== 0) { - const part91 = rs.i8WrappingDiv(a, b); - _22(out, part91); - const part92 = rs.i8WrappingRem(a, b); + const part92 = rs.i8WrappingDiv(a, b); _22(out, part92); - const part93 = rs.intOverflowingDivEuclid(a, b, 8, true); - putPair(out, part93); - const part94 = rs.intOverflowingRemEuclid(a, b, 8, true); + const part93 = rs.i8WrappingRem(a, b); + _22(out, part93); + const part94 = rs.intOverflowingDivEuclid(a, b, 8, true); putPair(out, part94); + const part95 = rs.intOverflowingRemEuclid(a, b, 8, true); + putPair(out, part95); } } else if (_30 === 2) { - const part77 = rs.intCheckedNeg(a, 8, true); - putOpt(out, part77); - const part78 = rs.intWrappingNeg(a, 8, true); - _22(out, part78); - const part79 = rs.intOverflowingNeg(a, 8, true); - putPair(out, part79); - const part80 = rs.intCheckedAbs(a, 8, true); - putOpt(out, part80); - const part81 = rs.intWrappingAbs(a, 8, true); - _22(out, part81); - const part82 = rs.intSaturatingAbs(a, 8, true); + const part78 = rs.intCheckedNeg(a, 8, true); + putOpt(out, part78); + const part79 = rs.intWrappingNeg(a, 8, true); + _22(out, part79); + const part80 = rs.intOverflowingNeg(a, 8, true); + putPair(out, part80); + const part81 = rs.intCheckedAbs(a, 8, true); + putOpt(out, part81); + const part82 = rs.intWrappingAbs(a, 8, true); _22(out, part82); - const part83 = rs.intOverflowingAbs(a, 8, true); - putPair(out, part83); - const part84 = rs.i8SaturatingSub(0, a); - _22(out, part84); - const part85 = rs.intSignum(a, 8, true); + const part83 = rs.intSaturatingAbs(a, 8, true); + _22(out, part83); + const part84 = rs.intOverflowingAbs(a, 8, true); + putPair(out, part84); + const part85 = rs.i8SaturatingSub(0, a); _22(out, part85); + const part86 = rs.intSignum(a, 8, true); + _22(out, part86); rs.byteVecPush(out, a > 0 ? 1 : 0); rs.byteVecPush(out, a < 0 ? 1 : 0); - const part86 = rs.intCheckedIsqrt(a, 8, true); - putOpt(out, part86); + const part87 = rs.intCheckedIsqrt(a, 8, true); + putOpt(out, part87); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.u8ToBeBytes(rs.intUnsignedAbs(a, 8, true) as rs.u8))); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.u8ToBeBytes(a & 0xff))); } else if (_30 === 3) { @@ -2882,14 +2966,14 @@ export function i8s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { break; } const e: rs.u32 = _208; - const part73 = rs.intCheckedPow(a, e, 8, true); - putOpt(out, part73); - const part74 = rs.intWrappingPow(a, e, 8, true); - _22(out, part74); - const part75 = rs.intSaturatingPow(a, e, 8, true); + const part74 = rs.intCheckedPow(a, e, 8, true); + putOpt(out, part74); + const part75 = rs.intWrappingPow(a, e, 8, true); _22(out, part75); - const part76 = rs.intOverflowingPow(a, e, 8, true); - putPair(out, part76); + const part76 = rs.intSaturatingPow(a, e, 8, true); + _22(out, part76); + const part77 = rs.intOverflowingPow(a, e, 8, true); + putPair(out, part77); } } else if (_30 === 4) { const iter2: rs.Iter = rs.iterSlice([n, k]); @@ -2899,26 +2983,26 @@ export function i8s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { break; } const s: rs.u32 = _231; - const part63 = rs.intCheckedShl(a, s, 8, true); - putOpt(out, part63); - const part64 = rs.intCheckedShr(a, s, 8, true); + const part64 = rs.intCheckedShl(a, s, 8, true); putOpt(out, part64); - const part65 = rs.intWrappingShl(a, s, 8, true); - _22(out, part65); - const part66 = rs.intWrappingShr(a, s, 8, true); + const part65 = rs.intCheckedShr(a, s, 8, true); + putOpt(out, part65); + const part66 = rs.intWrappingShl(a, s, 8, true); _22(out, part66); - const part67 = rs.intOverflowingShl(a, s, 8, true); - putPair(out, part67); - const part68 = rs.intOverflowingShr(a, s, 8, true); + const part67 = rs.intWrappingShr(a, s, 8, true); + _22(out, part67); + const part68 = rs.intOverflowingShl(a, s, 8, true); putPair(out, part68); - const part69 = rs.intUnboundedShl(a, s, 8, true); - _22(out, part69); - const part70 = rs.intUnboundedShr(a, s, 8, true); + const part69 = rs.intOverflowingShr(a, s, 8, true); + putPair(out, part69); + const part70 = rs.intUnboundedShl(a, s, 8, true); _22(out, part70); - const part71 = rs.intRotateLeft(a, s, 8, true); + const part71 = rs.intUnboundedShr(a, s, 8, true); _22(out, part71); - const part72 = rs.intRotateRight(a, s, 8, true); + const part72 = rs.intRotateLeft(a, s, 8, true); _22(out, part72); + const part73 = rs.intRotateRight(a, s, 8, true); + _22(out, part73); } } else if (_30 === 5) { const iter3: rs.Iter = rs.iterSlice([rs.intCountOnes(a, 8, true), rs.intCountZeros(a, 8, true), rs.i8LeadingZeros(a), rs.i8TrailingZeros(a), rs.i8LeadingOnes(a), rs.intTrailingOnes(a, 8, true)]); @@ -2937,48 +3021,48 @@ export function i8s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } _22(out, _300); } - const part59 = rs.intHighestOne(a, 8, true); - putOptU32(out, part59); - const part60 = rs.intLowestOne(a, 8, true); + const part60 = rs.intHighestOne(a, 8, true); putOptU32(out, part60); - const part61 = rs.intIsolateHighestOne(a, 8, true); - _22(out, part61); - const part62 = rs.intIsolateLowestOne(a, 8, true); + const part61 = rs.intLowestOne(a, 8, true); + putOptU32(out, part61); + const part62 = rs.intIsolateHighestOne(a, 8, true); _22(out, part62); + const part63 = rs.intIsolateLowestOne(a, 8, true); + _22(out, part63); _22(out, 127); _22(out, -128); } else if (_30 === 6) { - const part56 = rs.intCheckedIlog(a, b, 8, true); - putOptU32(out, part56); - const part57 = rs.intCheckedIlog2(a, 8, true); + const part57 = rs.intCheckedIlog(a, b, 8, true); putOptU32(out, part57); - const part58 = rs.intCheckedIlog10(a, 8, true); + const part58 = rs.intCheckedIlog2(a, 8, true); putOptU32(out, part58); + const part59 = rs.intCheckedIlog10(a, 8, true); + putOptU32(out, part59); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.u8ToBeBytes(rs.intAbsDiff(a, b, 8, true) as rs.u8))); } else if (_30 === 7) { - const part55 = rs.intPow(a, k, 8, true); - _22(out, part55); + const part56 = rs.intPow(a, k, 8, true); + _22(out, part56); } else if (_30 === 8) { - const part54 = rs.intPow(a, n, 8, true); - _22(out, part54); + const part55 = rs.intPow(a, n, 8, true); + _22(out, part55); } else if (_30 === 9) { - const part53 = rs.intDivEuclid(a, b, 8, true); - _22(out, part53); + const part54 = rs.intDivEuclid(a, b, 8, true); + _22(out, part54); } else if (_30 === 10) { - const part52 = rs.intRemEuclid(a, b, 8, true); - _22(out, part52); + const part53 = rs.intRemEuclid(a, b, 8, true); + _22(out, part53); } else if (_30 === 11) { - const part51 = rs.intIsqrt(a, 8, true); - _22(out, part51); + const part52 = rs.intIsqrt(a, 8, true); + _22(out, part52); } else if (_30 === 12) { - const part50 = rs.intIlog(a, b, 8, true); - _27(out, part50); + const part51 = rs.intIlog(a, b, 8, true); + _27(out, part51); } else if (_30 === 13) { - const part49 = rs.intIlog2(a, 8, true); - _27(out, part49); + const part50 = rs.intIlog2(a, 8, true); + _27(out, part50); } else if (_30 === 14) { - const part48 = rs.intIlog10(a, 8, true); - _27(out, part48); + const part49 = rs.intIlog10(a, 8, true); + _27(out, part49); } else if (_30 === 15) { _22(out, rs.i8Add(a, b)); } else if (_30 === 16) { @@ -2990,60 +3074,60 @@ export function i8s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } else if (_30 === 19) { _22(out, rs.i8Rem(a, b)); } else if (_30 === 20) { - const part42 = rs.intStrictNeg(a, 8, true); - _22(out, part42); + const part43 = rs.intStrictNeg(a, 8, true); + _22(out, part43); } else if (_30 === 21) { _22(out, rs.i8Shl(a, k)); } else if (_30 === 22) { _22(out, rs.i8Shr(a, k)); } else if (_30 === 23) { - const part39 = rs.intPow(a, k, 8, true); - _22(out, part39); + const part40 = rs.intPow(a, k, 8, true); + _22(out, part40); } else if (_30 === 24) { - const part38 = rs.intDivEuclid(a, b, 8, true); - _22(out, part38); + const part39 = rs.intDivEuclid(a, b, 8, true); + _22(out, part39); } else if (_30 === 25) { - const part37 = rs.intRemEuclid(a, b, 8, true); - _22(out, part37); + const part38 = rs.intRemEuclid(a, b, 8, true); + _22(out, part38); } else if (_30 === 26) { - const part36 = rs.intStrictAdd(a, o, 8, true); - _22(out, part36); + const part37 = rs.intStrictAdd(a, o, 8, true); + _22(out, part37); } else if (_30 === 27) { - const part35 = rs.intStrictSub(a, o, 8, true); - _22(out, part35); + const part36 = rs.intStrictSub(a, o, 8, true); + _22(out, part36); } else if (_30 === 28) { - const part34 = rs.i8WrappingDiv(a, b); - _22(out, part34); + const part35 = rs.i8WrappingDiv(a, b); + _22(out, part35); } else if (_30 === 29) { - const part33 = rs.i8WrappingRem(a, b); - _22(out, part33); + const part34 = rs.i8WrappingRem(a, b); + _22(out, part34); } else if (_30 === 30) { - const part32 = rs.intWrappingDivEuclid(a, b, 8, true); - _22(out, part32); + const part33 = rs.intWrappingDivEuclid(a, b, 8, true); + _22(out, part33); } else if (_30 === 31) { - const part31 = rs.intWrappingRemEuclid(a, b, 8, true); - _22(out, part31); + const part32 = rs.intWrappingRemEuclid(a, b, 8, true); + _22(out, part32); } else if (_30 === 32) { - const part30 = rs.intOverflowingDiv(a, b, 8, true); - putPair(out, part30); + const part31 = rs.intOverflowingDiv(a, b, 8, true); + putPair(out, part31); } else if (_30 === 33) { - const part29 = rs.intOverflowingRem(a, b, 8, true); - putPair(out, part29); + const part30 = rs.intOverflowingRem(a, b, 8, true); + putPair(out, part30); } else if (_30 === 34) { - const part28 = rs.intOverflowingDivEuclid(a, b, 8, true); - putPair(out, part28); + const part29 = rs.intOverflowingDivEuclid(a, b, 8, true); + putPair(out, part29); } else if (_30 === 35) { - const part27 = rs.intOverflowingRemEuclid(a, b, 8, true); - putPair(out, part27); + const part28 = rs.intOverflowingRemEuclid(a, b, 8, true); + putPair(out, part28); } else if (_30 === 36) { - const part26 = rs.i8SaturatingDiv(a, b); - _22(out, part26); + const part27 = rs.i8SaturatingDiv(a, b); + _22(out, part27); } else if (_30 === 37) { + const part26 = rs.intAbs(a, 8, true); + _22(out, part26); + } else if (_30 === 38) { const part25 = rs.intAbs(a, 8, true); _22(out, part25); - } else if (_30 === 38) { - const part24 = rs.intAbs(a, 8, true); - _22(out, part24); } else if (_30 === 39) { const s2: rs.i8 = a; const w: rs.i8 = a; @@ -3110,78 +3194,88 @@ export function i8s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } _27(out, _573); } - const part11 = option_map$1hwn965(rs.i8CheckedMul(x, y), (a0: rs.i8): rs.i8 => { + const part12 = option_map$1hwn965(rs.i8CheckedMul(x, y), (a0: rs.i8): rs.i8 => { return a0; }); - putOpt(out, part11); - const part12 = rs.i8SaturatingMul(x, y); - _22(out, part12); - const part13 = option_map$1hwn965(rs.intCheckedPow(x, k, 8, true), (a02: rs.i8): rs.i8 => { + putOpt(out, part12); + const part13 = rs.i8SaturatingMul(x, y); + _22(out, part13); + const part14 = option_map$1hwn965(rs.intCheckedPow(x, k, 8, true), (a02: rs.i8): rs.i8 => { return a02; }); - putOpt(out, part13); - const part14 = option_map$1hwn965(rs.intCheckedPow(x, n, 8, true), (a03: rs.i8): rs.i8 => { + putOpt(out, part14); + const part15 = option_map$1hwn965(rs.intCheckedPow(x, n, 8, true), (a03: rs.i8): rs.i8 => { return a03; }); - putOpt(out, part14); - const part15 = rs.intSaturatingPow(x, k, 8, true); - _22(out, part15); - const part16 = rs.intIsolateHighestOne(x, 8, true); + putOpt(out, part15); + const part16 = rs.intSaturatingPow(x, k, 8, true); _22(out, part16); - const part17 = rs.intIsolateLowestOne(x, 8, true); + const part17 = rs.intIsolateHighestOne(x, 8, true); _22(out, part17); - const part18 = option_map$1hwn965(rs.intCheckedAbs(x, 8, true), (a04: rs.i8): rs.i8 => { + const part18 = rs.intIsolateLowestOne(x, 8, true); + _22(out, part18); + const part19 = option_map$1hwn965(rs.intCheckedAbs(x, 8, true), (a04: rs.i8): rs.i8 => { return a04; }); - putOpt(out, part18); + putOpt(out, part19); const _622: [rs.i8, boolean] = rs.intOverflowingAbs(x, 8, true); putPair(out, [_622[0], _622[1]] as [rs.i8, boolean]); - const part19 = rs.intSaturatingAbs(x, 8, true); - _22(out, part19); - const part20 = rs.intWrappingAbs(x, 8, true); + const part20 = rs.intSaturatingAbs(x, 8, true); _22(out, part20); + const part21 = rs.intWrappingAbs(x, 8, true); + _22(out, part21); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.u8ToBeBytes(rs.intUnsignedAbs(x, 8, true) as rs.u8))); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(Uint8Array.of(x > 0 ? 1 : 0, x < 0 ? 1 : 0))); - const part21 = option_map$1hwn965(rs.intCheckedNeg(x, 8, true), (a05: rs.i8): rs.i8 => { + const part22 = option_map$1hwn965(rs.intCheckedNeg(x, 8, true), (a05: rs.i8): rs.i8 => { return a05; }); - putOpt(out, part21); + putOpt(out, part22); const _659: [rs.i8, boolean] = rs.intOverflowingNeg(x, 8, true); putPair(out, [_659[0], _659[1]] as [rs.i8, boolean]); - const part22 = rs.i8SaturatingSub(0, x); - _22(out, part22); - const part23 = rs.intWrappingNeg(x, 8, true); + const part23 = rs.i8SaturatingSub(0, x); _22(out, part23); + const part24 = rs.intWrappingNeg(x, 8, true); + _22(out, part24); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.u8ToBeBytes(x & 0xff))); } } } else if (_30 === 41) { const _681: rs.i8 | undefined = rs.nonZero(a); if (_681 !== undefined) { - const part10 = rs.intAbs(_681, 8, true); - _22(out, part10); + const part11 = rs.intAbs(_681, 8, true); + _22(out, part11); } } else if (_30 === 42) { - const part9 = rs.precondition(rs.i8CheckedAdd(a, b), "i8::unchecked_add cannot overflow"); - _22(out, part9); + const part10 = rs.precondition(rs.i8CheckedAdd(a, b), "i8::unchecked_add cannot overflow"); + _22(out, part10); } else if (_30 === 43) { - const part8 = rs.precondition(rs.i8CheckedSub(a, b), "i8::unchecked_sub cannot overflow"); - _22(out, part8); + const part9 = rs.precondition(rs.i8CheckedSub(a, b), "i8::unchecked_sub cannot overflow"); + _22(out, part9); } else if (_30 === 44) { - const part7 = rs.precondition(rs.i8CheckedMul(a, b), "i8::unchecked_mul cannot overflow"); - _22(out, part7); + const part8 = rs.precondition(rs.i8CheckedMul(a, b), "i8::unchecked_mul cannot overflow"); + _22(out, part8); } else if (_30 === 45) { - const part6 = rs.precondition(rs.intCheckedShl(a, k, 8, true), "i8::unchecked_shl cannot overflow"); - _22(out, part6); + const part7 = rs.precondition(rs.intCheckedShl(a, k, 8, true), "i8::unchecked_shl cannot overflow"); + _22(out, part7); } else if (_30 === 46) { - const part5 = rs.precondition(rs.intCheckedShr(a, k, 8, true), "i8::unchecked_shr cannot overflow"); - _22(out, part5); + const part6 = rs.precondition(rs.intCheckedShr(a, k, 8, true), "i8::unchecked_shr cannot overflow"); + _22(out, part6); } else if (_30 === 47) { - const part4 = rs.precondition(rs.intCheckedNeg(a, 8, true), "i8::unchecked_neg cannot overflow"); + const part5 = rs.precondition(rs.intCheckedNeg(a, 8, true), "i8::unchecked_neg cannot overflow"); + _22(out, part5); + } else if (_30 === 48) { + const part4 = rs.precondition(rs.nonZero(a), "NonZero::new_unchecked requires the argument to be non-zero"); _22(out, part4); + } else if (_30 === 49) { + const _711: [rs.i8 | undefined, rs.i8 | undefined] = [rs.nonZero(a), rs.nonZero(b)]; + if (_711[0] !== undefined) { + if (_711[1] !== undefined) { + const part3 = rs.precondition(rs.i8CheckedMul(_711[0], _711[1]), "i8::unchecked_mul cannot overflow"); + _22(out, part3); + } + } } else { - const part3 = rs.precondition(rs.nonZero(a), "NonZero::new_unchecked requires the argument to be non-zero"); - _22(out, part3); + rs.byteVecPush(out, 0); } } @@ -3232,92 +3326,92 @@ export function i16s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { _27(out6, v14); } }; - const _30: rs.u8 = rs.u8Rem(kind, 49); + const _30: rs.u8 = rs.u8Rem(kind, 51); if (_30 === 0) { - const part95 = rs.i16CheckedAdd(a, b); - putOpt(out, part95); - const part96 = rs.i16CheckedSub(a, b); + const part96 = rs.i16CheckedAdd(a, b); putOpt(out, part96); - const part97 = rs.i16CheckedMul(a, b); + const part97 = rs.i16CheckedSub(a, b); putOpt(out, part97); - const part98 = rs.i16SaturatingAdd(a, b); - _22(out, part98); - const part99 = rs.i16SaturatingSub(a, b); + const part98 = rs.i16CheckedMul(a, b); + putOpt(out, part98); + const part99 = rs.i16SaturatingAdd(a, b); _22(out, part99); - const part100 = rs.i16SaturatingMul(a, b); + const part100 = rs.i16SaturatingSub(a, b); _22(out, part100); - const part101 = rs.i16WrappingAdd(a, b); + const part101 = rs.i16SaturatingMul(a, b); _22(out, part101); - const part102 = rs.i16WrappingSub(a, b); + const part102 = rs.i16WrappingAdd(a, b); _22(out, part102); - const part103 = rs.i16WrappingMul(a, b); + const part103 = rs.i16WrappingSub(a, b); _22(out, part103); - const part104 = rs.intOverflowingAdd(a, b, 16, true); - putPair(out, part104); - const part105 = rs.intOverflowingSub(a, b, 16, true); + const part104 = rs.i16WrappingMul(a, b); + _22(out, part104); + const part105 = rs.intOverflowingAdd(a, b, 16, true); putPair(out, part105); - const part106 = rs.intOverflowingMul(a, b, 16, true); + const part106 = rs.intOverflowingSub(a, b, 16, true); putPair(out, part106); - const part107 = rs.intMidpoint(a, b, 16, true); - _22(out, part107); - const part108 = rs.intCheckedAdd(a, o, 16, true); - putOpt(out, part108); - const part109 = rs.intCheckedSub(a, o, 16, true); + const part107 = rs.intOverflowingMul(a, b, 16, true); + putPair(out, part107); + const part108 = rs.intMidpoint(a, b, 16, true); + _22(out, part108); + const part109 = rs.intCheckedAdd(a, o, 16, true); putOpt(out, part109); - const part110 = rs.intSaturatingAdd(a, o, 16, true); - _22(out, part110); - const part111 = rs.intSaturatingSub(a, o, 16, true); + const part110 = rs.intCheckedSub(a, o, 16, true); + putOpt(out, part110); + const part111 = rs.intSaturatingAdd(a, o, 16, true); _22(out, part111); - const part112 = rs.intWrappingAdd(a, o, 16, true); + const part112 = rs.intSaturatingSub(a, o, 16, true); _22(out, part112); - const part113 = rs.intWrappingSub(a, o, 16, true); + const part113 = rs.intWrappingAdd(a, o, 16, true); _22(out, part113); - const part114 = rs.intOverflowingAdd(a, o, 16, true); - putPair(out, part114); - const part115 = rs.intOverflowingSub(a, o, 16, true); + const part114 = rs.intWrappingSub(a, o, 16, true); + _22(out, part114); + const part115 = rs.intOverflowingAdd(a, o, 16, true); putPair(out, part115); + const part116 = rs.intOverflowingSub(a, o, 16, true); + putPair(out, part116); } else if (_30 === 1) { - const part87 = rs.intCheckedDiv(a, b, 16, true); - putOpt(out, part87); - const part88 = rs.intCheckedRem(a, b, 16, true); + const part88 = rs.intCheckedDiv(a, b, 16, true); putOpt(out, part88); - const part89 = rs.intCheckedDivEuclid(a, b, 16, true); + const part89 = rs.intCheckedRem(a, b, 16, true); putOpt(out, part89); - const part90 = rs.intCheckedRemEuclid(a, b, 16, true); + const part90 = rs.intCheckedDivEuclid(a, b, 16, true); putOpt(out, part90); + const part91 = rs.intCheckedRemEuclid(a, b, 16, true); + putOpt(out, part91); if (b !== 0) { - const part91 = rs.i16WrappingDiv(a, b); - _22(out, part91); - const part92 = rs.i16WrappingRem(a, b); + const part92 = rs.i16WrappingDiv(a, b); _22(out, part92); - const part93 = rs.intOverflowingDivEuclid(a, b, 16, true); - putPair(out, part93); - const part94 = rs.intOverflowingRemEuclid(a, b, 16, true); + const part93 = rs.i16WrappingRem(a, b); + _22(out, part93); + const part94 = rs.intOverflowingDivEuclid(a, b, 16, true); putPair(out, part94); + const part95 = rs.intOverflowingRemEuclid(a, b, 16, true); + putPair(out, part95); } } else if (_30 === 2) { - const part77 = rs.intCheckedNeg(a, 16, true); - putOpt(out, part77); - const part78 = rs.intWrappingNeg(a, 16, true); - _22(out, part78); - const part79 = rs.intOverflowingNeg(a, 16, true); - putPair(out, part79); - const part80 = rs.intCheckedAbs(a, 16, true); - putOpt(out, part80); - const part81 = rs.intWrappingAbs(a, 16, true); - _22(out, part81); - const part82 = rs.intSaturatingAbs(a, 16, true); + const part78 = rs.intCheckedNeg(a, 16, true); + putOpt(out, part78); + const part79 = rs.intWrappingNeg(a, 16, true); + _22(out, part79); + const part80 = rs.intOverflowingNeg(a, 16, true); + putPair(out, part80); + const part81 = rs.intCheckedAbs(a, 16, true); + putOpt(out, part81); + const part82 = rs.intWrappingAbs(a, 16, true); _22(out, part82); - const part83 = rs.intOverflowingAbs(a, 16, true); - putPair(out, part83); - const part84 = rs.i16SaturatingSub(0, a); - _22(out, part84); - const part85 = rs.intSignum(a, 16, true); + const part83 = rs.intSaturatingAbs(a, 16, true); + _22(out, part83); + const part84 = rs.intOverflowingAbs(a, 16, true); + putPair(out, part84); + const part85 = rs.i16SaturatingSub(0, a); _22(out, part85); + const part86 = rs.intSignum(a, 16, true); + _22(out, part86); rs.byteVecPush(out, a > 0 ? 1 : 0); rs.byteVecPush(out, a < 0 ? 1 : 0); - const part86 = rs.intCheckedIsqrt(a, 16, true); - putOpt(out, part86); + const part87 = rs.intCheckedIsqrt(a, 16, true); + putOpt(out, part87); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.u16ToBeBytes(rs.intUnsignedAbs(a, 16, true) as rs.u16))); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.u16ToBeBytes(a & 0xffff))); } else if (_30 === 3) { @@ -3328,14 +3422,14 @@ export function i16s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { break; } const e: rs.u32 = _208; - const part73 = rs.intCheckedPow(a, e, 16, true); - putOpt(out, part73); - const part74 = rs.intWrappingPow(a, e, 16, true); - _22(out, part74); - const part75 = rs.intSaturatingPow(a, e, 16, true); + const part74 = rs.intCheckedPow(a, e, 16, true); + putOpt(out, part74); + const part75 = rs.intWrappingPow(a, e, 16, true); _22(out, part75); - const part76 = rs.intOverflowingPow(a, e, 16, true); - putPair(out, part76); + const part76 = rs.intSaturatingPow(a, e, 16, true); + _22(out, part76); + const part77 = rs.intOverflowingPow(a, e, 16, true); + putPair(out, part77); } } else if (_30 === 4) { const iter2: rs.Iter = rs.iterSlice([n, k]); @@ -3345,26 +3439,26 @@ export function i16s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { break; } const s: rs.u32 = _231; - const part63 = rs.intCheckedShl(a, s, 16, true); - putOpt(out, part63); - const part64 = rs.intCheckedShr(a, s, 16, true); + const part64 = rs.intCheckedShl(a, s, 16, true); putOpt(out, part64); - const part65 = rs.intWrappingShl(a, s, 16, true); - _22(out, part65); - const part66 = rs.intWrappingShr(a, s, 16, true); + const part65 = rs.intCheckedShr(a, s, 16, true); + putOpt(out, part65); + const part66 = rs.intWrappingShl(a, s, 16, true); _22(out, part66); - const part67 = rs.intOverflowingShl(a, s, 16, true); - putPair(out, part67); - const part68 = rs.intOverflowingShr(a, s, 16, true); + const part67 = rs.intWrappingShr(a, s, 16, true); + _22(out, part67); + const part68 = rs.intOverflowingShl(a, s, 16, true); putPair(out, part68); - const part69 = rs.intUnboundedShl(a, s, 16, true); - _22(out, part69); - const part70 = rs.intUnboundedShr(a, s, 16, true); + const part69 = rs.intOverflowingShr(a, s, 16, true); + putPair(out, part69); + const part70 = rs.intUnboundedShl(a, s, 16, true); _22(out, part70); - const part71 = rs.intRotateLeft(a, s, 16, true); + const part71 = rs.intUnboundedShr(a, s, 16, true); _22(out, part71); - const part72 = rs.intRotateRight(a, s, 16, true); + const part72 = rs.intRotateLeft(a, s, 16, true); _22(out, part72); + const part73 = rs.intRotateRight(a, s, 16, true); + _22(out, part73); } } else if (_30 === 5) { const iter3: rs.Iter = rs.iterSlice([rs.intCountOnes(a, 16, true), rs.intCountZeros(a, 16, true), rs.i16LeadingZeros(a), rs.i16TrailingZeros(a), rs.i16LeadingOnes(a), rs.intTrailingOnes(a, 16, true)]); @@ -3383,48 +3477,48 @@ export function i16s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } _22(out, _300); } - const part59 = rs.intHighestOne(a, 16, true); - putOptU32(out, part59); - const part60 = rs.intLowestOne(a, 16, true); + const part60 = rs.intHighestOne(a, 16, true); putOptU32(out, part60); - const part61 = rs.intIsolateHighestOne(a, 16, true); - _22(out, part61); - const part62 = rs.intIsolateLowestOne(a, 16, true); + const part61 = rs.intLowestOne(a, 16, true); + putOptU32(out, part61); + const part62 = rs.intIsolateHighestOne(a, 16, true); _22(out, part62); + const part63 = rs.intIsolateLowestOne(a, 16, true); + _22(out, part63); _22(out, 32767); _22(out, -32768); } else if (_30 === 6) { - const part56 = rs.intCheckedIlog(a, b, 16, true); - putOptU32(out, part56); - const part57 = rs.intCheckedIlog2(a, 16, true); + const part57 = rs.intCheckedIlog(a, b, 16, true); putOptU32(out, part57); - const part58 = rs.intCheckedIlog10(a, 16, true); + const part58 = rs.intCheckedIlog2(a, 16, true); putOptU32(out, part58); + const part59 = rs.intCheckedIlog10(a, 16, true); + putOptU32(out, part59); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.u16ToBeBytes(rs.intAbsDiff(a, b, 16, true) as rs.u16))); } else if (_30 === 7) { - const part55 = rs.intPow(a, k, 16, true); - _22(out, part55); + const part56 = rs.intPow(a, k, 16, true); + _22(out, part56); } else if (_30 === 8) { - const part54 = rs.intPow(a, n, 16, true); - _22(out, part54); + const part55 = rs.intPow(a, n, 16, true); + _22(out, part55); } else if (_30 === 9) { - const part53 = rs.intDivEuclid(a, b, 16, true); - _22(out, part53); + const part54 = rs.intDivEuclid(a, b, 16, true); + _22(out, part54); } else if (_30 === 10) { - const part52 = rs.intRemEuclid(a, b, 16, true); - _22(out, part52); + const part53 = rs.intRemEuclid(a, b, 16, true); + _22(out, part53); } else if (_30 === 11) { - const part51 = rs.intIsqrt(a, 16, true); - _22(out, part51); + const part52 = rs.intIsqrt(a, 16, true); + _22(out, part52); } else if (_30 === 12) { - const part50 = rs.intIlog(a, b, 16, true); - _27(out, part50); + const part51 = rs.intIlog(a, b, 16, true); + _27(out, part51); } else if (_30 === 13) { - const part49 = rs.intIlog2(a, 16, true); - _27(out, part49); + const part50 = rs.intIlog2(a, 16, true); + _27(out, part50); } else if (_30 === 14) { - const part48 = rs.intIlog10(a, 16, true); - _27(out, part48); + const part49 = rs.intIlog10(a, 16, true); + _27(out, part49); } else if (_30 === 15) { _22(out, rs.i16Add(a, b)); } else if (_30 === 16) { @@ -3436,60 +3530,60 @@ export function i16s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } else if (_30 === 19) { _22(out, rs.i16Rem(a, b)); } else if (_30 === 20) { - const part42 = rs.intStrictNeg(a, 16, true); - _22(out, part42); + const part43 = rs.intStrictNeg(a, 16, true); + _22(out, part43); } else if (_30 === 21) { _22(out, rs.i16Shl(a, k)); } else if (_30 === 22) { _22(out, rs.i16Shr(a, k)); } else if (_30 === 23) { - const part39 = rs.intPow(a, k, 16, true); - _22(out, part39); + const part40 = rs.intPow(a, k, 16, true); + _22(out, part40); } else if (_30 === 24) { - const part38 = rs.intDivEuclid(a, b, 16, true); - _22(out, part38); + const part39 = rs.intDivEuclid(a, b, 16, true); + _22(out, part39); } else if (_30 === 25) { - const part37 = rs.intRemEuclid(a, b, 16, true); - _22(out, part37); + const part38 = rs.intRemEuclid(a, b, 16, true); + _22(out, part38); } else if (_30 === 26) { - const part36 = rs.intStrictAdd(a, o, 16, true); - _22(out, part36); + const part37 = rs.intStrictAdd(a, o, 16, true); + _22(out, part37); } else if (_30 === 27) { - const part35 = rs.intStrictSub(a, o, 16, true); - _22(out, part35); + const part36 = rs.intStrictSub(a, o, 16, true); + _22(out, part36); } else if (_30 === 28) { - const part34 = rs.i16WrappingDiv(a, b); - _22(out, part34); + const part35 = rs.i16WrappingDiv(a, b); + _22(out, part35); } else if (_30 === 29) { - const part33 = rs.i16WrappingRem(a, b); - _22(out, part33); + const part34 = rs.i16WrappingRem(a, b); + _22(out, part34); } else if (_30 === 30) { - const part32 = rs.intWrappingDivEuclid(a, b, 16, true); - _22(out, part32); + const part33 = rs.intWrappingDivEuclid(a, b, 16, true); + _22(out, part33); } else if (_30 === 31) { - const part31 = rs.intWrappingRemEuclid(a, b, 16, true); - _22(out, part31); + const part32 = rs.intWrappingRemEuclid(a, b, 16, true); + _22(out, part32); } else if (_30 === 32) { - const part30 = rs.intOverflowingDiv(a, b, 16, true); - putPair(out, part30); + const part31 = rs.intOverflowingDiv(a, b, 16, true); + putPair(out, part31); } else if (_30 === 33) { - const part29 = rs.intOverflowingRem(a, b, 16, true); - putPair(out, part29); + const part30 = rs.intOverflowingRem(a, b, 16, true); + putPair(out, part30); } else if (_30 === 34) { - const part28 = rs.intOverflowingDivEuclid(a, b, 16, true); - putPair(out, part28); + const part29 = rs.intOverflowingDivEuclid(a, b, 16, true); + putPair(out, part29); } else if (_30 === 35) { - const part27 = rs.intOverflowingRemEuclid(a, b, 16, true); - putPair(out, part27); + const part28 = rs.intOverflowingRemEuclid(a, b, 16, true); + putPair(out, part28); } else if (_30 === 36) { - const part26 = rs.i16SaturatingDiv(a, b); - _22(out, part26); + const part27 = rs.i16SaturatingDiv(a, b); + _22(out, part27); } else if (_30 === 37) { + const part26 = rs.intAbs(a, 16, true); + _22(out, part26); + } else if (_30 === 38) { const part25 = rs.intAbs(a, 16, true); _22(out, part25); - } else if (_30 === 38) { - const part24 = rs.intAbs(a, 16, true); - _22(out, part24); } else if (_30 === 39) { const s2: rs.i16 = a; const w: rs.i16 = a; @@ -3556,78 +3650,88 @@ export function i16s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } _27(out, _573); } - const part11 = option_map$0ip7buw(rs.i16CheckedMul(x, y), (a0: rs.i16): rs.i16 => { + const part12 = option_map$0ip7buw(rs.i16CheckedMul(x, y), (a0: rs.i16): rs.i16 => { return a0; }); - putOpt(out, part11); - const part12 = rs.i16SaturatingMul(x, y); - _22(out, part12); - const part13 = option_map$0ip7buw(rs.intCheckedPow(x, k, 16, true), (a02: rs.i16): rs.i16 => { + putOpt(out, part12); + const part13 = rs.i16SaturatingMul(x, y); + _22(out, part13); + const part14 = option_map$0ip7buw(rs.intCheckedPow(x, k, 16, true), (a02: rs.i16): rs.i16 => { return a02; }); - putOpt(out, part13); - const part14 = option_map$0ip7buw(rs.intCheckedPow(x, n, 16, true), (a03: rs.i16): rs.i16 => { + putOpt(out, part14); + const part15 = option_map$0ip7buw(rs.intCheckedPow(x, n, 16, true), (a03: rs.i16): rs.i16 => { return a03; }); - putOpt(out, part14); - const part15 = rs.intSaturatingPow(x, k, 16, true); - _22(out, part15); - const part16 = rs.intIsolateHighestOne(x, 16, true); + putOpt(out, part15); + const part16 = rs.intSaturatingPow(x, k, 16, true); _22(out, part16); - const part17 = rs.intIsolateLowestOne(x, 16, true); + const part17 = rs.intIsolateHighestOne(x, 16, true); _22(out, part17); - const part18 = option_map$0ip7buw(rs.intCheckedAbs(x, 16, true), (a04: rs.i16): rs.i16 => { + const part18 = rs.intIsolateLowestOne(x, 16, true); + _22(out, part18); + const part19 = option_map$0ip7buw(rs.intCheckedAbs(x, 16, true), (a04: rs.i16): rs.i16 => { return a04; }); - putOpt(out, part18); + putOpt(out, part19); const _622: [rs.i16, boolean] = rs.intOverflowingAbs(x, 16, true); putPair(out, [_622[0], _622[1]] as [rs.i16, boolean]); - const part19 = rs.intSaturatingAbs(x, 16, true); - _22(out, part19); - const part20 = rs.intWrappingAbs(x, 16, true); + const part20 = rs.intSaturatingAbs(x, 16, true); _22(out, part20); + const part21 = rs.intWrappingAbs(x, 16, true); + _22(out, part21); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.u16ToBeBytes(rs.intUnsignedAbs(x, 16, true) as rs.u16))); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(Uint8Array.of(x > 0 ? 1 : 0, x < 0 ? 1 : 0))); - const part21 = option_map$0ip7buw(rs.intCheckedNeg(x, 16, true), (a05: rs.i16): rs.i16 => { + const part22 = option_map$0ip7buw(rs.intCheckedNeg(x, 16, true), (a05: rs.i16): rs.i16 => { return a05; }); - putOpt(out, part21); + putOpt(out, part22); const _659: [rs.i16, boolean] = rs.intOverflowingNeg(x, 16, true); putPair(out, [_659[0], _659[1]] as [rs.i16, boolean]); - const part22 = rs.i16SaturatingSub(0, x); - _22(out, part22); - const part23 = rs.intWrappingNeg(x, 16, true); + const part23 = rs.i16SaturatingSub(0, x); _22(out, part23); + const part24 = rs.intWrappingNeg(x, 16, true); + _22(out, part24); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.u16ToBeBytes(x & 0xffff))); } } } else if (_30 === 41) { const _681: rs.i16 | undefined = rs.nonZero(a); if (_681 !== undefined) { - const part10 = rs.intAbs(_681, 16, true); - _22(out, part10); + const part11 = rs.intAbs(_681, 16, true); + _22(out, part11); } } else if (_30 === 42) { - const part9 = rs.precondition(rs.i16CheckedAdd(a, b), "i16::unchecked_add cannot overflow"); - _22(out, part9); + const part10 = rs.precondition(rs.i16CheckedAdd(a, b), "i16::unchecked_add cannot overflow"); + _22(out, part10); } else if (_30 === 43) { - const part8 = rs.precondition(rs.i16CheckedSub(a, b), "i16::unchecked_sub cannot overflow"); - _22(out, part8); + const part9 = rs.precondition(rs.i16CheckedSub(a, b), "i16::unchecked_sub cannot overflow"); + _22(out, part9); } else if (_30 === 44) { - const part7 = rs.precondition(rs.i16CheckedMul(a, b), "i16::unchecked_mul cannot overflow"); - _22(out, part7); + const part8 = rs.precondition(rs.i16CheckedMul(a, b), "i16::unchecked_mul cannot overflow"); + _22(out, part8); } else if (_30 === 45) { - const part6 = rs.precondition(rs.intCheckedShl(a, k, 16, true), "i16::unchecked_shl cannot overflow"); - _22(out, part6); + const part7 = rs.precondition(rs.intCheckedShl(a, k, 16, true), "i16::unchecked_shl cannot overflow"); + _22(out, part7); } else if (_30 === 46) { - const part5 = rs.precondition(rs.intCheckedShr(a, k, 16, true), "i16::unchecked_shr cannot overflow"); - _22(out, part5); + const part6 = rs.precondition(rs.intCheckedShr(a, k, 16, true), "i16::unchecked_shr cannot overflow"); + _22(out, part6); } else if (_30 === 47) { - const part4 = rs.precondition(rs.intCheckedNeg(a, 16, true), "i16::unchecked_neg cannot overflow"); + const part5 = rs.precondition(rs.intCheckedNeg(a, 16, true), "i16::unchecked_neg cannot overflow"); + _22(out, part5); + } else if (_30 === 48) { + const part4 = rs.precondition(rs.nonZero(a), "NonZero::new_unchecked requires the argument to be non-zero"); _22(out, part4); + } else if (_30 === 49) { + const _711: [rs.i16 | undefined, rs.i16 | undefined] = [rs.nonZero(a), rs.nonZero(b)]; + if (_711[0] !== undefined) { + if (_711[1] !== undefined) { + const part3 = rs.precondition(rs.i16CheckedMul(_711[0], _711[1]), "i16::unchecked_mul cannot overflow"); + _22(out, part3); + } + } } else { - const part3 = rs.precondition(rs.nonZero(a), "NonZero::new_unchecked requires the argument to be non-zero"); - _22(out, part3); + rs.byteVecPush(out, 0); } } @@ -3678,92 +3782,92 @@ export function i32s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { _27(out6, v14); } }; - const _30: rs.u8 = rs.u8Rem(kind, 49); + const _30: rs.u8 = rs.u8Rem(kind, 51); if (_30 === 0) { - const part95 = rs.i32CheckedAdd(a, b); - putOpt(out, part95); - const part96 = rs.i32CheckedSub(a, b); + const part96 = rs.i32CheckedAdd(a, b); putOpt(out, part96); - const part97 = rs.i32CheckedMul(a, b); + const part97 = rs.i32CheckedSub(a, b); putOpt(out, part97); - const part98 = rs.i32SaturatingAdd(a, b); - _22(out, part98); - const part99 = rs.i32SaturatingSub(a, b); + const part98 = rs.i32CheckedMul(a, b); + putOpt(out, part98); + const part99 = rs.i32SaturatingAdd(a, b); _22(out, part99); - const part100 = rs.i32SaturatingMul(a, b); + const part100 = rs.i32SaturatingSub(a, b); _22(out, part100); - const part101 = rs.i32WrappingAdd(a, b); + const part101 = rs.i32SaturatingMul(a, b); _22(out, part101); - const part102 = rs.i32WrappingSub(a, b); + const part102 = rs.i32WrappingAdd(a, b); _22(out, part102); - const part103 = rs.i32WrappingMul(a, b); + const part103 = rs.i32WrappingSub(a, b); _22(out, part103); - const part104 = rs.intOverflowingAdd(a, b, 32, true); - putPair(out, part104); - const part105 = rs.intOverflowingSub(a, b, 32, true); + const part104 = rs.i32WrappingMul(a, b); + _22(out, part104); + const part105 = rs.intOverflowingAdd(a, b, 32, true); putPair(out, part105); - const part106 = rs.intOverflowingMul(a, b, 32, true); + const part106 = rs.intOverflowingSub(a, b, 32, true); putPair(out, part106); - const part107 = rs.intMidpoint(a, b, 32, true); - _22(out, part107); - const part108 = rs.intCheckedAdd(a, o, 32, true); - putOpt(out, part108); - const part109 = rs.intCheckedSub(a, o, 32, true); + const part107 = rs.intOverflowingMul(a, b, 32, true); + putPair(out, part107); + const part108 = rs.intMidpoint(a, b, 32, true); + _22(out, part108); + const part109 = rs.intCheckedAdd(a, o, 32, true); putOpt(out, part109); - const part110 = rs.intSaturatingAdd(a, o, 32, true); - _22(out, part110); - const part111 = rs.intSaturatingSub(a, o, 32, true); + const part110 = rs.intCheckedSub(a, o, 32, true); + putOpt(out, part110); + const part111 = rs.intSaturatingAdd(a, o, 32, true); _22(out, part111); - const part112 = rs.intWrappingAdd(a, o, 32, true); + const part112 = rs.intSaturatingSub(a, o, 32, true); _22(out, part112); - const part113 = rs.intWrappingSub(a, o, 32, true); + const part113 = rs.intWrappingAdd(a, o, 32, true); _22(out, part113); - const part114 = rs.intOverflowingAdd(a, o, 32, true); - putPair(out, part114); - const part115 = rs.intOverflowingSub(a, o, 32, true); + const part114 = rs.intWrappingSub(a, o, 32, true); + _22(out, part114); + const part115 = rs.intOverflowingAdd(a, o, 32, true); putPair(out, part115); + const part116 = rs.intOverflowingSub(a, o, 32, true); + putPair(out, part116); } else if (_30 === 1) { - const part87 = rs.intCheckedDiv(a, b, 32, true); - putOpt(out, part87); - const part88 = rs.intCheckedRem(a, b, 32, true); + const part88 = rs.intCheckedDiv(a, b, 32, true); putOpt(out, part88); - const part89 = rs.intCheckedDivEuclid(a, b, 32, true); + const part89 = rs.intCheckedRem(a, b, 32, true); putOpt(out, part89); - const part90 = rs.intCheckedRemEuclid(a, b, 32, true); + const part90 = rs.intCheckedDivEuclid(a, b, 32, true); putOpt(out, part90); + const part91 = rs.intCheckedRemEuclid(a, b, 32, true); + putOpt(out, part91); if (b !== 0) { - const part91 = rs.i32WrappingDiv(a, b); - _22(out, part91); - const part92 = rs.i32WrappingRem(a, b); + const part92 = rs.i32WrappingDiv(a, b); _22(out, part92); - const part93 = rs.intOverflowingDivEuclid(a, b, 32, true); - putPair(out, part93); - const part94 = rs.intOverflowingRemEuclid(a, b, 32, true); + const part93 = rs.i32WrappingRem(a, b); + _22(out, part93); + const part94 = rs.intOverflowingDivEuclid(a, b, 32, true); putPair(out, part94); + const part95 = rs.intOverflowingRemEuclid(a, b, 32, true); + putPair(out, part95); } } else if (_30 === 2) { - const part77 = rs.intCheckedNeg(a, 32, true); - putOpt(out, part77); - const part78 = rs.intWrappingNeg(a, 32, true); - _22(out, part78); - const part79 = rs.intOverflowingNeg(a, 32, true); - putPair(out, part79); - const part80 = rs.intCheckedAbs(a, 32, true); - putOpt(out, part80); - const part81 = rs.intWrappingAbs(a, 32, true); - _22(out, part81); - const part82 = rs.intSaturatingAbs(a, 32, true); + const part78 = rs.intCheckedNeg(a, 32, true); + putOpt(out, part78); + const part79 = rs.intWrappingNeg(a, 32, true); + _22(out, part79); + const part80 = rs.intOverflowingNeg(a, 32, true); + putPair(out, part80); + const part81 = rs.intCheckedAbs(a, 32, true); + putOpt(out, part81); + const part82 = rs.intWrappingAbs(a, 32, true); _22(out, part82); - const part83 = rs.intOverflowingAbs(a, 32, true); - putPair(out, part83); - const part84 = rs.i32SaturatingSub(0, a); - _22(out, part84); - const part85 = rs.intSignum(a, 32, true); + const part83 = rs.intSaturatingAbs(a, 32, true); + _22(out, part83); + const part84 = rs.intOverflowingAbs(a, 32, true); + putPair(out, part84); + const part85 = rs.i32SaturatingSub(0, a); _22(out, part85); + const part86 = rs.intSignum(a, 32, true); + _22(out, part86); rs.byteVecPush(out, a > 0 ? 1 : 0); rs.byteVecPush(out, a < 0 ? 1 : 0); - const part86 = rs.intCheckedIsqrt(a, 32, true); - putOpt(out, part86); + const part87 = rs.intCheckedIsqrt(a, 32, true); + putOpt(out, part87); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.u32ToBeBytes(rs.intUnsignedAbs(a, 32, true) as rs.u32))); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.u32ToBeBytes(a >>> 0))); } else if (_30 === 3) { @@ -3774,14 +3878,14 @@ export function i32s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { break; } const e: rs.u32 = _208; - const part73 = rs.intCheckedPow(a, e, 32, true); - putOpt(out, part73); - const part74 = rs.intWrappingPow(a, e, 32, true); - _22(out, part74); - const part75 = rs.intSaturatingPow(a, e, 32, true); + const part74 = rs.intCheckedPow(a, e, 32, true); + putOpt(out, part74); + const part75 = rs.intWrappingPow(a, e, 32, true); _22(out, part75); - const part76 = rs.intOverflowingPow(a, e, 32, true); - putPair(out, part76); + const part76 = rs.intSaturatingPow(a, e, 32, true); + _22(out, part76); + const part77 = rs.intOverflowingPow(a, e, 32, true); + putPair(out, part77); } } else if (_30 === 4) { const iter2: rs.Iter = rs.iterSlice([n, k]); @@ -3791,26 +3895,26 @@ export function i32s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { break; } const s: rs.u32 = _231; - const part63 = rs.intCheckedShl(a, s, 32, true); - putOpt(out, part63); - const part64 = rs.intCheckedShr(a, s, 32, true); + const part64 = rs.intCheckedShl(a, s, 32, true); putOpt(out, part64); - const part65 = rs.intWrappingShl(a, s, 32, true); - _22(out, part65); - const part66 = rs.intWrappingShr(a, s, 32, true); + const part65 = rs.intCheckedShr(a, s, 32, true); + putOpt(out, part65); + const part66 = rs.intWrappingShl(a, s, 32, true); _22(out, part66); - const part67 = rs.intOverflowingShl(a, s, 32, true); - putPair(out, part67); - const part68 = rs.intOverflowingShr(a, s, 32, true); + const part67 = rs.intWrappingShr(a, s, 32, true); + _22(out, part67); + const part68 = rs.intOverflowingShl(a, s, 32, true); putPair(out, part68); - const part69 = rs.intUnboundedShl(a, s, 32, true); - _22(out, part69); - const part70 = rs.intUnboundedShr(a, s, 32, true); + const part69 = rs.intOverflowingShr(a, s, 32, true); + putPair(out, part69); + const part70 = rs.intUnboundedShl(a, s, 32, true); _22(out, part70); - const part71 = rs.intRotateLeft(a, s, 32, true); + const part71 = rs.intUnboundedShr(a, s, 32, true); _22(out, part71); - const part72 = rs.intRotateRight(a, s, 32, true); + const part72 = rs.intRotateLeft(a, s, 32, true); _22(out, part72); + const part73 = rs.intRotateRight(a, s, 32, true); + _22(out, part73); } } else if (_30 === 5) { const iter3: rs.Iter = rs.iterSlice([rs.intCountOnes(a, 32, true), rs.intCountZeros(a, 32, true), rs.i32LeadingZeros(a), rs.i32TrailingZeros(a), rs.i32LeadingOnes(a), rs.intTrailingOnes(a, 32, true)]); @@ -3829,48 +3933,48 @@ export function i32s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } _22(out, _300); } - const part59 = rs.intHighestOne(a, 32, true); - putOptU32(out, part59); - const part60 = rs.intLowestOne(a, 32, true); + const part60 = rs.intHighestOne(a, 32, true); putOptU32(out, part60); - const part61 = rs.intIsolateHighestOne(a, 32, true); - _22(out, part61); - const part62 = rs.intIsolateLowestOne(a, 32, true); + const part61 = rs.intLowestOne(a, 32, true); + putOptU32(out, part61); + const part62 = rs.intIsolateHighestOne(a, 32, true); _22(out, part62); + const part63 = rs.intIsolateLowestOne(a, 32, true); + _22(out, part63); _22(out, 2147483647); _22(out, -2147483648); } else if (_30 === 6) { - const part56 = rs.intCheckedIlog(a, b, 32, true); - putOptU32(out, part56); - const part57 = rs.intCheckedIlog2(a, 32, true); + const part57 = rs.intCheckedIlog(a, b, 32, true); putOptU32(out, part57); - const part58 = rs.intCheckedIlog10(a, 32, true); + const part58 = rs.intCheckedIlog2(a, 32, true); putOptU32(out, part58); + const part59 = rs.intCheckedIlog10(a, 32, true); + putOptU32(out, part59); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.u32ToBeBytes(rs.intAbsDiff(a, b, 32, true) as rs.u32))); } else if (_30 === 7) { - const part55 = rs.intPow(a, k, 32, true); - _22(out, part55); + const part56 = rs.intPow(a, k, 32, true); + _22(out, part56); } else if (_30 === 8) { - const part54 = rs.intPow(a, n, 32, true); - _22(out, part54); + const part55 = rs.intPow(a, n, 32, true); + _22(out, part55); } else if (_30 === 9) { - const part53 = rs.intDivEuclid(a, b, 32, true); - _22(out, part53); + const part54 = rs.intDivEuclid(a, b, 32, true); + _22(out, part54); } else if (_30 === 10) { - const part52 = rs.intRemEuclid(a, b, 32, true); - _22(out, part52); + const part53 = rs.intRemEuclid(a, b, 32, true); + _22(out, part53); } else if (_30 === 11) { - const part51 = rs.intIsqrt(a, 32, true); - _22(out, part51); + const part52 = rs.intIsqrt(a, 32, true); + _22(out, part52); } else if (_30 === 12) { - const part50 = rs.intIlog(a, b, 32, true); - _27(out, part50); + const part51 = rs.intIlog(a, b, 32, true); + _27(out, part51); } else if (_30 === 13) { - const part49 = rs.intIlog2(a, 32, true); - _27(out, part49); + const part50 = rs.intIlog2(a, 32, true); + _27(out, part50); } else if (_30 === 14) { - const part48 = rs.intIlog10(a, 32, true); - _27(out, part48); + const part49 = rs.intIlog10(a, 32, true); + _27(out, part49); } else if (_30 === 15) { _22(out, rs.i32Add(a, b)); } else if (_30 === 16) { @@ -3882,60 +3986,60 @@ export function i32s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } else if (_30 === 19) { _22(out, rs.i32Rem(a, b)); } else if (_30 === 20) { - const part42 = rs.intStrictNeg(a, 32, true); - _22(out, part42); + const part43 = rs.intStrictNeg(a, 32, true); + _22(out, part43); } else if (_30 === 21) { _22(out, rs.i32Shl(a, k)); } else if (_30 === 22) { _22(out, rs.i32Shr(a, k)); } else if (_30 === 23) { - const part39 = rs.intPow(a, k, 32, true); - _22(out, part39); + const part40 = rs.intPow(a, k, 32, true); + _22(out, part40); } else if (_30 === 24) { - const part38 = rs.intDivEuclid(a, b, 32, true); - _22(out, part38); + const part39 = rs.intDivEuclid(a, b, 32, true); + _22(out, part39); } else if (_30 === 25) { - const part37 = rs.intRemEuclid(a, b, 32, true); - _22(out, part37); + const part38 = rs.intRemEuclid(a, b, 32, true); + _22(out, part38); } else if (_30 === 26) { - const part36 = rs.intStrictAdd(a, o, 32, true); - _22(out, part36); + const part37 = rs.intStrictAdd(a, o, 32, true); + _22(out, part37); } else if (_30 === 27) { - const part35 = rs.intStrictSub(a, o, 32, true); - _22(out, part35); + const part36 = rs.intStrictSub(a, o, 32, true); + _22(out, part36); } else if (_30 === 28) { - const part34 = rs.i32WrappingDiv(a, b); - _22(out, part34); + const part35 = rs.i32WrappingDiv(a, b); + _22(out, part35); } else if (_30 === 29) { - const part33 = rs.i32WrappingRem(a, b); - _22(out, part33); + const part34 = rs.i32WrappingRem(a, b); + _22(out, part34); } else if (_30 === 30) { - const part32 = rs.intWrappingDivEuclid(a, b, 32, true); - _22(out, part32); + const part33 = rs.intWrappingDivEuclid(a, b, 32, true); + _22(out, part33); } else if (_30 === 31) { - const part31 = rs.intWrappingRemEuclid(a, b, 32, true); - _22(out, part31); + const part32 = rs.intWrappingRemEuclid(a, b, 32, true); + _22(out, part32); } else if (_30 === 32) { - const part30 = rs.intOverflowingDiv(a, b, 32, true); - putPair(out, part30); + const part31 = rs.intOverflowingDiv(a, b, 32, true); + putPair(out, part31); } else if (_30 === 33) { - const part29 = rs.intOverflowingRem(a, b, 32, true); - putPair(out, part29); + const part30 = rs.intOverflowingRem(a, b, 32, true); + putPair(out, part30); } else if (_30 === 34) { - const part28 = rs.intOverflowingDivEuclid(a, b, 32, true); - putPair(out, part28); + const part29 = rs.intOverflowingDivEuclid(a, b, 32, true); + putPair(out, part29); } else if (_30 === 35) { - const part27 = rs.intOverflowingRemEuclid(a, b, 32, true); - putPair(out, part27); + const part28 = rs.intOverflowingRemEuclid(a, b, 32, true); + putPair(out, part28); } else if (_30 === 36) { - const part26 = rs.i32SaturatingDiv(a, b); - _22(out, part26); + const part27 = rs.i32SaturatingDiv(a, b); + _22(out, part27); } else if (_30 === 37) { + const part26 = rs.intAbs(a, 32, true); + _22(out, part26); + } else if (_30 === 38) { const part25 = rs.intAbs(a, 32, true); _22(out, part25); - } else if (_30 === 38) { - const part24 = rs.intAbs(a, 32, true); - _22(out, part24); } else if (_30 === 39) { const s2: rs.i32 = a; const w: rs.i32 = a; @@ -4002,78 +4106,88 @@ export function i32s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } _27(out, _573); } - const part11 = option_map$0a35how(rs.i32CheckedMul(x, y), (a0: rs.i32): rs.i32 => { + const part12 = option_map$0a35how(rs.i32CheckedMul(x, y), (a0: rs.i32): rs.i32 => { return a0; }); - putOpt(out, part11); - const part12 = rs.i32SaturatingMul(x, y); - _22(out, part12); - const part13 = option_map$0a35how(rs.intCheckedPow(x, k, 32, true), (a02: rs.i32): rs.i32 => { + putOpt(out, part12); + const part13 = rs.i32SaturatingMul(x, y); + _22(out, part13); + const part14 = option_map$0a35how(rs.intCheckedPow(x, k, 32, true), (a02: rs.i32): rs.i32 => { return a02; }); - putOpt(out, part13); - const part14 = option_map$0a35how(rs.intCheckedPow(x, n, 32, true), (a03: rs.i32): rs.i32 => { + putOpt(out, part14); + const part15 = option_map$0a35how(rs.intCheckedPow(x, n, 32, true), (a03: rs.i32): rs.i32 => { return a03; }); - putOpt(out, part14); - const part15 = rs.intSaturatingPow(x, k, 32, true); - _22(out, part15); - const part16 = rs.intIsolateHighestOne(x, 32, true); + putOpt(out, part15); + const part16 = rs.intSaturatingPow(x, k, 32, true); _22(out, part16); - const part17 = rs.intIsolateLowestOne(x, 32, true); + const part17 = rs.intIsolateHighestOne(x, 32, true); _22(out, part17); - const part18 = option_map$0a35how(rs.intCheckedAbs(x, 32, true), (a04: rs.i32): rs.i32 => { + const part18 = rs.intIsolateLowestOne(x, 32, true); + _22(out, part18); + const part19 = option_map$0a35how(rs.intCheckedAbs(x, 32, true), (a04: rs.i32): rs.i32 => { return a04; }); - putOpt(out, part18); + putOpt(out, part19); const _622: [rs.i32, boolean] = rs.intOverflowingAbs(x, 32, true); putPair(out, [_622[0], _622[1]] as [rs.i32, boolean]); - const part19 = rs.intSaturatingAbs(x, 32, true); - _22(out, part19); - const part20 = rs.intWrappingAbs(x, 32, true); + const part20 = rs.intSaturatingAbs(x, 32, true); _22(out, part20); + const part21 = rs.intWrappingAbs(x, 32, true); + _22(out, part21); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.u32ToBeBytes(rs.intUnsignedAbs(x, 32, true) as rs.u32))); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(Uint8Array.of(x > 0 ? 1 : 0, x < 0 ? 1 : 0))); - const part21 = option_map$0a35how(rs.intCheckedNeg(x, 32, true), (a05: rs.i32): rs.i32 => { + const part22 = option_map$0a35how(rs.intCheckedNeg(x, 32, true), (a05: rs.i32): rs.i32 => { return a05; }); - putOpt(out, part21); + putOpt(out, part22); const _659: [rs.i32, boolean] = rs.intOverflowingNeg(x, 32, true); putPair(out, [_659[0], _659[1]] as [rs.i32, boolean]); - const part22 = rs.i32SaturatingSub(0, x); - _22(out, part22); - const part23 = rs.intWrappingNeg(x, 32, true); + const part23 = rs.i32SaturatingSub(0, x); _22(out, part23); + const part24 = rs.intWrappingNeg(x, 32, true); + _22(out, part24); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.u32ToBeBytes(x >>> 0))); } } } else if (_30 === 41) { const _681: rs.i32 | undefined = rs.nonZero(a); if (_681 !== undefined) { - const part10 = rs.intAbs(_681, 32, true); - _22(out, part10); + const part11 = rs.intAbs(_681, 32, true); + _22(out, part11); } } else if (_30 === 42) { - const part9 = rs.precondition(rs.i32CheckedAdd(a, b), "i32::unchecked_add cannot overflow"); - _22(out, part9); + const part10 = rs.precondition(rs.i32CheckedAdd(a, b), "i32::unchecked_add cannot overflow"); + _22(out, part10); } else if (_30 === 43) { - const part8 = rs.precondition(rs.i32CheckedSub(a, b), "i32::unchecked_sub cannot overflow"); - _22(out, part8); + const part9 = rs.precondition(rs.i32CheckedSub(a, b), "i32::unchecked_sub cannot overflow"); + _22(out, part9); } else if (_30 === 44) { - const part7 = rs.precondition(rs.i32CheckedMul(a, b), "i32::unchecked_mul cannot overflow"); - _22(out, part7); + const part8 = rs.precondition(rs.i32CheckedMul(a, b), "i32::unchecked_mul cannot overflow"); + _22(out, part8); } else if (_30 === 45) { - const part6 = rs.precondition(rs.intCheckedShl(a, k, 32, true), "i32::unchecked_shl cannot overflow"); - _22(out, part6); + const part7 = rs.precondition(rs.intCheckedShl(a, k, 32, true), "i32::unchecked_shl cannot overflow"); + _22(out, part7); } else if (_30 === 46) { - const part5 = rs.precondition(rs.intCheckedShr(a, k, 32, true), "i32::unchecked_shr cannot overflow"); - _22(out, part5); + const part6 = rs.precondition(rs.intCheckedShr(a, k, 32, true), "i32::unchecked_shr cannot overflow"); + _22(out, part6); } else if (_30 === 47) { - const part4 = rs.precondition(rs.intCheckedNeg(a, 32, true), "i32::unchecked_neg cannot overflow"); + const part5 = rs.precondition(rs.intCheckedNeg(a, 32, true), "i32::unchecked_neg cannot overflow"); + _22(out, part5); + } else if (_30 === 48) { + const part4 = rs.precondition(rs.nonZero(a), "NonZero::new_unchecked requires the argument to be non-zero"); _22(out, part4); + } else if (_30 === 49) { + const _711: [rs.i32 | undefined, rs.i32 | undefined] = [rs.nonZero(a), rs.nonZero(b)]; + if (_711[0] !== undefined) { + if (_711[1] !== undefined) { + const part3 = rs.precondition(rs.i32CheckedMul(_711[0], _711[1]), "i32::unchecked_mul cannot overflow"); + _22(out, part3); + } + } } else { - const part3 = rs.precondition(rs.nonZero(a), "NonZero::new_unchecked requires the argument to be non-zero"); - _22(out, part3); + rs.byteVecPush(out, 0); } } @@ -4124,92 +4238,92 @@ export function i64s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { _27(out6, v14); } }; - const _30: rs.u8 = rs.u8Rem(kind, 49); + const _30: rs.u8 = rs.u8Rem(kind, 51); if (_30 === 0) { - const part95 = rs.i64CheckedAdd(a, b); - putOpt(out, part95); - const part96 = rs.i64CheckedSub(a, b); + const part96 = rs.i64CheckedAdd(a, b); putOpt(out, part96); - const part97 = rs.i64CheckedMul(a, b); + const part97 = rs.i64CheckedSub(a, b); putOpt(out, part97); - const part98 = rs.i64SaturatingAdd(a, b); - _22(out, part98); - const part99 = rs.i64SaturatingSub(a, b); + const part98 = rs.i64CheckedMul(a, b); + putOpt(out, part98); + const part99 = rs.i64SaturatingAdd(a, b); _22(out, part99); - const part100 = rs.i64SaturatingMul(a, b); + const part100 = rs.i64SaturatingSub(a, b); _22(out, part100); - const part101 = rs.i64WrappingAdd(a, b); + const part101 = rs.i64SaturatingMul(a, b); _22(out, part101); - const part102 = rs.i64WrappingSub(a, b); + const part102 = rs.i64WrappingAdd(a, b); _22(out, part102); - const part103 = rs.i64WrappingMul(a, b); + const part103 = rs.i64WrappingSub(a, b); _22(out, part103); - const part104 = rs.intOverflowingAdd(a, b, 64, true); - putPair(out, part104); - const part105 = rs.intOverflowingSub(a, b, 64, true); + const part104 = rs.i64WrappingMul(a, b); + _22(out, part104); + const part105 = rs.intOverflowingAdd(a, b, 64, true); putPair(out, part105); - const part106 = rs.intOverflowingMul(a, b, 64, true); + const part106 = rs.intOverflowingSub(a, b, 64, true); putPair(out, part106); - const part107 = rs.intMidpoint(a, b, 64, true); - _22(out, part107); - const part108 = rs.intCheckedAdd(a, o, 64, true); - putOpt(out, part108); - const part109 = rs.intCheckedSub(a, o, 64, true); + const part107 = rs.intOverflowingMul(a, b, 64, true); + putPair(out, part107); + const part108 = rs.intMidpoint(a, b, 64, true); + _22(out, part108); + const part109 = rs.intCheckedAdd(a, o, 64, true); putOpt(out, part109); - const part110 = rs.intSaturatingAdd(a, o, 64, true); - _22(out, part110); - const part111 = rs.intSaturatingSub(a, o, 64, true); + const part110 = rs.intCheckedSub(a, o, 64, true); + putOpt(out, part110); + const part111 = rs.intSaturatingAdd(a, o, 64, true); _22(out, part111); - const part112 = rs.intWrappingAdd(a, o, 64, true); + const part112 = rs.intSaturatingSub(a, o, 64, true); _22(out, part112); - const part113 = rs.intWrappingSub(a, o, 64, true); + const part113 = rs.intWrappingAdd(a, o, 64, true); _22(out, part113); - const part114 = rs.intOverflowingAdd(a, o, 64, true); - putPair(out, part114); - const part115 = rs.intOverflowingSub(a, o, 64, true); + const part114 = rs.intWrappingSub(a, o, 64, true); + _22(out, part114); + const part115 = rs.intOverflowingAdd(a, o, 64, true); putPair(out, part115); + const part116 = rs.intOverflowingSub(a, o, 64, true); + putPair(out, part116); } else if (_30 === 1) { - const part87 = rs.intCheckedDiv(a, b, 64, true); - putOpt(out, part87); - const part88 = rs.intCheckedRem(a, b, 64, true); + const part88 = rs.intCheckedDiv(a, b, 64, true); putOpt(out, part88); - const part89 = rs.intCheckedDivEuclid(a, b, 64, true); + const part89 = rs.intCheckedRem(a, b, 64, true); putOpt(out, part89); - const part90 = rs.intCheckedRemEuclid(a, b, 64, true); + const part90 = rs.intCheckedDivEuclid(a, b, 64, true); putOpt(out, part90); + const part91 = rs.intCheckedRemEuclid(a, b, 64, true); + putOpt(out, part91); if (b !== 0) { - const part91 = rs.i64WrappingDiv(a, b); - _22(out, part91); - const part92 = rs.i64WrappingRem(a, b); + const part92 = rs.i64WrappingDiv(a, b); _22(out, part92); - const part93 = rs.intOverflowingDivEuclid(a, b, 64, true); - putPair(out, part93); - const part94 = rs.intOverflowingRemEuclid(a, b, 64, true); + const part93 = rs.i64WrappingRem(a, b); + _22(out, part93); + const part94 = rs.intOverflowingDivEuclid(a, b, 64, true); putPair(out, part94); + const part95 = rs.intOverflowingRemEuclid(a, b, 64, true); + putPair(out, part95); } } else if (_30 === 2) { - const part77 = rs.intCheckedNeg(a, 64, true); - putOpt(out, part77); - const part78 = rs.intWrappingNeg(a, 64, true); - _22(out, part78); - const part79 = rs.intOverflowingNeg(a, 64, true); - putPair(out, part79); - const part80 = rs.intCheckedAbs(a, 64, true); - putOpt(out, part80); - const part81 = rs.intWrappingAbs(a, 64, true); - _22(out, part81); - const part82 = rs.intSaturatingAbs(a, 64, true); + const part78 = rs.intCheckedNeg(a, 64, true); + putOpt(out, part78); + const part79 = rs.intWrappingNeg(a, 64, true); + _22(out, part79); + const part80 = rs.intOverflowingNeg(a, 64, true); + putPair(out, part80); + const part81 = rs.intCheckedAbs(a, 64, true); + putOpt(out, part81); + const part82 = rs.intWrappingAbs(a, 64, true); _22(out, part82); - const part83 = rs.intOverflowingAbs(a, 64, true); - putPair(out, part83); - const part84 = rs.i64SaturatingSub(0, a); - _22(out, part84); - const part85 = rs.intSignum(a, 64, true); + const part83 = rs.intSaturatingAbs(a, 64, true); + _22(out, part83); + const part84 = rs.intOverflowingAbs(a, 64, true); + putPair(out, part84); + const part85 = rs.i64SaturatingSub(0, a); _22(out, part85); + const part86 = rs.intSignum(a, 64, true); + _22(out, part86); rs.byteVecPush(out, rs.i64Gt(a, 0) ? 1 : 0); rs.byteVecPush(out, rs.i64Lt(a, 0) ? 1 : 0); - const part86 = rs.intCheckedIsqrt(a, 64, true); - putOpt(out, part86); + const part87 = rs.intCheckedIsqrt(a, 64, true); + putOpt(out, part87); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.u64ToBeBytes(rs.intUnsignedAbs(a, 64, true) as rs.u64))); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.u64ToBeBytes(rs.u64Cast(a)))); } else if (_30 === 3) { @@ -4220,14 +4334,14 @@ export function i64s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { break; } const e: rs.u32 = _208; - const part73 = rs.intCheckedPow(a, e, 64, true); - putOpt(out, part73); - const part74 = rs.intWrappingPow(a, e, 64, true); - _22(out, part74); - const part75 = rs.intSaturatingPow(a, e, 64, true); + const part74 = rs.intCheckedPow(a, e, 64, true); + putOpt(out, part74); + const part75 = rs.intWrappingPow(a, e, 64, true); _22(out, part75); - const part76 = rs.intOverflowingPow(a, e, 64, true); - putPair(out, part76); + const part76 = rs.intSaturatingPow(a, e, 64, true); + _22(out, part76); + const part77 = rs.intOverflowingPow(a, e, 64, true); + putPair(out, part77); } } else if (_30 === 4) { const iter2: rs.Iter = rs.iterSlice([n, k]); @@ -4237,26 +4351,26 @@ export function i64s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { break; } const s: rs.u32 = _231; - const part63 = rs.intCheckedShl(a, s, 64, true); - putOpt(out, part63); - const part64 = rs.intCheckedShr(a, s, 64, true); + const part64 = rs.intCheckedShl(a, s, 64, true); putOpt(out, part64); - const part65 = rs.intWrappingShl(a, s, 64, true); - _22(out, part65); - const part66 = rs.intWrappingShr(a, s, 64, true); + const part65 = rs.intCheckedShr(a, s, 64, true); + putOpt(out, part65); + const part66 = rs.intWrappingShl(a, s, 64, true); _22(out, part66); - const part67 = rs.intOverflowingShl(a, s, 64, true); - putPair(out, part67); - const part68 = rs.intOverflowingShr(a, s, 64, true); + const part67 = rs.intWrappingShr(a, s, 64, true); + _22(out, part67); + const part68 = rs.intOverflowingShl(a, s, 64, true); putPair(out, part68); - const part69 = rs.intUnboundedShl(a, s, 64, true); - _22(out, part69); - const part70 = rs.intUnboundedShr(a, s, 64, true); + const part69 = rs.intOverflowingShr(a, s, 64, true); + putPair(out, part69); + const part70 = rs.intUnboundedShl(a, s, 64, true); _22(out, part70); - const part71 = rs.intRotateLeft(a, s, 64, true); + const part71 = rs.intUnboundedShr(a, s, 64, true); _22(out, part71); - const part72 = rs.intRotateRight(a, s, 64, true); + const part72 = rs.intRotateLeft(a, s, 64, true); _22(out, part72); + const part73 = rs.intRotateRight(a, s, 64, true); + _22(out, part73); } } else if (_30 === 5) { const iter3: rs.Iter = rs.iterSlice([rs.intCountOnes(a, 64, true), rs.intCountZeros(a, 64, true), rs.i64LeadingZeros(a), rs.i64TrailingZeros(a), rs.i64LeadingOnes(a), rs.intTrailingOnes(a, 64, true)]); @@ -4275,48 +4389,48 @@ export function i64s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } _22(out, _300); } - const part59 = rs.intHighestOne(a, 64, true); - putOptU32(out, part59); - const part60 = rs.intLowestOne(a, 64, true); + const part60 = rs.intHighestOne(a, 64, true); putOptU32(out, part60); - const part61 = rs.intIsolateHighestOne(a, 64, true); - _22(out, part61); - const part62 = rs.intIsolateLowestOne(a, 64, true); + const part61 = rs.intLowestOne(a, 64, true); + putOptU32(out, part61); + const part62 = rs.intIsolateHighestOne(a, 64, true); _22(out, part62); + const part63 = rs.intIsolateLowestOne(a, 64, true); + _22(out, part63); _22(out, { hi: 0x7fffffff, lo: 0xffffffff } as rs.i64); _22(out, { hi: -0x80000000, lo: 0 } as rs.i64); } else if (_30 === 6) { - const part56 = rs.intCheckedIlog(a, b, 64, true); - putOptU32(out, part56); - const part57 = rs.intCheckedIlog2(a, 64, true); + const part57 = rs.intCheckedIlog(a, b, 64, true); putOptU32(out, part57); - const part58 = rs.intCheckedIlog10(a, 64, true); + const part58 = rs.intCheckedIlog2(a, 64, true); putOptU32(out, part58); + const part59 = rs.intCheckedIlog10(a, 64, true); + putOptU32(out, part59); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.u64ToBeBytes(rs.intAbsDiff(a, b, 64, true) as rs.u64))); } else if (_30 === 7) { - const part55 = rs.intPow(a, k, 64, true); - _22(out, part55); + const part56 = rs.intPow(a, k, 64, true); + _22(out, part56); } else if (_30 === 8) { - const part54 = rs.intPow(a, n, 64, true); - _22(out, part54); + const part55 = rs.intPow(a, n, 64, true); + _22(out, part55); } else if (_30 === 9) { - const part53 = rs.intDivEuclid(a, b, 64, true); - _22(out, part53); + const part54 = rs.intDivEuclid(a, b, 64, true); + _22(out, part54); } else if (_30 === 10) { - const part52 = rs.intRemEuclid(a, b, 64, true); - _22(out, part52); + const part53 = rs.intRemEuclid(a, b, 64, true); + _22(out, part53); } else if (_30 === 11) { - const part51 = rs.intIsqrt(a, 64, true); - _22(out, part51); + const part52 = rs.intIsqrt(a, 64, true); + _22(out, part52); } else if (_30 === 12) { - const part50 = rs.intIlog(a, b, 64, true); - _27(out, part50); + const part51 = rs.intIlog(a, b, 64, true); + _27(out, part51); } else if (_30 === 13) { - const part49 = rs.intIlog2(a, 64, true); - _27(out, part49); + const part50 = rs.intIlog2(a, 64, true); + _27(out, part50); } else if (_30 === 14) { - const part48 = rs.intIlog10(a, 64, true); - _27(out, part48); + const part49 = rs.intIlog10(a, 64, true); + _27(out, part49); } else if (_30 === 15) { _22(out, rs.i64Add(a, b)); } else if (_30 === 16) { @@ -4328,60 +4442,60 @@ export function i64s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } else if (_30 === 19) { _22(out, rs.i64Rem(a, b)); } else if (_30 === 20) { - const part42 = rs.intStrictNeg(a, 64, true); - _22(out, part42); + const part43 = rs.intStrictNeg(a, 64, true); + _22(out, part43); } else if (_30 === 21) { _22(out, rs.i64Shl(a, k)); } else if (_30 === 22) { _22(out, rs.i64Shr(a, k)); } else if (_30 === 23) { - const part39 = rs.intPow(a, k, 64, true); - _22(out, part39); + const part40 = rs.intPow(a, k, 64, true); + _22(out, part40); } else if (_30 === 24) { - const part38 = rs.intDivEuclid(a, b, 64, true); - _22(out, part38); + const part39 = rs.intDivEuclid(a, b, 64, true); + _22(out, part39); } else if (_30 === 25) { - const part37 = rs.intRemEuclid(a, b, 64, true); - _22(out, part37); + const part38 = rs.intRemEuclid(a, b, 64, true); + _22(out, part38); } else if (_30 === 26) { - const part36 = rs.intStrictAdd(a, o, 64, true); - _22(out, part36); + const part37 = rs.intStrictAdd(a, o, 64, true); + _22(out, part37); } else if (_30 === 27) { - const part35 = rs.intStrictSub(a, o, 64, true); - _22(out, part35); + const part36 = rs.intStrictSub(a, o, 64, true); + _22(out, part36); } else if (_30 === 28) { - const part34 = rs.i64WrappingDiv(a, b); - _22(out, part34); + const part35 = rs.i64WrappingDiv(a, b); + _22(out, part35); } else if (_30 === 29) { - const part33 = rs.i64WrappingRem(a, b); - _22(out, part33); + const part34 = rs.i64WrappingRem(a, b); + _22(out, part34); } else if (_30 === 30) { - const part32 = rs.intWrappingDivEuclid(a, b, 64, true); - _22(out, part32); + const part33 = rs.intWrappingDivEuclid(a, b, 64, true); + _22(out, part33); } else if (_30 === 31) { - const part31 = rs.intWrappingRemEuclid(a, b, 64, true); - _22(out, part31); + const part32 = rs.intWrappingRemEuclid(a, b, 64, true); + _22(out, part32); } else if (_30 === 32) { - const part30 = rs.intOverflowingDiv(a, b, 64, true); - putPair(out, part30); + const part31 = rs.intOverflowingDiv(a, b, 64, true); + putPair(out, part31); } else if (_30 === 33) { - const part29 = rs.intOverflowingRem(a, b, 64, true); - putPair(out, part29); + const part30 = rs.intOverflowingRem(a, b, 64, true); + putPair(out, part30); } else if (_30 === 34) { - const part28 = rs.intOverflowingDivEuclid(a, b, 64, true); - putPair(out, part28); + const part29 = rs.intOverflowingDivEuclid(a, b, 64, true); + putPair(out, part29); } else if (_30 === 35) { - const part27 = rs.intOverflowingRemEuclid(a, b, 64, true); - putPair(out, part27); + const part28 = rs.intOverflowingRemEuclid(a, b, 64, true); + putPair(out, part28); } else if (_30 === 36) { - const part26 = rs.i64SaturatingDiv(a, b); - _22(out, part26); + const part27 = rs.i64SaturatingDiv(a, b); + _22(out, part27); } else if (_30 === 37) { + const part26 = rs.intAbs(a, 64, true); + _22(out, part26); + } else if (_30 === 38) { const part25 = rs.intAbs(a, 64, true); _22(out, part25); - } else if (_30 === 38) { - const part24 = rs.intAbs(a, 64, true); - _22(out, part24); } else if (_30 === 39) { const s2: rs.i64 = a; const w: rs.i64 = a; @@ -4448,78 +4562,88 @@ export function i64s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } _27(out, _573); } - const part11 = option_map$05k3lfb(rs.i64CheckedMul(x, y), (a0: rs.i64): rs.i64 => { + const part12 = option_map$05k3lfb(rs.i64CheckedMul(x, y), (a0: rs.i64): rs.i64 => { return a0; }); - putOpt(out, part11); - const part12 = rs.i64SaturatingMul(x, y); - _22(out, part12); - const part13 = option_map$05k3lfb(rs.intCheckedPow(x, k, 64, true), (a02: rs.i64): rs.i64 => { + putOpt(out, part12); + const part13 = rs.i64SaturatingMul(x, y); + _22(out, part13); + const part14 = option_map$05k3lfb(rs.intCheckedPow(x, k, 64, true), (a02: rs.i64): rs.i64 => { return a02; }); - putOpt(out, part13); - const part14 = option_map$05k3lfb(rs.intCheckedPow(x, n, 64, true), (a03: rs.i64): rs.i64 => { + putOpt(out, part14); + const part15 = option_map$05k3lfb(rs.intCheckedPow(x, n, 64, true), (a03: rs.i64): rs.i64 => { return a03; }); - putOpt(out, part14); - const part15 = rs.intSaturatingPow(x, k, 64, true); - _22(out, part15); - const part16 = rs.intIsolateHighestOne(x, 64, true); + putOpt(out, part15); + const part16 = rs.intSaturatingPow(x, k, 64, true); _22(out, part16); - const part17 = rs.intIsolateLowestOne(x, 64, true); + const part17 = rs.intIsolateHighestOne(x, 64, true); _22(out, part17); - const part18 = option_map$05k3lfb(rs.intCheckedAbs(x, 64, true), (a04: rs.i64): rs.i64 => { + const part18 = rs.intIsolateLowestOne(x, 64, true); + _22(out, part18); + const part19 = option_map$05k3lfb(rs.intCheckedAbs(x, 64, true), (a04: rs.i64): rs.i64 => { return a04; }); - putOpt(out, part18); + putOpt(out, part19); const _622: [rs.i64, boolean] = rs.intOverflowingAbs(x, 64, true); putPair(out, [_622[0], _622[1]] as [rs.i64, boolean]); - const part19 = rs.intSaturatingAbs(x, 64, true); - _22(out, part19); - const part20 = rs.intWrappingAbs(x, 64, true); + const part20 = rs.intSaturatingAbs(x, 64, true); _22(out, part20); + const part21 = rs.intWrappingAbs(x, 64, true); + _22(out, part21); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.u64ToBeBytes(rs.intUnsignedAbs(x, 64, true) as rs.u64))); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(Uint8Array.of(rs.i64Gt(x, 0) ? 1 : 0, rs.i64Lt(x, 0) ? 1 : 0))); - const part21 = option_map$05k3lfb(rs.intCheckedNeg(x, 64, true), (a05: rs.i64): rs.i64 => { + const part22 = option_map$05k3lfb(rs.intCheckedNeg(x, 64, true), (a05: rs.i64): rs.i64 => { return a05; }); - putOpt(out, part21); + putOpt(out, part22); const _659: [rs.i64, boolean] = rs.intOverflowingNeg(x, 64, true); putPair(out, [_659[0], _659[1]] as [rs.i64, boolean]); - const part22 = rs.i64SaturatingSub(0, x); - _22(out, part22); - const part23 = rs.intWrappingNeg(x, 64, true); + const part23 = rs.i64SaturatingSub(0, x); _22(out, part23); + const part24 = rs.intWrappingNeg(x, 64, true); + _22(out, part24); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.u64ToBeBytes(rs.u64Cast(x)))); } } } else if (_30 === 41) { const _681: rs.i64 | undefined = rs.nonZero(a); if (_681 !== undefined) { - const part10 = rs.intAbs(_681, 64, true); - _22(out, part10); + const part11 = rs.intAbs(_681, 64, true); + _22(out, part11); } } else if (_30 === 42) { - const part9 = rs.precondition(rs.i64CheckedAdd(a, b), "i64::unchecked_add cannot overflow"); - _22(out, part9); + const part10 = rs.precondition(rs.i64CheckedAdd(a, b), "i64::unchecked_add cannot overflow"); + _22(out, part10); } else if (_30 === 43) { - const part8 = rs.precondition(rs.i64CheckedSub(a, b), "i64::unchecked_sub cannot overflow"); - _22(out, part8); + const part9 = rs.precondition(rs.i64CheckedSub(a, b), "i64::unchecked_sub cannot overflow"); + _22(out, part9); } else if (_30 === 44) { - const part7 = rs.precondition(rs.i64CheckedMul(a, b), "i64::unchecked_mul cannot overflow"); - _22(out, part7); + const part8 = rs.precondition(rs.i64CheckedMul(a, b), "i64::unchecked_mul cannot overflow"); + _22(out, part8); } else if (_30 === 45) { - const part6 = rs.precondition(rs.intCheckedShl(a, k, 64, true), "i64::unchecked_shl cannot overflow"); - _22(out, part6); + const part7 = rs.precondition(rs.intCheckedShl(a, k, 64, true), "i64::unchecked_shl cannot overflow"); + _22(out, part7); } else if (_30 === 46) { - const part5 = rs.precondition(rs.intCheckedShr(a, k, 64, true), "i64::unchecked_shr cannot overflow"); - _22(out, part5); + const part6 = rs.precondition(rs.intCheckedShr(a, k, 64, true), "i64::unchecked_shr cannot overflow"); + _22(out, part6); } else if (_30 === 47) { - const part4 = rs.precondition(rs.intCheckedNeg(a, 64, true), "i64::unchecked_neg cannot overflow"); + const part5 = rs.precondition(rs.intCheckedNeg(a, 64, true), "i64::unchecked_neg cannot overflow"); + _22(out, part5); + } else if (_30 === 48) { + const part4 = rs.precondition(rs.nonZero(a), "NonZero::new_unchecked requires the argument to be non-zero"); _22(out, part4); + } else if (_30 === 49) { + const _711: [rs.i64 | undefined, rs.i64 | undefined] = [rs.nonZero(a), rs.nonZero(b)]; + if (_711[0] !== undefined) { + if (_711[1] !== undefined) { + const part3 = rs.precondition(rs.i64CheckedMul(_711[0], _711[1]), "i64::unchecked_mul cannot overflow"); + _22(out, part3); + } + } } else { - const part3 = rs.precondition(rs.nonZero(a), "NonZero::new_unchecked requires the argument to be non-zero"); - _22(out, part3); + rs.byteVecPush(out, 0); } } @@ -4570,92 +4694,92 @@ export function i128s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { _27(out6, v14); } }; - const _30: rs.u8 = rs.u8Rem(kind, 49); + const _30: rs.u8 = rs.u8Rem(kind, 51); if (_30 === 0) { - const part95 = rs.i128CheckedAdd(a, b); - putOpt(out, part95); - const part96 = rs.i128CheckedSub(a, b); + const part96 = rs.i128CheckedAdd(a, b); putOpt(out, part96); - const part97 = rs.i128CheckedMul(a, b); + const part97 = rs.i128CheckedSub(a, b); putOpt(out, part97); - const part98 = rs.i128SaturatingAdd(a, b); - _22(out, part98); - const part99 = rs.i128SaturatingSub(a, b); + const part98 = rs.i128CheckedMul(a, b); + putOpt(out, part98); + const part99 = rs.i128SaturatingAdd(a, b); _22(out, part99); - const part100 = rs.i128SaturatingMul(a, b); + const part100 = rs.i128SaturatingSub(a, b); _22(out, part100); - const part101 = rs.i128WrappingAdd(a, b); + const part101 = rs.i128SaturatingMul(a, b); _22(out, part101); - const part102 = rs.i128WrappingSub(a, b); + const part102 = rs.i128WrappingAdd(a, b); _22(out, part102); - const part103 = rs.i128WrappingMul(a, b); + const part103 = rs.i128WrappingSub(a, b); _22(out, part103); - const part104 = rs.intOverflowingAdd(a, b, 128, true); - putPair(out, part104); - const part105 = rs.intOverflowingSub(a, b, 128, true); + const part104 = rs.i128WrappingMul(a, b); + _22(out, part104); + const part105 = rs.intOverflowingAdd(a, b, 128, true); putPair(out, part105); - const part106 = rs.intOverflowingMul(a, b, 128, true); + const part106 = rs.intOverflowingSub(a, b, 128, true); putPair(out, part106); - const part107 = rs.intMidpoint(a, b, 128, true); - _22(out, part107); - const part108 = rs.intCheckedAdd(a, o, 128, true); - putOpt(out, part108); - const part109 = rs.intCheckedSub(a, o, 128, true); + const part107 = rs.intOverflowingMul(a, b, 128, true); + putPair(out, part107); + const part108 = rs.intMidpoint(a, b, 128, true); + _22(out, part108); + const part109 = rs.intCheckedAdd(a, o, 128, true); putOpt(out, part109); - const part110 = rs.intSaturatingAdd(a, o, 128, true); - _22(out, part110); - const part111 = rs.intSaturatingSub(a, o, 128, true); + const part110 = rs.intCheckedSub(a, o, 128, true); + putOpt(out, part110); + const part111 = rs.intSaturatingAdd(a, o, 128, true); _22(out, part111); - const part112 = rs.intWrappingAdd(a, o, 128, true); + const part112 = rs.intSaturatingSub(a, o, 128, true); _22(out, part112); - const part113 = rs.intWrappingSub(a, o, 128, true); + const part113 = rs.intWrappingAdd(a, o, 128, true); _22(out, part113); - const part114 = rs.intOverflowingAdd(a, o, 128, true); - putPair(out, part114); - const part115 = rs.intOverflowingSub(a, o, 128, true); + const part114 = rs.intWrappingSub(a, o, 128, true); + _22(out, part114); + const part115 = rs.intOverflowingAdd(a, o, 128, true); putPair(out, part115); + const part116 = rs.intOverflowingSub(a, o, 128, true); + putPair(out, part116); } else if (_30 === 1) { - const part87 = rs.intCheckedDiv(a, b, 128, true); - putOpt(out, part87); - const part88 = rs.intCheckedRem(a, b, 128, true); + const part88 = rs.intCheckedDiv(a, b, 128, true); putOpt(out, part88); - const part89 = rs.intCheckedDivEuclid(a, b, 128, true); + const part89 = rs.intCheckedRem(a, b, 128, true); putOpt(out, part89); - const part90 = rs.intCheckedRemEuclid(a, b, 128, true); + const part90 = rs.intCheckedDivEuclid(a, b, 128, true); putOpt(out, part90); + const part91 = rs.intCheckedRemEuclid(a, b, 128, true); + putOpt(out, part91); if (b !== 0) { - const part91 = rs.i128WrappingDiv(a, b); - _22(out, part91); - const part92 = rs.i128WrappingRem(a, b); + const part92 = rs.i128WrappingDiv(a, b); _22(out, part92); - const part93 = rs.intOverflowingDivEuclid(a, b, 128, true); - putPair(out, part93); - const part94 = rs.intOverflowingRemEuclid(a, b, 128, true); + const part93 = rs.i128WrappingRem(a, b); + _22(out, part93); + const part94 = rs.intOverflowingDivEuclid(a, b, 128, true); putPair(out, part94); + const part95 = rs.intOverflowingRemEuclid(a, b, 128, true); + putPair(out, part95); } } else if (_30 === 2) { - const part77 = rs.intCheckedNeg(a, 128, true); - putOpt(out, part77); - const part78 = rs.intWrappingNeg(a, 128, true); - _22(out, part78); - const part79 = rs.intOverflowingNeg(a, 128, true); - putPair(out, part79); - const part80 = rs.intCheckedAbs(a, 128, true); - putOpt(out, part80); - const part81 = rs.intWrappingAbs(a, 128, true); - _22(out, part81); - const part82 = rs.intSaturatingAbs(a, 128, true); + const part78 = rs.intCheckedNeg(a, 128, true); + putOpt(out, part78); + const part79 = rs.intWrappingNeg(a, 128, true); + _22(out, part79); + const part80 = rs.intOverflowingNeg(a, 128, true); + putPair(out, part80); + const part81 = rs.intCheckedAbs(a, 128, true); + putOpt(out, part81); + const part82 = rs.intWrappingAbs(a, 128, true); _22(out, part82); - const part83 = rs.intOverflowingAbs(a, 128, true); - putPair(out, part83); - const part84 = rs.i128SaturatingSub(0, a); - _22(out, part84); - const part85 = rs.intSignum(a, 128, true); + const part83 = rs.intSaturatingAbs(a, 128, true); + _22(out, part83); + const part84 = rs.intOverflowingAbs(a, 128, true); + putPair(out, part84); + const part85 = rs.i128SaturatingSub(0, a); _22(out, part85); + const part86 = rs.intSignum(a, 128, true); + _22(out, part86); rs.byteVecPush(out, rs.i128Gt(a, 0) ? 1 : 0); rs.byteVecPush(out, rs.i128Lt(a, 0) ? 1 : 0); - const part86 = rs.intCheckedIsqrt(a, 128, true); - putOpt(out, part86); + const part87 = rs.intCheckedIsqrt(a, 128, true); + putOpt(out, part87); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.u128ToBeBytes(rs.intUnsignedAbs(a, 128, true) as rs.u128))); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.u128ToBeBytes(rs.u128Cast(a)))); } else if (_30 === 3) { @@ -4666,14 +4790,14 @@ export function i128s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { break; } const e: rs.u32 = _208; - const part73 = rs.intCheckedPow(a, e, 128, true); - putOpt(out, part73); - const part74 = rs.intWrappingPow(a, e, 128, true); - _22(out, part74); - const part75 = rs.intSaturatingPow(a, e, 128, true); + const part74 = rs.intCheckedPow(a, e, 128, true); + putOpt(out, part74); + const part75 = rs.intWrappingPow(a, e, 128, true); _22(out, part75); - const part76 = rs.intOverflowingPow(a, e, 128, true); - putPair(out, part76); + const part76 = rs.intSaturatingPow(a, e, 128, true); + _22(out, part76); + const part77 = rs.intOverflowingPow(a, e, 128, true); + putPair(out, part77); } } else if (_30 === 4) { const iter2: rs.Iter = rs.iterSlice([n, k]); @@ -4683,26 +4807,26 @@ export function i128s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { break; } const s: rs.u32 = _231; - const part63 = rs.intCheckedShl(a, s, 128, true); - putOpt(out, part63); - const part64 = rs.intCheckedShr(a, s, 128, true); + const part64 = rs.intCheckedShl(a, s, 128, true); putOpt(out, part64); - const part65 = rs.intWrappingShl(a, s, 128, true); - _22(out, part65); - const part66 = rs.intWrappingShr(a, s, 128, true); + const part65 = rs.intCheckedShr(a, s, 128, true); + putOpt(out, part65); + const part66 = rs.intWrappingShl(a, s, 128, true); _22(out, part66); - const part67 = rs.intOverflowingShl(a, s, 128, true); - putPair(out, part67); - const part68 = rs.intOverflowingShr(a, s, 128, true); + const part67 = rs.intWrappingShr(a, s, 128, true); + _22(out, part67); + const part68 = rs.intOverflowingShl(a, s, 128, true); putPair(out, part68); - const part69 = rs.intUnboundedShl(a, s, 128, true); - _22(out, part69); - const part70 = rs.intUnboundedShr(a, s, 128, true); + const part69 = rs.intOverflowingShr(a, s, 128, true); + putPair(out, part69); + const part70 = rs.intUnboundedShl(a, s, 128, true); _22(out, part70); - const part71 = rs.intRotateLeft(a, s, 128, true); + const part71 = rs.intUnboundedShr(a, s, 128, true); _22(out, part71); - const part72 = rs.intRotateRight(a, s, 128, true); + const part72 = rs.intRotateLeft(a, s, 128, true); _22(out, part72); + const part73 = rs.intRotateRight(a, s, 128, true); + _22(out, part73); } } else if (_30 === 5) { const iter3: rs.Iter = rs.iterSlice([rs.intCountOnes(a, 128, true), rs.intCountZeros(a, 128, true), rs.i128LeadingZeros(a), rs.i128TrailingZeros(a), rs.i128LeadingOnes(a), rs.intTrailingOnes(a, 128, true)]); @@ -4721,48 +4845,48 @@ export function i128s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } _22(out, _300); } - const part59 = rs.intHighestOne(a, 128, true); - putOptU32(out, part59); - const part60 = rs.intLowestOne(a, 128, true); + const part60 = rs.intHighestOne(a, 128, true); putOptU32(out, part60); - const part61 = rs.intIsolateHighestOne(a, 128, true); - _22(out, part61); - const part62 = rs.intIsolateLowestOne(a, 128, true); + const part61 = rs.intLowestOne(a, 128, true); + putOptU32(out, part61); + const part62 = rs.intIsolateHighestOne(a, 128, true); _22(out, part62); + const part63 = rs.intIsolateLowestOne(a, 128, true); + _22(out, part63); _22(out, { hi: 0x7fffffff, w2: 0xffffffff, w1: 0xffffffff, lo: 0xffffffff } as rs.i128); _22(out, { hi: -0x80000000, w2: 0, w1: 0, lo: 0 } as rs.i128); } else if (_30 === 6) { - const part56 = rs.intCheckedIlog(a, b, 128, true); - putOptU32(out, part56); - const part57 = rs.intCheckedIlog2(a, 128, true); + const part57 = rs.intCheckedIlog(a, b, 128, true); putOptU32(out, part57); - const part58 = rs.intCheckedIlog10(a, 128, true); + const part58 = rs.intCheckedIlog2(a, 128, true); putOptU32(out, part58); + const part59 = rs.intCheckedIlog10(a, 128, true); + putOptU32(out, part59); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.u128ToBeBytes(rs.intAbsDiff(a, b, 128, true) as rs.u128))); } else if (_30 === 7) { - const part55 = rs.intPow(a, k, 128, true); - _22(out, part55); + const part56 = rs.intPow(a, k, 128, true); + _22(out, part56); } else if (_30 === 8) { - const part54 = rs.intPow(a, n, 128, true); - _22(out, part54); + const part55 = rs.intPow(a, n, 128, true); + _22(out, part55); } else if (_30 === 9) { - const part53 = rs.intDivEuclid(a, b, 128, true); - _22(out, part53); + const part54 = rs.intDivEuclid(a, b, 128, true); + _22(out, part54); } else if (_30 === 10) { - const part52 = rs.intRemEuclid(a, b, 128, true); - _22(out, part52); + const part53 = rs.intRemEuclid(a, b, 128, true); + _22(out, part53); } else if (_30 === 11) { - const part51 = rs.intIsqrt(a, 128, true); - _22(out, part51); + const part52 = rs.intIsqrt(a, 128, true); + _22(out, part52); } else if (_30 === 12) { - const part50 = rs.intIlog(a, b, 128, true); - _27(out, part50); + const part51 = rs.intIlog(a, b, 128, true); + _27(out, part51); } else if (_30 === 13) { - const part49 = rs.intIlog2(a, 128, true); - _27(out, part49); + const part50 = rs.intIlog2(a, 128, true); + _27(out, part50); } else if (_30 === 14) { - const part48 = rs.intIlog10(a, 128, true); - _27(out, part48); + const part49 = rs.intIlog10(a, 128, true); + _27(out, part49); } else if (_30 === 15) { _22(out, rs.i128Add(a, b)); } else if (_30 === 16) { @@ -4774,60 +4898,60 @@ export function i128s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } else if (_30 === 19) { _22(out, rs.i128Rem(a, b)); } else if (_30 === 20) { - const part42 = rs.intStrictNeg(a, 128, true); - _22(out, part42); + const part43 = rs.intStrictNeg(a, 128, true); + _22(out, part43); } else if (_30 === 21) { _22(out, rs.i128Shl(a, k)); } else if (_30 === 22) { _22(out, rs.i128Shr(a, k)); } else if (_30 === 23) { - const part39 = rs.intPow(a, k, 128, true); - _22(out, part39); + const part40 = rs.intPow(a, k, 128, true); + _22(out, part40); } else if (_30 === 24) { - const part38 = rs.intDivEuclid(a, b, 128, true); - _22(out, part38); + const part39 = rs.intDivEuclid(a, b, 128, true); + _22(out, part39); } else if (_30 === 25) { - const part37 = rs.intRemEuclid(a, b, 128, true); - _22(out, part37); + const part38 = rs.intRemEuclid(a, b, 128, true); + _22(out, part38); } else if (_30 === 26) { - const part36 = rs.intStrictAdd(a, o, 128, true); - _22(out, part36); + const part37 = rs.intStrictAdd(a, o, 128, true); + _22(out, part37); } else if (_30 === 27) { - const part35 = rs.intStrictSub(a, o, 128, true); - _22(out, part35); + const part36 = rs.intStrictSub(a, o, 128, true); + _22(out, part36); } else if (_30 === 28) { - const part34 = rs.i128WrappingDiv(a, b); - _22(out, part34); + const part35 = rs.i128WrappingDiv(a, b); + _22(out, part35); } else if (_30 === 29) { - const part33 = rs.i128WrappingRem(a, b); - _22(out, part33); + const part34 = rs.i128WrappingRem(a, b); + _22(out, part34); } else if (_30 === 30) { - const part32 = rs.intWrappingDivEuclid(a, b, 128, true); - _22(out, part32); + const part33 = rs.intWrappingDivEuclid(a, b, 128, true); + _22(out, part33); } else if (_30 === 31) { - const part31 = rs.intWrappingRemEuclid(a, b, 128, true); - _22(out, part31); + const part32 = rs.intWrappingRemEuclid(a, b, 128, true); + _22(out, part32); } else if (_30 === 32) { - const part30 = rs.intOverflowingDiv(a, b, 128, true); - putPair(out, part30); + const part31 = rs.intOverflowingDiv(a, b, 128, true); + putPair(out, part31); } else if (_30 === 33) { - const part29 = rs.intOverflowingRem(a, b, 128, true); - putPair(out, part29); + const part30 = rs.intOverflowingRem(a, b, 128, true); + putPair(out, part30); } else if (_30 === 34) { - const part28 = rs.intOverflowingDivEuclid(a, b, 128, true); - putPair(out, part28); + const part29 = rs.intOverflowingDivEuclid(a, b, 128, true); + putPair(out, part29); } else if (_30 === 35) { - const part27 = rs.intOverflowingRemEuclid(a, b, 128, true); - putPair(out, part27); + const part28 = rs.intOverflowingRemEuclid(a, b, 128, true); + putPair(out, part28); } else if (_30 === 36) { - const part26 = rs.i128SaturatingDiv(a, b); - _22(out, part26); + const part27 = rs.i128SaturatingDiv(a, b); + _22(out, part27); } else if (_30 === 37) { + const part26 = rs.intAbs(a, 128, true); + _22(out, part26); + } else if (_30 === 38) { const part25 = rs.intAbs(a, 128, true); _22(out, part25); - } else if (_30 === 38) { - const part24 = rs.intAbs(a, 128, true); - _22(out, part24); } else if (_30 === 39) { const s2: rs.i128 = a; const w: rs.i128 = a; @@ -4894,78 +5018,88 @@ export function i128s(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } _27(out, _573); } - const part11 = option_map$1ocvprc(rs.i128CheckedMul(x, y), (a0: rs.i128): rs.i128 => { + const part12 = option_map$1ocvprc(rs.i128CheckedMul(x, y), (a0: rs.i128): rs.i128 => { return a0; }); - putOpt(out, part11); - const part12 = rs.i128SaturatingMul(x, y); - _22(out, part12); - const part13 = option_map$1ocvprc(rs.intCheckedPow(x, k, 128, true), (a02: rs.i128): rs.i128 => { + putOpt(out, part12); + const part13 = rs.i128SaturatingMul(x, y); + _22(out, part13); + const part14 = option_map$1ocvprc(rs.intCheckedPow(x, k, 128, true), (a02: rs.i128): rs.i128 => { return a02; }); - putOpt(out, part13); - const part14 = option_map$1ocvprc(rs.intCheckedPow(x, n, 128, true), (a03: rs.i128): rs.i128 => { + putOpt(out, part14); + const part15 = option_map$1ocvprc(rs.intCheckedPow(x, n, 128, true), (a03: rs.i128): rs.i128 => { return a03; }); - putOpt(out, part14); - const part15 = rs.intSaturatingPow(x, k, 128, true); - _22(out, part15); - const part16 = rs.intIsolateHighestOne(x, 128, true); + putOpt(out, part15); + const part16 = rs.intSaturatingPow(x, k, 128, true); _22(out, part16); - const part17 = rs.intIsolateLowestOne(x, 128, true); + const part17 = rs.intIsolateHighestOne(x, 128, true); _22(out, part17); - const part18 = option_map$1ocvprc(rs.intCheckedAbs(x, 128, true), (a04: rs.i128): rs.i128 => { + const part18 = rs.intIsolateLowestOne(x, 128, true); + _22(out, part18); + const part19 = option_map$1ocvprc(rs.intCheckedAbs(x, 128, true), (a04: rs.i128): rs.i128 => { return a04; }); - putOpt(out, part18); + putOpt(out, part19); const _622: [rs.i128, boolean] = rs.intOverflowingAbs(x, 128, true); putPair(out, [_622[0], _622[1]] as [rs.i128, boolean]); - const part19 = rs.intSaturatingAbs(x, 128, true); - _22(out, part19); - const part20 = rs.intWrappingAbs(x, 128, true); + const part20 = rs.intSaturatingAbs(x, 128, true); _22(out, part20); + const part21 = rs.intWrappingAbs(x, 128, true); + _22(out, part21); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.u128ToBeBytes(rs.intUnsignedAbs(x, 128, true) as rs.u128))); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(Uint8Array.of(rs.i128Gt(x, 0) ? 1 : 0, rs.i128Lt(x, 0) ? 1 : 0))); - const part21 = option_map$1ocvprc(rs.intCheckedNeg(x, 128, true), (a05: rs.i128): rs.i128 => { + const part22 = option_map$1ocvprc(rs.intCheckedNeg(x, 128, true), (a05: rs.i128): rs.i128 => { return a05; }); - putOpt(out, part21); + putOpt(out, part22); const _659: [rs.i128, boolean] = rs.intOverflowingNeg(x, 128, true); putPair(out, [_659[0], _659[1]] as [rs.i128, boolean]); - const part22 = rs.i128SaturatingSub(0, x); - _22(out, part22); - const part23 = rs.intWrappingNeg(x, 128, true); + const part23 = rs.i128SaturatingSub(0, x); _22(out, part23); + const part24 = rs.intWrappingNeg(x, 128, true); + _22(out, part24); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.u128ToBeBytes(rs.u128Cast(x)))); } } } else if (_30 === 41) { const _681: rs.i128 | undefined = rs.nonZero(a); if (_681 !== undefined) { - const part10 = rs.intAbs(_681, 128, true); - _22(out, part10); + const part11 = rs.intAbs(_681, 128, true); + _22(out, part11); } } else if (_30 === 42) { - const part9 = rs.precondition(rs.i128CheckedAdd(a, b), "i128::unchecked_add cannot overflow"); - _22(out, part9); + const part10 = rs.precondition(rs.i128CheckedAdd(a, b), "i128::unchecked_add cannot overflow"); + _22(out, part10); } else if (_30 === 43) { - const part8 = rs.precondition(rs.i128CheckedSub(a, b), "i128::unchecked_sub cannot overflow"); - _22(out, part8); + const part9 = rs.precondition(rs.i128CheckedSub(a, b), "i128::unchecked_sub cannot overflow"); + _22(out, part9); } else if (_30 === 44) { - const part7 = rs.precondition(rs.i128CheckedMul(a, b), "i128::unchecked_mul cannot overflow"); - _22(out, part7); + const part8 = rs.precondition(rs.i128CheckedMul(a, b), "i128::unchecked_mul cannot overflow"); + _22(out, part8); } else if (_30 === 45) { - const part6 = rs.precondition(rs.intCheckedShl(a, k, 128, true), "i128::unchecked_shl cannot overflow"); - _22(out, part6); + const part7 = rs.precondition(rs.intCheckedShl(a, k, 128, true), "i128::unchecked_shl cannot overflow"); + _22(out, part7); } else if (_30 === 46) { - const part5 = rs.precondition(rs.intCheckedShr(a, k, 128, true), "i128::unchecked_shr cannot overflow"); - _22(out, part5); + const part6 = rs.precondition(rs.intCheckedShr(a, k, 128, true), "i128::unchecked_shr cannot overflow"); + _22(out, part6); } else if (_30 === 47) { - const part4 = rs.precondition(rs.intCheckedNeg(a, 128, true), "i128::unchecked_neg cannot overflow"); + const part5 = rs.precondition(rs.intCheckedNeg(a, 128, true), "i128::unchecked_neg cannot overflow"); + _22(out, part5); + } else if (_30 === 48) { + const part4 = rs.precondition(rs.nonZero(a), "NonZero::new_unchecked requires the argument to be non-zero"); _22(out, part4); + } else if (_30 === 49) { + const _711: [rs.i128 | undefined, rs.i128 | undefined] = [rs.nonZero(a), rs.nonZero(b)]; + if (_711[0] !== undefined) { + if (_711[1] !== undefined) { + const part3 = rs.precondition(rs.i128CheckedMul(_711[0], _711[1]), "i128::unchecked_mul cannot overflow"); + _22(out, part3); + } + } } else { - const part3 = rs.precondition(rs.nonZero(a), "NonZero::new_unchecked requires the argument to be non-zero"); - _22(out, part3); + rs.byteVecPush(out, 0); } } @@ -5016,92 +5150,92 @@ export function isizes(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { _27(out6, v14); } }; - const _30: rs.u8 = rs.u8Rem(kind, 49); + const _30: rs.u8 = rs.u8Rem(kind, 51); if (_30 === 0) { - const part95 = rs.isizeCheckedAdd(a, b); - putOpt(out, part95); - const part96 = rs.isizeCheckedSub(a, b); + const part96 = rs.isizeCheckedAdd(a, b); putOpt(out, part96); - const part97 = rs.isizeCheckedMul(a, b); + const part97 = rs.isizeCheckedSub(a, b); putOpt(out, part97); - const part98 = rs.isizeSaturatingAdd(a, b); - _22(out, part98); - const part99 = rs.isizeSaturatingSub(a, b); + const part98 = rs.isizeCheckedMul(a, b); + putOpt(out, part98); + const part99 = rs.isizeSaturatingAdd(a, b); _22(out, part99); - const part100 = rs.isizeSaturatingMul(a, b); + const part100 = rs.isizeSaturatingSub(a, b); _22(out, part100); - const part101 = rs.isizeWrappingAdd(a, b); + const part101 = rs.isizeSaturatingMul(a, b); _22(out, part101); - const part102 = rs.isizeWrappingSub(a, b); + const part102 = rs.isizeWrappingAdd(a, b); _22(out, part102); - const part103 = rs.isizeWrappingMul(a, b); + const part103 = rs.isizeWrappingSub(a, b); _22(out, part103); - const part104 = rs.intOverflowingAdd(a, b, 32, true); - putPair(out, part104); - const part105 = rs.intOverflowingSub(a, b, 32, true); + const part104 = rs.isizeWrappingMul(a, b); + _22(out, part104); + const part105 = rs.intOverflowingAdd(a, b, 32, true); putPair(out, part105); - const part106 = rs.intOverflowingMul(a, b, 32, true); + const part106 = rs.intOverflowingSub(a, b, 32, true); putPair(out, part106); - const part107 = rs.intMidpoint(a, b, 32, true); - _22(out, part107); - const part108 = rs.intCheckedAdd(a, o, 32, true); - putOpt(out, part108); - const part109 = rs.intCheckedSub(a, o, 32, true); + const part107 = rs.intOverflowingMul(a, b, 32, true); + putPair(out, part107); + const part108 = rs.intMidpoint(a, b, 32, true); + _22(out, part108); + const part109 = rs.intCheckedAdd(a, o, 32, true); putOpt(out, part109); - const part110 = rs.intSaturatingAdd(a, o, 32, true); - _22(out, part110); - const part111 = rs.intSaturatingSub(a, o, 32, true); + const part110 = rs.intCheckedSub(a, o, 32, true); + putOpt(out, part110); + const part111 = rs.intSaturatingAdd(a, o, 32, true); _22(out, part111); - const part112 = rs.intWrappingAdd(a, o, 32, true); + const part112 = rs.intSaturatingSub(a, o, 32, true); _22(out, part112); - const part113 = rs.intWrappingSub(a, o, 32, true); + const part113 = rs.intWrappingAdd(a, o, 32, true); _22(out, part113); - const part114 = rs.intOverflowingAdd(a, o, 32, true); - putPair(out, part114); - const part115 = rs.intOverflowingSub(a, o, 32, true); + const part114 = rs.intWrappingSub(a, o, 32, true); + _22(out, part114); + const part115 = rs.intOverflowingAdd(a, o, 32, true); putPair(out, part115); + const part116 = rs.intOverflowingSub(a, o, 32, true); + putPair(out, part116); } else if (_30 === 1) { - const part87 = rs.intCheckedDiv(a, b, 32, true); - putOpt(out, part87); - const part88 = rs.intCheckedRem(a, b, 32, true); + const part88 = rs.intCheckedDiv(a, b, 32, true); putOpt(out, part88); - const part89 = rs.intCheckedDivEuclid(a, b, 32, true); + const part89 = rs.intCheckedRem(a, b, 32, true); putOpt(out, part89); - const part90 = rs.intCheckedRemEuclid(a, b, 32, true); + const part90 = rs.intCheckedDivEuclid(a, b, 32, true); putOpt(out, part90); + const part91 = rs.intCheckedRemEuclid(a, b, 32, true); + putOpt(out, part91); if (b !== 0) { - const part91 = rs.isizeWrappingDiv(a, b); - _22(out, part91); - const part92 = rs.isizeWrappingRem(a, b); + const part92 = rs.isizeWrappingDiv(a, b); _22(out, part92); - const part93 = rs.intOverflowingDivEuclid(a, b, 32, true); - putPair(out, part93); - const part94 = rs.intOverflowingRemEuclid(a, b, 32, true); + const part93 = rs.isizeWrappingRem(a, b); + _22(out, part93); + const part94 = rs.intOverflowingDivEuclid(a, b, 32, true); putPair(out, part94); + const part95 = rs.intOverflowingRemEuclid(a, b, 32, true); + putPair(out, part95); } } else if (_30 === 2) { - const part77 = rs.intCheckedNeg(a, 32, true); - putOpt(out, part77); - const part78 = rs.intWrappingNeg(a, 32, true); - _22(out, part78); - const part79 = rs.intOverflowingNeg(a, 32, true); - putPair(out, part79); - const part80 = rs.intCheckedAbs(a, 32, true); - putOpt(out, part80); - const part81 = rs.intWrappingAbs(a, 32, true); - _22(out, part81); - const part82 = rs.intSaturatingAbs(a, 32, true); + const part78 = rs.intCheckedNeg(a, 32, true); + putOpt(out, part78); + const part79 = rs.intWrappingNeg(a, 32, true); + _22(out, part79); + const part80 = rs.intOverflowingNeg(a, 32, true); + putPair(out, part80); + const part81 = rs.intCheckedAbs(a, 32, true); + putOpt(out, part81); + const part82 = rs.intWrappingAbs(a, 32, true); _22(out, part82); - const part83 = rs.intOverflowingAbs(a, 32, true); - putPair(out, part83); - const part84 = rs.isizeSaturatingSub(0, a); - _22(out, part84); - const part85 = rs.intSignum(a, 32, true); + const part83 = rs.intSaturatingAbs(a, 32, true); + _22(out, part83); + const part84 = rs.intOverflowingAbs(a, 32, true); + putPair(out, part84); + const part85 = rs.isizeSaturatingSub(0, a); _22(out, part85); + const part86 = rs.intSignum(a, 32, true); + _22(out, part86); rs.byteVecPush(out, a > 0 ? 1 : 0); rs.byteVecPush(out, a < 0 ? 1 : 0); - const part86 = rs.intCheckedIsqrt(a, 32, true); - putOpt(out, part86); + const part87 = rs.intCheckedIsqrt(a, 32, true); + putOpt(out, part87); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.usizeToBeBytes(rs.intUnsignedAbs(a, 32, true) as rs.usize))); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.usizeToBeBytes(a >>> 0))); } else if (_30 === 3) { @@ -5112,14 +5246,14 @@ export function isizes(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { break; } const e: rs.u32 = _208; - const part73 = rs.intCheckedPow(a, e, 32, true); - putOpt(out, part73); - const part74 = rs.intWrappingPow(a, e, 32, true); - _22(out, part74); - const part75 = rs.intSaturatingPow(a, e, 32, true); + const part74 = rs.intCheckedPow(a, e, 32, true); + putOpt(out, part74); + const part75 = rs.intWrappingPow(a, e, 32, true); _22(out, part75); - const part76 = rs.intOverflowingPow(a, e, 32, true); - putPair(out, part76); + const part76 = rs.intSaturatingPow(a, e, 32, true); + _22(out, part76); + const part77 = rs.intOverflowingPow(a, e, 32, true); + putPair(out, part77); } } else if (_30 === 4) { const iter2: rs.Iter = rs.iterSlice([n, k]); @@ -5129,26 +5263,26 @@ export function isizes(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { break; } const s: rs.u32 = _231; - const part63 = rs.intCheckedShl(a, s, 32, true); - putOpt(out, part63); - const part64 = rs.intCheckedShr(a, s, 32, true); + const part64 = rs.intCheckedShl(a, s, 32, true); putOpt(out, part64); - const part65 = rs.intWrappingShl(a, s, 32, true); - _22(out, part65); - const part66 = rs.intWrappingShr(a, s, 32, true); + const part65 = rs.intCheckedShr(a, s, 32, true); + putOpt(out, part65); + const part66 = rs.intWrappingShl(a, s, 32, true); _22(out, part66); - const part67 = rs.intOverflowingShl(a, s, 32, true); - putPair(out, part67); - const part68 = rs.intOverflowingShr(a, s, 32, true); + const part67 = rs.intWrappingShr(a, s, 32, true); + _22(out, part67); + const part68 = rs.intOverflowingShl(a, s, 32, true); putPair(out, part68); - const part69 = rs.intUnboundedShl(a, s, 32, true); - _22(out, part69); - const part70 = rs.intUnboundedShr(a, s, 32, true); + const part69 = rs.intOverflowingShr(a, s, 32, true); + putPair(out, part69); + const part70 = rs.intUnboundedShl(a, s, 32, true); _22(out, part70); - const part71 = rs.intRotateLeft(a, s, 32, true); + const part71 = rs.intUnboundedShr(a, s, 32, true); _22(out, part71); - const part72 = rs.intRotateRight(a, s, 32, true); + const part72 = rs.intRotateLeft(a, s, 32, true); _22(out, part72); + const part73 = rs.intRotateRight(a, s, 32, true); + _22(out, part73); } } else if (_30 === 5) { const iter3: rs.Iter = rs.iterSlice([rs.intCountOnes(a, 32, true), rs.intCountZeros(a, 32, true), rs.isizeLeadingZeros(a), rs.isizeTrailingZeros(a), rs.isizeLeadingOnes(a), rs.intTrailingOnes(a, 32, true)]); @@ -5167,48 +5301,48 @@ export function isizes(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } _22(out, _300); } - const part59 = rs.intHighestOne(a, 32, true); - putOptU32(out, part59); - const part60 = rs.intLowestOne(a, 32, true); + const part60 = rs.intHighestOne(a, 32, true); putOptU32(out, part60); - const part61 = rs.intIsolateHighestOne(a, 32, true); - _22(out, part61); - const part62 = rs.intIsolateLowestOne(a, 32, true); + const part61 = rs.intLowestOne(a, 32, true); + putOptU32(out, part61); + const part62 = rs.intIsolateHighestOne(a, 32, true); _22(out, part62); + const part63 = rs.intIsolateLowestOne(a, 32, true); + _22(out, part63); _22(out, 2147483647); _22(out, -2147483648); } else if (_30 === 6) { - const part56 = rs.intCheckedIlog(a, b, 32, true); - putOptU32(out, part56); - const part57 = rs.intCheckedIlog2(a, 32, true); + const part57 = rs.intCheckedIlog(a, b, 32, true); putOptU32(out, part57); - const part58 = rs.intCheckedIlog10(a, 32, true); + const part58 = rs.intCheckedIlog2(a, 32, true); putOptU32(out, part58); + const part59 = rs.intCheckedIlog10(a, 32, true); + putOptU32(out, part59); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.usizeToBeBytes(rs.intAbsDiff(a, b, 32, true) as rs.usize))); } else if (_30 === 7) { - const part55 = rs.intPow(a, k, 32, true); - _22(out, part55); + const part56 = rs.intPow(a, k, 32, true); + _22(out, part56); } else if (_30 === 8) { - const part54 = rs.intPow(a, n, 32, true); - _22(out, part54); + const part55 = rs.intPow(a, n, 32, true); + _22(out, part55); } else if (_30 === 9) { - const part53 = rs.intDivEuclid(a, b, 32, true); - _22(out, part53); + const part54 = rs.intDivEuclid(a, b, 32, true); + _22(out, part54); } else if (_30 === 10) { - const part52 = rs.intRemEuclid(a, b, 32, true); - _22(out, part52); + const part53 = rs.intRemEuclid(a, b, 32, true); + _22(out, part53); } else if (_30 === 11) { - const part51 = rs.intIsqrt(a, 32, true); - _22(out, part51); + const part52 = rs.intIsqrt(a, 32, true); + _22(out, part52); } else if (_30 === 12) { - const part50 = rs.intIlog(a, b, 32, true); - _27(out, part50); + const part51 = rs.intIlog(a, b, 32, true); + _27(out, part51); } else if (_30 === 13) { - const part49 = rs.intIlog2(a, 32, true); - _27(out, part49); + const part50 = rs.intIlog2(a, 32, true); + _27(out, part50); } else if (_30 === 14) { - const part48 = rs.intIlog10(a, 32, true); - _27(out, part48); + const part49 = rs.intIlog10(a, 32, true); + _27(out, part49); } else if (_30 === 15) { _22(out, rs.isizeAdd(a, b)); } else if (_30 === 16) { @@ -5220,60 +5354,60 @@ export function isizes(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } else if (_30 === 19) { _22(out, rs.isizeRem(a, b)); } else if (_30 === 20) { - const part42 = rs.intStrictNeg(a, 32, true); - _22(out, part42); + const part43 = rs.intStrictNeg(a, 32, true); + _22(out, part43); } else if (_30 === 21) { _22(out, rs.isizeShl(a, k)); } else if (_30 === 22) { _22(out, rs.isizeShr(a, k)); } else if (_30 === 23) { - const part39 = rs.intPow(a, k, 32, true); - _22(out, part39); + const part40 = rs.intPow(a, k, 32, true); + _22(out, part40); } else if (_30 === 24) { - const part38 = rs.intDivEuclid(a, b, 32, true); - _22(out, part38); + const part39 = rs.intDivEuclid(a, b, 32, true); + _22(out, part39); } else if (_30 === 25) { - const part37 = rs.intRemEuclid(a, b, 32, true); - _22(out, part37); + const part38 = rs.intRemEuclid(a, b, 32, true); + _22(out, part38); } else if (_30 === 26) { - const part36 = rs.intStrictAdd(a, o, 32, true); - _22(out, part36); + const part37 = rs.intStrictAdd(a, o, 32, true); + _22(out, part37); } else if (_30 === 27) { - const part35 = rs.intStrictSub(a, o, 32, true); - _22(out, part35); + const part36 = rs.intStrictSub(a, o, 32, true); + _22(out, part36); } else if (_30 === 28) { - const part34 = rs.isizeWrappingDiv(a, b); - _22(out, part34); + const part35 = rs.isizeWrappingDiv(a, b); + _22(out, part35); } else if (_30 === 29) { - const part33 = rs.isizeWrappingRem(a, b); - _22(out, part33); + const part34 = rs.isizeWrappingRem(a, b); + _22(out, part34); } else if (_30 === 30) { - const part32 = rs.intWrappingDivEuclid(a, b, 32, true); - _22(out, part32); + const part33 = rs.intWrappingDivEuclid(a, b, 32, true); + _22(out, part33); } else if (_30 === 31) { - const part31 = rs.intWrappingRemEuclid(a, b, 32, true); - _22(out, part31); + const part32 = rs.intWrappingRemEuclid(a, b, 32, true); + _22(out, part32); } else if (_30 === 32) { - const part30 = rs.intOverflowingDiv(a, b, 32, true); - putPair(out, part30); + const part31 = rs.intOverflowingDiv(a, b, 32, true); + putPair(out, part31); } else if (_30 === 33) { - const part29 = rs.intOverflowingRem(a, b, 32, true); - putPair(out, part29); + const part30 = rs.intOverflowingRem(a, b, 32, true); + putPair(out, part30); } else if (_30 === 34) { - const part28 = rs.intOverflowingDivEuclid(a, b, 32, true); - putPair(out, part28); + const part29 = rs.intOverflowingDivEuclid(a, b, 32, true); + putPair(out, part29); } else if (_30 === 35) { - const part27 = rs.intOverflowingRemEuclid(a, b, 32, true); - putPair(out, part27); + const part28 = rs.intOverflowingRemEuclid(a, b, 32, true); + putPair(out, part28); } else if (_30 === 36) { - const part26 = rs.isizeSaturatingDiv(a, b); - _22(out, part26); + const part27 = rs.isizeSaturatingDiv(a, b); + _22(out, part27); } else if (_30 === 37) { + const part26 = rs.intAbs(a, 32, true); + _22(out, part26); + } else if (_30 === 38) { const part25 = rs.intAbs(a, 32, true); _22(out, part25); - } else if (_30 === 38) { - const part24 = rs.intAbs(a, 32, true); - _22(out, part24); } else if (_30 === 39) { const s2: rs.isize = a; const w: rs.isize = a; @@ -5340,78 +5474,88 @@ export function isizes(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } _27(out, _573); } - const part11 = option_map$1vj7z9f(rs.isizeCheckedMul(x, y), (a0: rs.isize): rs.isize => { + const part12 = option_map$1vj7z9f(rs.isizeCheckedMul(x, y), (a0: rs.isize): rs.isize => { return a0; }); - putOpt(out, part11); - const part12 = rs.isizeSaturatingMul(x, y); - _22(out, part12); - const part13 = option_map$1vj7z9f(rs.intCheckedPow(x, k, 32, true), (a02: rs.isize): rs.isize => { + putOpt(out, part12); + const part13 = rs.isizeSaturatingMul(x, y); + _22(out, part13); + const part14 = option_map$1vj7z9f(rs.intCheckedPow(x, k, 32, true), (a02: rs.isize): rs.isize => { return a02; }); - putOpt(out, part13); - const part14 = option_map$1vj7z9f(rs.intCheckedPow(x, n, 32, true), (a03: rs.isize): rs.isize => { + putOpt(out, part14); + const part15 = option_map$1vj7z9f(rs.intCheckedPow(x, n, 32, true), (a03: rs.isize): rs.isize => { return a03; }); - putOpt(out, part14); - const part15 = rs.intSaturatingPow(x, k, 32, true); - _22(out, part15); - const part16 = rs.intIsolateHighestOne(x, 32, true); + putOpt(out, part15); + const part16 = rs.intSaturatingPow(x, k, 32, true); _22(out, part16); - const part17 = rs.intIsolateLowestOne(x, 32, true); + const part17 = rs.intIsolateHighestOne(x, 32, true); _22(out, part17); - const part18 = option_map$1vj7z9f(rs.intCheckedAbs(x, 32, true), (a04: rs.isize): rs.isize => { + const part18 = rs.intIsolateLowestOne(x, 32, true); + _22(out, part18); + const part19 = option_map$1vj7z9f(rs.intCheckedAbs(x, 32, true), (a04: rs.isize): rs.isize => { return a04; }); - putOpt(out, part18); + putOpt(out, part19); const _622: [rs.isize, boolean] = rs.intOverflowingAbs(x, 32, true); putPair(out, [_622[0], _622[1]] as [rs.isize, boolean]); - const part19 = rs.intSaturatingAbs(x, 32, true); - _22(out, part19); - const part20 = rs.intWrappingAbs(x, 32, true); + const part20 = rs.intSaturatingAbs(x, 32, true); _22(out, part20); + const part21 = rs.intWrappingAbs(x, 32, true); + _22(out, part21); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.usizeToBeBytes(rs.intUnsignedAbs(x, 32, true) as rs.usize))); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(Uint8Array.of(x > 0 ? 1 : 0, x < 0 ? 1 : 0))); - const part21 = option_map$1vj7z9f(rs.intCheckedNeg(x, 32, true), (a05: rs.isize): rs.isize => { + const part22 = option_map$1vj7z9f(rs.intCheckedNeg(x, 32, true), (a05: rs.isize): rs.isize => { return a05; }); - putOpt(out, part21); + putOpt(out, part22); const _659: [rs.isize, boolean] = rs.intOverflowingNeg(x, 32, true); putPair(out, [_659[0], _659[1]] as [rs.isize, boolean]); - const part22 = rs.isizeSaturatingSub(0, x); - _22(out, part22); - const part23 = rs.intWrappingNeg(x, 32, true); + const part23 = rs.isizeSaturatingSub(0, x); _22(out, part23); + const part24 = rs.intWrappingNeg(x, 32, true); + _22(out, part24); rs.byteVecExtendFromSlice(out, rs.byteSliceFrom(rs.usizeToBeBytes(x >>> 0))); } } } else if (_30 === 41) { const _681: rs.isize | undefined = rs.nonZero(a); if (_681 !== undefined) { - const part10 = rs.intAbs(_681, 32, true); - _22(out, part10); + const part11 = rs.intAbs(_681, 32, true); + _22(out, part11); } } else if (_30 === 42) { - const part9 = rs.precondition(rs.isizeCheckedAdd(a, b), "isize::unchecked_add cannot overflow"); - _22(out, part9); + const part10 = rs.precondition(rs.isizeCheckedAdd(a, b), "isize::unchecked_add cannot overflow"); + _22(out, part10); } else if (_30 === 43) { - const part8 = rs.precondition(rs.isizeCheckedSub(a, b), "isize::unchecked_sub cannot overflow"); - _22(out, part8); + const part9 = rs.precondition(rs.isizeCheckedSub(a, b), "isize::unchecked_sub cannot overflow"); + _22(out, part9); } else if (_30 === 44) { - const part7 = rs.precondition(rs.isizeCheckedMul(a, b), "isize::unchecked_mul cannot overflow"); - _22(out, part7); + const part8 = rs.precondition(rs.isizeCheckedMul(a, b), "isize::unchecked_mul cannot overflow"); + _22(out, part8); } else if (_30 === 45) { - const part6 = rs.precondition(rs.intCheckedShl(a, k, 32, true), "isize::unchecked_shl cannot overflow"); - _22(out, part6); + const part7 = rs.precondition(rs.intCheckedShl(a, k, 32, true), "isize::unchecked_shl cannot overflow"); + _22(out, part7); } else if (_30 === 46) { - const part5 = rs.precondition(rs.intCheckedShr(a, k, 32, true), "isize::unchecked_shr cannot overflow"); - _22(out, part5); + const part6 = rs.precondition(rs.intCheckedShr(a, k, 32, true), "isize::unchecked_shr cannot overflow"); + _22(out, part6); } else if (_30 === 47) { - const part4 = rs.precondition(rs.intCheckedNeg(a, 32, true), "isize::unchecked_neg cannot overflow"); + const part5 = rs.precondition(rs.intCheckedNeg(a, 32, true), "isize::unchecked_neg cannot overflow"); + _22(out, part5); + } else if (_30 === 48) { + const part4 = rs.precondition(rs.nonZero(a), "NonZero::new_unchecked requires the argument to be non-zero"); _22(out, part4); + } else if (_30 === 49) { + const _711: [rs.isize | undefined, rs.isize | undefined] = [rs.nonZero(a), rs.nonZero(b)]; + if (_711[0] !== undefined) { + if (_711[1] !== undefined) { + const part3 = rs.precondition(rs.isizeCheckedMul(_711[0], _711[1]), "isize::unchecked_mul cannot overflow"); + _22(out, part3); + } + } } else { - const part3 = rs.precondition(rs.nonZero(a), "NonZero::new_unchecked requires the argument to be non-zero"); - _22(out, part3); + rs.byteVecPush(out, 0); } } diff --git a/ts/fixtures/lang/methods/src/lib.rs b/ts/fixtures/lang/methods/src/lib.rs index cbccdebc3..1e7e0462c 100644 --- a/ts/fixtures/lang/methods/src/lib.rs +++ b/ts/fixtures/lang/methods/src/lib.rs @@ -1,7 +1,7 @@ //! A part of the language the driver translates, exercised against native Rust: what //! each of its modules says. -#![feature(wrapping_int_impl, wrapping_next_power_of_two)] +#![feature(nonzero_ops, wrapping_int_impl, wrapping_next_power_of_two)] #[path = "../../harness.rs"] pub mod harness; diff --git a/ts/fixtures/lang/methods/src/methods.rs b/ts/fixtures/lang/methods/src/methods.rs index 7a30d4c89..d2e80e905 100644 --- a/ts/fixtures/lang/methods/src/methods.rs +++ b/ts/fixtures/lang/methods/src/methods.rs @@ -41,7 +41,7 @@ macro_rules! methods { } None => out.push(0), }; - match kind % 49 { + match kind % 51 { 0 => { put_opt(out, a.checked_add(b)); put_opt(out, a.checked_sub(b)); @@ -192,7 +192,14 @@ macro_rules! methods { 46 => put(out, unsafe { a.unchecked_shr(k) }), 47 => methods!(@$sign unchecked, a, b, k, out, put), // SAFETY: none of zero: std's check of its precondition aborts. - _ => put(out, unsafe { NonZero::new_unchecked(a) }.get()), + 48 => put(out, unsafe { NonZero::new_unchecked(a) }.get()), + 49 => { + if let (Some(x), Some(y)) = (NonZero::new(a), NonZero::new(b)) { + // SAFETY: none where it overflows: std's check of its precondition aborts. + put(out, unsafe { x.unchecked_mul(y) }.get()); + } + } + _ => methods!(@$sign nonzero_unchecked, a, b, out, put), } } }; @@ -348,6 +355,15 @@ macro_rules! methods { $put($out, $x.div_ceil($y).get()); $out.extend_from_slice(&$x.cast_signed().get().to_be_bytes()); }}; + (@signed nonzero_unchecked, $a:ident, $b:ident, $out:ident, $put:ident) => { + $out.push(0) + }; + (@unsigned nonzero_unchecked, $a:ident, $b:ident, $out:ident, $put:ident) => { + if let Some(x) = NonZero::new($a) { + // SAFETY: none where it overflows: std's check of its precondition aborts. + $put($out, unsafe { x.unchecked_add($b) }.get()); + } + }; (@signed nonzero_panics, $a:ident, $out:ident, $put:ident) => { if let Some(x) = NonZero::new($a) { $put($out, x.abs().get()); diff --git a/ts/fixtures/lang/panics/hook/expected/hooked.Shown.ts b/ts/fixtures/lang/panics/hook/expected/hooked.Shown.ts index fb410ec35..50c8393ba 100644 --- a/ts/fixtures/lang/panics/hook/expected/hooked.Shown.ts +++ b/ts/fixtures/lang/panics/hook/expected/hooked.Shown.ts @@ -20,7 +20,7 @@ export function fmt$fmt_Display(self: Shown, f: rs.Formatter): rs.Result) & 0xff); } @@ -203,9 +208,9 @@ export function aborted(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void const captured2 = prev; rs.setHook(rs.closure((info: rs.PanicHookInfo): undefined => { record(info); - const _4: rs.u8 = rs.u8Rem(captured, 5, { file: "fixtures/lang/panics/src/hooked.rs", line: 159, col: 15 }); + const _4: rs.u8 = rs.u8Rem(captured, 5, { file: "fixtures/lang/panics/src/hooked.rs", line: 167, col: 15 }); if (_4 === 0) { - rs.panicFmt(["again"], { file: "fixtures/lang/panics/src/hooked.rs", line: 160, col: 18 }); + rs.panicFmt(["again"], { file: "fixtures/lang/panics/src/hooked.rs", line: 168, col: 18 }); } else if (_4 === 1) { rs.drop(rs.takeHook()); } else { @@ -215,13 +220,13 @@ export function aborted(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void rs.drop(captured2); }), { capacity: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/raw_vec/mod.rs", line: 29, col: 5 }, trusted_capacity: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/vec/spec_from_iter_nested.rs", line: 57, col: 18 }, swap_remove: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/vec/mod.rs", line: 2178, col: 13 }, vec_set_len: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/vec/mod.rs", line: 2138, col: 9 }, into_flattened: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/vec/mod.rs", line: 3667, col: 36 }, rotate_left: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/slice/mod.rs", line: 3902, col: 9 }, rotate_right: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/slice/mod.rs", line: 3948, col: 9 }, ord_violation: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/slice/sort/shared/smallsort.rs", line: 854, col: 5 }, ord_clamp: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/cmp.rs", line: 1166, col: 9 }, f32_clamp: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/num/f32.rs", line: 1665, col: 9 }, f64_clamp: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/num/f64.rs", line: 1643, col: 9 }, encode_utf8: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/char/methods.rs", line: 2507, col: 9 }, encode_utf16: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/char/methods.rs", line: 2601, col: 13 }, format: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/fmt.rs", line: 657, col: 14 }, to_string: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/string.rs", line: 2997, col: 14 }, debug_struct_fields: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/fmt/mod.rs", line: 2572, col: 9 }, exact_len: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/iter/traits/exact_size.rs", line: 122, col: 9 }, join_len: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/str.rs", line: 177, col: 10 }, int_sum: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/iter/traits/accum.rs", line: 206, col: 1 }, int_forward: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/iter/range.rs", line: 554, col: 1 }, char_forward: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/iter/range.rs", line: 119, col: 45 }, hash_capacity: { file: "/cargo/registry/25cdd57fae9f0462/hashbrown-0.17.1/src/raw.rs", line: 36, col: 40 }, btree_range_equal_BTreeSet: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/collections/btree/search.rs", line: 110, col: 21 }, btree_range_equal_BTreeMap: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/collections/btree/search.rs", line: 112, col: 21 }, btree_range_order_BTreeSet: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/collections/btree/search.rs", line: 119, col: 21 }, btree_range_order_BTreeMap: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/collections/btree/search.rs", line: 121, col: 21 }, deque_insert: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/collections/vec_deque/mod.rs", line: 2612, col: 9 }, deque_swap_i: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/collections/vec_deque/mod.rs", line: 1062, col: 9 }, deque_swap_j: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/collections/vec_deque/mod.rs", line: 1063, col: 9 }, deque_rotate_left: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/collections/vec_deque/mod.rs", line: 3198, col: 9 }, deque_rotate_right: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/collections/vec_deque/mod.rs", line: 3243, col: 9 }, deque_split_off: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/collections/vec_deque/mod.rs", line: 2724, col: 9 }, list_split_off: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/collections/linked_list.rs", line: 1015, col: 9 }, mutex_lock: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/std/src/sys/sync/mutex/no_threads.rs", line: 28, col: 9 }, once_force: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/std/src/sync/once.rs", line: 227, col: 20 }, reentrant_init: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/cell/once.rs", line: 325, col: 66 }, lazy_poisoned: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/cell/lazy.rs", line: 386, col: 5 }, ready_poll: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/future/ready.rs", line: 23, col: 35 }, ready_into_inner: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/future/ready.rs", line: 46, col: 16 }, duration_new: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/time.rs", line: 281, col: 18 }, duration_from_mins: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/time.rs", line: 540, col: 13 }, duration_from_hours: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/time.rs", line: 510, col: 13 }, duration_add: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/time.rs", line: 1345, col: 31 }, duration_sub: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/time.rs", line: 1365, col: 31 }, duration_mul: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/time.rs", line: 1385, col: 31 }, bytes_advance: { file: "/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.1/src/lib.rs", line: 207, col: 5 }, bytes_does_not_fit: { file: "/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.1/src/lib.rs", line: 215, col: 5 }, bytes_slice: { file: "/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.1/src/bytes.rs", line: 374, col: 28 }, bytes_slice_ref_start: { file: "/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.1/src/bytes.rs", line: 426, col: 9 }, bytes_slice_ref_end: { file: "/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.1/src/bytes.rs", line: 432, col: 9 }, bytes_split_off: { file: "/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.1/src/bytes.rs", line: 481, col: 9 }, bytes_split_to: { file: "/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.1/src/bytes.rs", line: 533, col: 9 }, bytes_buf_advance: { file: "/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.1/src/bytes.rs", line: 694, col: 9 }, bytes_mut_split_off: { file: "/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.1/src/bytes_mut.rs", line: 329, col: 9 }, bytes_mut_split_to: { file: "/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.1/src/bytes_mut.rs", line: 408, col: 9 }, bytes_mut_set_len: { file: "/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.1/src/bytes_mut.rs", line: 545, col: 9 }, bytes_mut_overflow: { file: "/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.1/src/bytes_mut.rs", line: 700, col: 21 }, bytes_mut_overflow_offset: { file: "/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.1/src/bytes_mut.rs", line: 720, col: 29 }, bytes_mut_buf_advance: { file: "/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.1/src/bytes_mut.rs", line: 1246, col: 9 } }); rs.byteVecPush(out, n); - const _13: rs.u8 = rs.u8Rem(kind, 5, { file: "fixtures/lang/panics/src/hooked.rs", line: 166, col: 11 }); + const _13: rs.u8 = rs.u8Rem(kind, 5, { file: "fixtures/lang/panics/src/hooked.rs", line: 174, col: 11 }); if (_13 === 3 || _13 === 4) { - const _19: Shown.Shown = { again: rs.u8Rem(kind, 5, { file: "fixtures/lang/panics/src/hooked.rs", line: 167, col: 56 }) === 4 }; + const _19: Shown.Shown = { again: rs.u8Rem(kind, 5, { file: "fixtures/lang/panics/src/hooked.rs", line: 175, col: 56 }) === 4 }; const args6 = [(f: rs.Formatter) => rs.u8Display(n, f), (f: rs.Formatter) => Shown.fmt$fmt_Display(_19, f)]; - rs.panicFmt(["first ", args6[0], " ", args6[1]], { file: "fixtures/lang/panics/src/hooked.rs", line: 167, col: 18 }); + rs.panicFmt(["first ", args6[0], " ", args6[1]], { file: "fixtures/lang/panics/src/hooked.rs", line: 175, col: 18 }); } else { - rs.panicFmt(["first ", (f: rs.Formatter) => rs.u8Display(n, f)], { file: "fixtures/lang/panics/src/hooked.rs", line: 168, col: 14 }); + rs.panicFmt(["first ", (f: rs.Formatter) => rs.u8Display(n, f)], { file: "fixtures/lang/panics/src/hooked.rs", line: 176, col: 14 }); } } @@ -252,13 +257,13 @@ export function sited(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { const _19: rs.u16[] = [n as rs.u16]; const set: rs.BTreeSet = rs.btreeExtendKeys(rs.btreeNew(rs.cmp) as rs.BTreeSet, rs.iterSlice(_19), true, undefined, undefined, 2, true); b0: { - const k: rs.u8 = rs.u8Rem(kind, 86, { file: "fixtures/lang/panics/src/hooked.rs", line: 190, col: 11 }); + const k: rs.u8 = rs.u8Rem(kind, 86, { file: "fixtures/lang/panics/src/hooked.rs", line: 198, col: 11 }); if (k === 0) { - rs.byteVecPush(out, rs.byteVecWithCapacity(rs.usizeSub(4294967295, at, { file: "fixtures/lang/panics/src/hooked.rs", line: 191, col: 48 })).length & 0xff); + rs.byteVecPush(out, rs.byteVecWithCapacity(rs.usizeSub(4294967295, at, { file: "fixtures/lang/panics/src/hooked.rs", line: 199, col: 48 })).length & 0xff); } else if (k === 1) { - rs.byteSliceRotateRight(rs.byteVecSlice(rs.byteVecFrom(rs.byteVecView(v))), rs.usizeAdd(at, 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 192, col: 37 })); + rs.byteSliceRotateRight(rs.byteVecSlice(rs.byteVecFrom(rs.byteVecView(v))), rs.usizeAdd(at, 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 200, col: 37 })); } else if (k === 2) { - rs.byteVecPush(out, rs.clamp(n, rs.max(n, 1), rs.u8Sub(rs.max(n, 1), 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 193, col: 41 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 193, col: 25 })); + rs.byteVecPush(out, rs.clamp(n, rs.max(n, 1), rs.u8Sub(rs.max(n, 1), 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 201, col: 41 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 201, col: 25 })); } else if (k === 3) { rs.byteVecPush(out, rs.u8FromF64(rs.f64Clamp(n as rs.f64, 1.0, 0.0))); } else if (k === 4) { @@ -266,7 +271,7 @@ export function sited(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } else if (k === 5) { rs.byteVecExtendFromSlice(out, rs.stringAsBytes(rs.charEncodeUtf8(rs.max(n, 128) as rs.char, rs.byteSliceFrom(Uint8Array.of(0))).v)); } else if (k === 6) { - const _62: rs.char = rs.optionUnwrap(rs.charFromU32(rs.u32Add(128512, n as rs.u32, { file: "fixtures/lang/panics/src/hooked.rs", line: 198, col: 28 })), undefined, { file: "fixtures/lang/panics/src/hooked.rs", line: 199, col: 18 }); + const _62: rs.char = rs.optionUnwrap(rs.charFromU32(rs.u32Add(128512, n as rs.u32, { file: "fixtures/lang/panics/src/hooked.rs", line: 206, col: 28 })), undefined, { file: "fixtures/lang/panics/src/hooked.rs", line: 207, col: 18 }); const _69: rs.u16[] = [0]; rs.byteVecPush(out, rs.charEncodeUtf16(_62, rs.sliceFrom(_69)).length & 0xff); } else if (k === 7) { @@ -275,7 +280,7 @@ export function sited(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { return _244[1]; }), "next"); } else if (k === 8) { - const _81: rs.Range = new rs.Range(rs.u16Add(n as rs.u16, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 207, col: 35 }), n as rs.u16); + const _81: rs.Range = new rs.Range(rs.u16Add(n as rs.u16, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 215, col: 35 }), n as rs.u16); rs.iterExtendBytes(out, rs.iterMap(rs.btreeRange(map, _81), (_239: [rs.u16, rs.u8]): rs.u8 => { return _239[1]; }), "next"); @@ -285,29 +290,29 @@ export function sited(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { return _237 & 0xff; }), "next"); } else if (k === 10) { - const _97: rs.Range = new rs.Range(rs.u16Add(n as rs.u16, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 212, col: 36 }), n as rs.u16); + const _97: rs.Range = new rs.Range(rs.u16Add(n as rs.u16, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 220, col: 36 }), n as rs.u16); rs.iterExtendBytes(out, rs.iterMap(rs.btreeRangeKeys(set, _97), (_232: rs.u16): rs.u8 => { return _232 & 0xff; }), "next"); } else if (k === 11) { - rs.dequeInsert(rs.dequeClone(deque), rs.usizeAdd(at, 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 213, col: 36 }), n); + rs.dequeInsert(rs.dequeClone(deque), rs.usizeAdd(at, 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 221, col: 36 }), n); } else if (k === 12) { - rs.dequeSwap(rs.dequeClone(deque), rs.usizeAdd(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 214, col: 34 }), 0); + rs.dequeSwap(rs.dequeClone(deque), rs.usizeAdd(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 222, col: 34 }), 0); } else if (k === 13) { - rs.dequeSwap(rs.dequeClone(deque), 0, rs.usizeAdd(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 215, col: 37 })); + rs.dequeSwap(rs.dequeClone(deque), 0, rs.usizeAdd(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 223, col: 37 })); } else if (k === 14) { - rs.dequeRotate(rs.dequeClone(deque), rs.usizeAdd(at, 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 216, col: 41 })); + rs.dequeRotate(rs.dequeClone(deque), rs.usizeAdd(at, 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 224, col: 41 })); } else if (k === 15) { - rs.dequeRotate(rs.dequeClone(deque), rs.usizeAdd(at, 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 217, col: 42 }), true); + rs.dequeRotate(rs.dequeClone(deque), rs.usizeAdd(at, 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 225, col: 42 }), true); } else if (k === 16) { - rs.iterExtendBytes(out, rs.dequeIntoIter(rs.dequeSplitOff(rs.dequeClone(deque), rs.usizeAdd(at, 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 218, col: 50 }))), undefined, true); + rs.iterExtendBytes(out, rs.dequeIntoIter(rs.dequeSplitOff(rs.dequeClone(deque), rs.usizeAdd(at, 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 226, col: 50 }))), undefined, true); } else if (k === 17) { const _136: Uint8Array = Uint8Array.of(n); - rs.iterExtendBytes(out, rs.listIter(rs.listSplitOff(rs.listExtend(rs.listNew() as rs.LinkedList, rs.iterSlice(_136)), rs.usizeAdd(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 219, col: 58 }))), undefined, true); + rs.iterExtendBytes(out, rs.listIter(rs.listSplitOff(rs.listExtend(rs.listNew() as rs.LinkedList, rs.iterSlice(_136)), rs.usizeAdd(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 227, col: 58 }))), undefined, true); } else if (k === 18) { const mutex: rs.Mutex = new rs.Mutex(n); const _held: rs.Result, rs.Mutex> = rs.Ok(rs.mutexLock(mutex)); - const _146: rs.Mutex = rs.resultUnwrap(rs.Ok(rs.mutexLock(mutex)), rs.fmtPoisonErrorDebug, { file: "fixtures/lang/panics/src/hooked.rs", line: 223, col: 36 }); + const _146: rs.Mutex = rs.resultUnwrap(rs.Ok(rs.mutexLock(mutex)), rs.fmtPoisonErrorDebug, { file: "fixtures/lang/panics/src/hooked.rs", line: 231, col: 36 }); rs.byteVecPush(out, _146.value); rs.mutexUnlock(_146); drop$Result_sync_MutexGuard_u8_sync_PoisonError_sync_MutexGuard_u8(_held); @@ -349,40 +354,40 @@ export function sited(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } rs.byteVecPush(out, ready2.intoInner()); } else if (k === 23) { - rs.byteVecPush(out, rs.durationSubsecNanos(rs.durationNew({ hi: 0xffffffff, lo: 0xffffffff } as rs.u64, rs.u32Add(1000000000, n as rs.u32, { file: "fixtures/lang/panics/src/hooked.rs", line: 250, col: 48 }))) & 0xff); + rs.byteVecPush(out, rs.durationSubsecNanos(rs.durationNew({ hi: 0xffffffff, lo: 0xffffffff } as rs.u64, rs.u32Add(1000000000, n as rs.u32, { file: "fixtures/lang/panics/src/hooked.rs", line: 258, col: 48 }))) & 0xff); } else if (k === 24) { - rs.byteVecPush(out, rs.durationSubsecNanos(rs.durationFromMins(rs.u64Sub({ hi: 0xffffffff, lo: 0xffffffff } as rs.u64, n as rs.u64, { file: "fixtures/lang/panics/src/hooked.rs", line: 251, col: 44 }))) & 0xff); + rs.byteVecPush(out, rs.durationSubsecNanos(rs.durationFromMins(rs.u64Sub({ hi: 0xffffffff, lo: 0xffffffff } as rs.u64, n as rs.u64, { file: "fixtures/lang/panics/src/hooked.rs", line: 259, col: 44 }))) & 0xff); } else if (k === 25) { - rs.byteVecPush(out, rs.durationSubsecNanos(rs.durationFromHours(rs.u64Sub({ hi: 0xffffffff, lo: 0xffffffff } as rs.u64, n as rs.u64, { file: "fixtures/lang/panics/src/hooked.rs", line: 252, col: 45 }))) & 0xff); + rs.byteVecPush(out, rs.durationSubsecNanos(rs.durationFromHours(rs.u64Sub({ hi: 0xffffffff, lo: 0xffffffff } as rs.u64, n as rs.u64, { file: "fixtures/lang/panics/src/hooked.rs", line: 260, col: 45 }))) & 0xff); } else if (k === 26) { - rs.byteVecPush(out, rs.durationSubsecNanos(rs.durationSub({ secs: 0, nanos: 0 }, rs.durationFromSecs(rs.u64Add(n as rs.u64, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 253, col: 62 })))) & 0xff); + rs.byteVecPush(out, rs.durationSubsecNanos(rs.durationSub({ secs: 0, nanos: 0 }, rs.durationFromSecs(rs.u64Add(n as rs.u64, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 261, col: 62 })))) & 0xff); } else if (k === 27) { - rs.byteVecPush(out, rs.durationSubsecNanos(rs.durationMul({ secs: { hi: 0xffffffff, lo: 0xffffffff } as rs.u64, nanos: 999999999 }, rs.u32Add(n as rs.u32, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 254, col: 41 }))) & 0xff); + rs.byteVecPush(out, rs.durationSubsecNanos(rs.durationMul({ secs: { hi: 0xffffffff, lo: 0xffffffff } as rs.u64, nanos: 999999999 }, rs.u32Add(n as rs.u32, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 262, col: 41 }))) & 0xff); } else if (k === 28) { const _231: rs.ByteVec = rs.byteVecFrom(rs.byteVecView(v)); - const _233: rs.RangeFrom = new rs.RangeFrom(rs.usizeAdd(at, 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 255, col: 44 }), rs.usizeStep); + const _233: rs.RangeFrom = new rs.RangeFrom(rs.usizeAdd(at, 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 263, col: 44 }), rs.usizeStep); rs.byteVecExtendFromWithin(_231, _233, { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/vec/mod.rs", line: 3614, col: 21 }); } else if (k === 29) { const _238: rs.VecDeque = rs.dequeClone(deque); - const _240: rs.RangeFrom = new rs.RangeFrom(rs.usizeAdd(at, 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 256, col: 46 }), rs.usizeStep); + const _240: rs.RangeFrom = new rs.RangeFrom(rs.usizeAdd(at, 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 264, col: 46 }), rs.usizeStep); rs.iterExtendBytes(out, rs.dequeDrain(_238, _240, undefined, { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/collections/vec_deque/mod.rs", line: 1998, col: 36 }), "next"); } else if (k === 30) { - const _245: rs.RangeFrom = new rs.RangeFrom(rs.usizeAdd(at, 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 257, col: 38 }), rs.usizeStep); + const _245: rs.RangeFrom = new rs.RangeFrom(rs.usizeAdd(at, 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 265, col: 38 }), rs.usizeStep); rs.iterExtendBytes(out, rs.dequeRange(deque, _245, { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/collections/vec_deque/mod.rs", line: 1845, col: 36 }), undefined, true); } else if (k === 31) { const _251: rs.VecDeque = rs.dequeClone(deque); - const _253: rs.RangeFrom = new rs.RangeFrom(rs.usizeAdd(at, 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 258, col: 50 }), rs.usizeStep); + const _253: rs.RangeFrom = new rs.RangeFrom(rs.usizeAdd(at, 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 266, col: 50 }), rs.usizeStep); rs.iterExtendBytes(out, rs.iterMap(rs.dequeRangeMut(_251, _253, { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/collections/vec_deque/mod.rs", line: 1845, col: 36 }), (v6: rs.Place): rs.u8 => { return v6.v; }), undefined, true); } else if (k === 32) { const cell2: rs.RefCell = new rs.RefCell(rs.byteVecFrom(Uint8Array.of(n))); - const _held2: rs.RefCell = rs.refCellBorrow(cell2, { file: "fixtures/lang/panics/src/hooked.rs", line: 261, col: 30 }); + const _held2: rs.RefCell = rs.refCellBorrow(cell2, { file: "fixtures/lang/panics/src/hooked.rs", line: 269, col: 30 }); rs.iterExtendBytes(out, rs.byteVecIntoIter(rs.refCellReplace(cell2, new rs.ByteVec(), { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/cell.rs", line: 1434, col: 14 })), undefined, true); rs.refRelease(_held2); } else if (k === 33) { ((cell4: rs.RefCell): undefined => { - rs.refCellBorrow(cell4, { file: "fixtures/lang/panics/src/hooked.rs", line: 265, col: 54 }); + rs.refCellBorrow(cell4, { file: "fixtures/lang/panics/src/hooked.rs", line: 273, col: 54 }); })(SHARED.get()); rs.localKeyWithBorrowMutPlace(SHARED, (v5: rs.Place): undefined => { v5.v = n; @@ -398,25 +403,25 @@ export function sited(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { }); } else if (k === 35) { const _277: rs.ByteVec = rs.byteVecFrom(rs.byteVecView(v)); - const _279: rs.RangeFrom = new rs.RangeFrom(rs.usizeAdd(at, 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 272, col: 43 }), rs.usizeStep); + const _279: rs.RangeFrom = new rs.RangeFrom(rs.usizeAdd(at, 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 280, col: 43 }), rs.usizeStep); const _282: Uint8Array = Uint8Array.of(n); rs.iterExtendBytes(out, rs.spliceFrom(rs.byteVecSplice(_277, _279, { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/vec/mod.rs", line: 3007, col: 36 }), rs.iterSlice(_282), true), "next"); } else if (k === 36) { - rs.iterExtendBytes(out, rs.iterOption(option_map$04ry0e1(option_map$18ftgyp(rs.charFromDigit(n as rs.u32, rs.u32Add(37, n as rs.u32, { file: "fixtures/lang/panics/src/hooked.rs", line: 274, col: 44 }), { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/char/convert.rs", line: 332, col: 9 }), (a02: rs.char): rs.u32 => { + rs.iterExtendBytes(out, rs.iterOption(option_map$04ry0e1(option_map$18ftgyp(rs.charFromDigit(n as rs.u32, rs.u32Add(37, n as rs.u32, { file: "fixtures/lang/panics/src/hooked.rs", line: 282, col: 44 }), { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/char/convert.rs", line: 332, col: 9 }), (a02: rs.char): rs.u32 => { return a02 as rs.u32; }), (c2: rs.u32): rs.u8 => { return c2 & 0xff; })), undefined, true); } else if (k === 37) { - const _294: rs.usize = rs.usizeDiv(at, 256, { file: "fixtures/lang/panics/src/hooked.rs", line: 278, col: 59 }); + const _294: rs.usize = rs.usizeDiv(at, 256, { file: "fixtures/lang/panics/src/hooked.rs", line: 286, col: 59 }); if (!(_294 < 2)) { - rs.panicSizes(["index out of bounds: the len is ", 2, " but the index is ", _294], { file: "fixtures/lang/panics/src/hooked.rs", line: 278, col: 21 }); + rs.panicSizes(["index out of bounds: the len is ", 2, " but the index is ", _294], { file: "fixtures/lang/panics/src/hooked.rs", line: 286, col: 21 }); } rs.fence([0, 4][_294], { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/sync/atomic.rs", line: 4822, col: 24 }); } else if (k === 38) { - const _301: rs.usize = rs.usizeDiv(at, 256, { file: "fixtures/lang/panics/src/hooked.rs", line: 279, col: 68 }); + const _301: rs.usize = rs.usizeDiv(at, 256, { file: "fixtures/lang/panics/src/hooked.rs", line: 287, col: 68 }); if (!(_301 < 2)) { - rs.panicSizes(["index out of bounds: the len is ", 2, " but the index is ", _301], { file: "fixtures/lang/panics/src/hooked.rs", line: 279, col: 30 }); + rs.panicSizes(["index out of bounds: the len is ", 2, " but the index is ", _301], { file: "fixtures/lang/panics/src/hooked.rs", line: 287, col: 30 }); } rs.fence([0, 4][_301], { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/sync/atomic.rs", line: 4907, col: 24 }); } else if (k === 39) { @@ -434,91 +439,91 @@ export function sited(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } else if (k === 45) { rs.byteVecPush(out, rs.u64Low(rs.durationAsSecs(rs.durationSum(rs.iterSlice([{ secs: { hi: 0xffffffff, lo: 0xffffffff } as rs.u64, nanos: 999999999 }, rs.durationFromSecs(rs.max(n, 1) as rs.u64)]), undefined, { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/time.rs", line: 1461, col: 9 }))) & 0xff); } else if (k === 46) { - rs.byteVecPush(out, rs.u64Low(rs.durationAsSecs(rs.durationSum(rs.iterSlice([{ secs: { hi: 0xffffffff, lo: 0xffffffff } as rs.u64, nanos: 999999999 }, rs.durationNew(rs.u64Add(n as rs.u64, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 293, col: 43 }), 0)]), undefined, { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/time.rs", line: 1468, col: 9 }))) & 0xff); + rs.byteVecPush(out, rs.u64Low(rs.durationAsSecs(rs.durationSum(rs.iterSlice([{ secs: { hi: 0xffffffff, lo: 0xffffffff } as rs.u64, nanos: 999999999 }, rs.durationNew(rs.u64Add(n as rs.u64, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 301, col: 43 }), 0)]), undefined, { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/time.rs", line: 1468, col: 9 }))) & 0xff); } else if (k === 47) { const _365: rs.ByteVec = rs.byteVecFrom(rs.byteVecView(v)); - const _367: rs.RangeFrom = new rs.RangeFrom(rs.usizeAdd(at, 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 298, col: 47 }), rs.usizeStep); + const _367: rs.RangeFrom = new rs.RangeFrom(rs.usizeAdd(at, 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 306, col: 47 }), rs.usizeStep); rs.iterExtendBytes(out, rs.byteVecExtractIf(_365, _367, (_210: rs.Place): boolean => { return true; }, { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/vec/extract_if.rs", line: 43, col: 36 }), "next"); } else if (k === 48) { const _374: rs.Vec = rs.vecFrom([n as rs.u16]); - const _377: { end: rs.usize } = { end: rs.usizeAdd(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 299, col: 56 }) }; + const _377: { end: rs.usize } = { end: rs.usizeAdd(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 307, col: 56 }) }; rs.byteVecPush(out, rs.ownedCount(rs.vecExtractIfMut(_374, _377, (_29: rs.Place): boolean => { return true; }, { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/vec/extract_if.rs", line: 43, col: 36 }), undefined, undefined) & 0xff); } else if (k === 49) { - rs.iterExtendBytes(out, rs.iterTake(new rs.RangeFrom(rs.u8Sub(255, rs.u8Rem(n, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 300, col: 37 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 300, col: 27 }), rs.u8Step), 3), undefined, true); + rs.iterExtendBytes(out, rs.iterTake(new rs.RangeFrom(rs.u8Sub(255, rs.u8Rem(n, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 308, col: 37 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 308, col: 27 }), rs.u8Step), 3), undefined, true); } else if (k === 50) { - rs.iterExtendBytes(out, rs.iterOption(rs.iterNth(new rs.RangeFrom(rs.u8Sub(255, rs.u8Rem(n, 4, { file: "fixtures/lang/panics/src/hooked.rs", line: 301, col: 37 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 301, col: 27 }), rs.u8Step), rs.usizeAdd(rs.u8Rem(n, 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 301, col: 62 }) as rs.usize, 4, { file: "fixtures/lang/panics/src/hooked.rs", line: 301, col: 50 }))), undefined, true); + rs.iterExtendBytes(out, rs.iterOption(rs.iterNth(new rs.RangeFrom(rs.u8Sub(255, rs.u8Rem(n, 4, { file: "fixtures/lang/panics/src/hooked.rs", line: 309, col: 37 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 309, col: 27 }), rs.u8Step), rs.usizeAdd(rs.u8Rem(n, 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 309, col: 62 }) as rs.usize, 4, { file: "fixtures/lang/panics/src/hooked.rs", line: 309, col: 50 }))), undefined, true); } else if (k === 51) { - rs.iterExtendBytes(out, rs.iterMap(rs.iterTake(new rs.RangeFrom(rs.u64Sub({ hi: 0xffffffff, lo: 0xffffffff } as rs.u64, rs.u8Rem(n, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 302, col: 48 }) as rs.u64, { file: "fixtures/lang/panics/src/hooked.rs", line: 302, col: 27 }), rs.u64Step), 3), (x: rs.u64): rs.u8 => { + rs.iterExtendBytes(out, rs.iterMap(rs.iterTake(new rs.RangeFrom(rs.u64Sub({ hi: 0xffffffff, lo: 0xffffffff } as rs.u64, rs.u8Rem(n, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 310, col: 48 }) as rs.u64, { file: "fixtures/lang/panics/src/hooked.rs", line: 310, col: 27 }), rs.u64Step), 3), (x: rs.u64): rs.u8 => { return rs.u64Low(x) & 0xff; }), undefined, true); } else if (k === 52) { - rs.iterExtendBytes(out, rs.iterMap(rs.iterTake(new rs.RangeFrom(rs.optionUnwrap(rs.charFromU32(rs.u32Sub(1114111, rs.u8Rem(n, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 304, col: 51 }) as rs.u32, { file: "fixtures/lang/panics/src/hooked.rs", line: 304, col: 29 })), undefined, { file: "fixtures/lang/panics/src/hooked.rs", line: 304, col: 59 }), rs.charStep), 3), (c: rs.char): rs.u8 => { + rs.iterExtendBytes(out, rs.iterMap(rs.iterTake(new rs.RangeFrom(rs.optionUnwrap(rs.charFromU32(rs.u32Sub(1114111, rs.u8Rem(n, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 312, col: 51 }) as rs.u32, { file: "fixtures/lang/panics/src/hooked.rs", line: 312, col: 29 })), undefined, { file: "fixtures/lang/panics/src/hooked.rs", line: 312, col: 59 }), rs.charStep), 3), (c: rs.char): rs.u8 => { return c & 0xff; }), undefined, true); } else if (k === 68) { - if (!(rs.u8Rem(n, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 310, col: 15 }) === 0)) { - const v3: rs.Vec = rs.vecWithCapacity(rs.usizeRem(at, 4, { file: "fixtures/lang/panics/src/hooked.rs", line: 317, col: 51 }), 4); - const _442: rs.usize = rs.usizeAdd(rs.vecCapacity(v3, 4), 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 319, col: 32 }); + if (!(rs.u8Rem(n, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 318, col: 15 }) === 0)) { + const v3: rs.Vec = rs.vecWithCapacity(rs.usizeRem(at, 4, { file: "fixtures/lang/panics/src/hooked.rs", line: 325, col: 51 }), 4); + const _442: rs.usize = rs.usizeAdd(rs.vecCapacity(v3, 4), 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 327, col: 32 }); rs.vecSetLen(v3, _442, 4, (): rs.u32 => { return (undefined as unknown) as rs.u32; }); rs.byteVecPush(out, v3.items.length & 0xff); } else { - const v2: rs.ByteVec = rs.byteVecWithCapacity(rs.usizeRem(at, 4, { file: "fixtures/lang/panics/src/hooked.rs", line: 311, col: 50 })); - rs.byteVecSetLen(v2, rs.usizeAdd(v2.data.length, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 313, col: 32 })); + const v2: rs.ByteVec = rs.byteVecWithCapacity(rs.usizeRem(at, 4, { file: "fixtures/lang/panics/src/hooked.rs", line: 319, col: 50 })); + rs.byteVecSetLen(v2, rs.usizeAdd(v2.data.length, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 321, col: 32 })); rs.byteVecPush(out, v2.length & 0xff); } } else if (k === 69) { const _451: rs.ByteSlice = rs.byteSliceFrom(rs.bytes(2).fill((0 as unknown) as rs.u8)); - const part2 = rs.usizeRem(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 322, col: 81 }); - rs.byteSliceCopyFromSlice(_451, rs.byteSliceRange(rs.byteVecSlice(v), 0, part2, { file: "fixtures/lang/panics/src/hooked.rs", line: 322, col: 78 }), { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/mem/maybe_uninit.rs", line: 1170, col: 14 }); + const part2 = rs.usizeRem(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 330, col: 81 }); + rs.byteSliceCopyFromSlice(_451, rs.byteSliceRange(rs.byteVecSlice(v), 0, part2, { file: "fixtures/lang/panics/src/hooked.rs", line: 330, col: 78 }), { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/mem/maybe_uninit.rs", line: 1170, col: 14 }); } else if (k === 70) { rs.sliceWriteCloneOfSlice(rs.sliceFrom(Array.from({ length: 2 }, (): rs.String => { return (undefined as unknown) as rs.String; - })), rs.sliceRange(rs.sliceFrom([rs.stringNew()]), 0, rs.usizeRem(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 323, col: 106 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 323, col: 103 }), (a0: rs.String): rs.String => { + })), rs.sliceRange(rs.sliceFrom([rs.stringNew()]), 0, rs.usizeRem(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 331, col: 106 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 331, col: 103 }), (a0: rs.String): rs.String => { return rs.stringClone(a0); }, { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/mem/maybe_uninit.rs", line: 1230, col: 9 }); } else if (k === 71) { - rs.byteVecPush(out, rs.sliceNewUninit(rs.usizeSub(4294967295, at, { file: "fixtures/lang/panics/src/hooked.rs", line: 324, col: 55 }), 2, (): rs.u16 => { + rs.byteVecPush(out, rs.sliceNewUninit(rs.usizeSub(4294967295, at, { file: "fixtures/lang/panics/src/hooked.rs", line: 332, col: 55 }), 2, (): rs.u16 => { return (undefined as unknown) as rs.u16; }).length & 0xff); } else if (k === 72) { let lent: rs.ByteSlice = rs.byteVecSlice(v); - const _482: rs.usize = rs.usizeAdd(rs.usizeRem(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 327, col: 26 }), 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 327, col: 26 }); + const _482: rs.usize = rs.usizeAdd(rs.usizeRem(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 335, col: 26 }), 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 335, col: 26 }); rs.ioSliceAdvance(rs.place(() => lent, (value2) => lent = value2), _482, { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/io/io_slice/repr_generic.rs", line: 14, col: 25 }); rs.byteVecExtendFromSlice(out, lent); } else if (k === 73) { const lent2: rs.ByteSlice[] = [rs.byteVecSlice(v)]; let left: rs.Slice = rs.sliceFrom(lent2); - const _498: rs.usize = rs.usizeAdd(rs.usizeRem(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 333, col: 57 }), 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 333, col: 57 }); + const _498: rs.usize = rs.usizeAdd(rs.usizeRem(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 341, col: 57 }), 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 341, col: 57 }); rs.ioSliceAdvanceSlices(rs.place(() => left, (value) => left = value), _498, { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/io/io_slice.rs", line: 304, col: 13 }); rs.byteVecPush(out, left.length & 0xff); } else if (k === 74) { - rs.byteVecInsert(rs.byteVecFrom(rs.byteVecView(v)), rs.usizeAdd(at, 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 336, col: 32 }), n, { file: "fixtures/lang/panics/src/hooked.rs", line: 336, col: 25 }); + rs.byteVecInsert(rs.byteVecFrom(rs.byteVecView(v)), rs.usizeAdd(at, 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 344, col: 32 }), n, { file: "fixtures/lang/panics/src/hooked.rs", line: 344, col: 25 }); } else if (k === 75) { - rs.iterExtendBytes(out, rs.byteVecIntoIter(rs.byteVecSplitOff(rs.byteVecFrom(rs.byteVecView(v)), rs.usizeAdd(at, 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 337, col: 46 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 337, col: 36 })), undefined, true); + rs.iterExtendBytes(out, rs.byteVecIntoIter(rs.byteVecSplitOff(rs.byteVecFrom(rs.byteVecView(v)), rs.usizeAdd(at, 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 345, col: 46 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 345, col: 36 })), undefined, true); } else if (k === 76) { - rs.byteVecPush(out, rs.vecRemove(rs.vecFrom([n as rs.u16]), rs.usizeAdd(at, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 338, col: 50 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 338, col: 43 }) & 0xff); + rs.byteVecPush(out, rs.vecRemove(rs.vecFrom([n as rs.u16]), rs.usizeAdd(at, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 346, col: 50 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 346, col: 43 }) & 0xff); } else if (k === 77) { - rs.byteVecPush(out, rs.vecSwapRemove(rs.vecFrom([n as rs.u16]), rs.usizeAdd(at, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 339, col: 55 })) & 0xff); + rs.byteVecPush(out, rs.vecSwapRemove(rs.vecFrom([n as rs.u16]), rs.usizeAdd(at, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 347, col: 55 })) & 0xff); } else if (k === 78) { - rs.vecInsert(rs.vecFrom([n as rs.u16]), rs.usizeAdd(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 340, col: 41 }), 0, { file: "fixtures/lang/panics/src/hooked.rs", line: 340, col: 34 }); + rs.vecInsert(rs.vecFrom([n as rs.u16]), rs.usizeAdd(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 348, col: 41 }), 0, { file: "fixtures/lang/panics/src/hooked.rs", line: 348, col: 34 }); } else if (k === 79) { - rs.iterExtendBytes(out, rs.iterMap(rs.iterSlice(rs.vecSplitOff(rs.vecFrom([n as rs.u16]), rs.usizeAdd(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 341, col: 55 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 341, col: 45 }).items), (_2: rs.u16): rs.u8 => { + rs.iterExtendBytes(out, rs.iterMap(rs.iterSlice(rs.vecSplitOff(rs.vecFrom([n as rs.u16]), rs.usizeAdd(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 349, col: 55 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 349, col: 45 }).items), (_2: rs.u16): rs.u8 => { return _2 & 0xff; }), undefined, true); } else if (k === 80) { const _550: rs.ByteSlice = rs.byteVecSlice(rs.byteVecFrom(rs.byteVecView(v))); - const _554: rs.Range = new rs.Range(rs.usizeAdd(at, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 342, col: 37 }), rs.usizeAdd(at, 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 342, col: 45 })); - rs.byteSliceCopyWithin(_550, _554.start, _554.end, 0, { file: "fixtures/lang/panics/src/hooked.rs", line: 342, col: 25 }); + const _554: rs.Range = new rs.Range(rs.usizeAdd(at, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 350, col: 37 }), rs.usizeAdd(at, 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 350, col: 45 })); + rs.byteSliceCopyWithin(_550, _554.start, _554.end, 0, { file: "fixtures/lang/panics/src/hooked.rs", line: 350, col: 25 }); } else if (k === 81) { - rs.byteVecPush(out, rs.u64Low(rs.u64Clamp(n as rs.u64, rs.u64Add(n as rs.u64, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 343, col: 43 }), n as rs.u64, { file: "fixtures/lang/panics/src/hooked.rs", line: 343, col: 37 })) & 0xff); + rs.byteVecPush(out, rs.u64Low(rs.u64Clamp(n as rs.u64, rs.u64Add(n as rs.u64, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 351, col: 43 }), n as rs.u64, { file: "fixtures/lang/panics/src/hooked.rs", line: 351, col: 37 })) & 0xff); } else if (k === 82) { - rs.byteVecPush(out, rs.clamp(rs.i32Neg(n as rs.i32, { file: "fixtures/lang/panics/src/hooked.rs", line: 344, col: 24 }), 0, -1, { file: "fixtures/lang/panics/src/hooked.rs", line: 344, col: 40 }) & 0xff); + rs.byteVecPush(out, rs.clamp(rs.i32Neg(n as rs.i32, { file: "fixtures/lang/panics/src/hooked.rs", line: 352, col: 24 }), 0, -1, { file: "fixtures/lang/panics/src/hooked.rs", line: 352, col: 40 }) & 0xff); } else if (k === 83) { const arg = {}; rs.byteVecExtendFromSlice(out, rs.stringAsBytes(rs.fmtFormat([(f: rs.Formatter) => Failing.fmt$fmt_Display(arg, f)]).v)); @@ -528,13 +533,13 @@ export function sited(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } else { if (53 <= k) { if (k <= 56) { - joined(rs.u8Sub(k, 53, { file: "fixtures/lang/panics/src/hooked.rs", line: 308, col: 31 }), n, out); + joined(rs.u8Sub(k, 53, { file: "fixtures/lang/panics/src/hooked.rs", line: 316, col: 31 }), n, out); break b0; } } if (57 <= k) { if (k <= 67) { - rs.byteVecPush(out, compared(rs.u8Sub(k, 57, { file: "fixtures/lang/panics/src/hooked.rs", line: 309, col: 42 }), n)); + rs.byteVecPush(out, compared(rs.u8Sub(k, 57, { file: "fixtures/lang/panics/src/hooked.rs", line: 317, col: 42 }), n)); break b0; } } @@ -552,16 +557,16 @@ export function joined(kind: rs.u8, n: rs.u8, out: rs.ByteVec): void { let joined!: rs.ByteVec; const big: rs.ByteVec = rs.byteVecOf(n, 1 << 16); const refs: (a0: rs.usize) => rs.Vec = (count: rs.usize): rs.Vec => { - return rs.vecFromElem(rs.byteSliceRange(rs.byteVecSlice(big), 0, undefined, { file: "fixtures/lang/panics/src/hooked.rs", line: 365, col: 40 }), count, undefined); + return rs.vecFromElem(rs.byteSliceRange(rs.byteVecSlice(big), 0, undefined, { file: "fixtures/lang/panics/src/hooked.rs", line: 373, col: 40 }), count, undefined); }; if (kind === 0) { - joined = rs.byteSlicesJoin(rs.sliceFrom(refs(rs.usizeAdd(1 << 16, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 367, col: 19 })).items)); + joined = rs.byteSlicesJoin(rs.sliceFrom(refs(rs.usizeAdd(1 << 16, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 375, col: 19 })).items)); } else if (kind === 1) { - joined = rs.byteSlicesJoin(rs.sliceFrom(refs(rs.usizeAdd(1 << 16, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 368, col: 19 })).items), rs.byteSliceFrom(Uint8Array.of(n))); + joined = rs.byteSlicesJoin(rs.sliceFrom(refs(rs.usizeAdd(1 << 16, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 376, col: 19 })).items), rs.byteSliceFrom(Uint8Array.of(n))); } else if (kind === 2) { - joined = rs.byteSlicesJoin(rs.sliceFrom(refs(rs.usizeAdd(1 << 15, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 369, col: 19 })).items)); + joined = rs.byteSlicesJoin(rs.sliceFrom(refs(rs.usizeAdd(1 << 15, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 377, col: 19 })).items)); } else { - joined = rs.iterToByteVec(rs.iterMap(rs.iterSlice(rs.slicesJoin(rs.sliceFrom(rs.vecFromElem(rs.sliceFrom(rs.vecFromElem(n as rs.u16, 1 << 16, undefined).items), rs.usizeAdd(1 << 14, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 372, col: 42 }), undefined).items), 2, rs.sliceFrom([1])).items), (_2: rs.u16): rs.u8 => { + joined = rs.iterToByteVec(rs.iterMap(rs.iterSlice(rs.slicesJoin(rs.sliceFrom(rs.vecFromElem(rs.sliceFrom(rs.vecFromElem(n as rs.u16, 1 << 16, undefined).items), rs.usizeAdd(1 << 14, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 380, col: 42 }), undefined).items), 2, rs.sliceFrom([1])).items), (_2: rs.u16): rs.u8 => { return _2 & 0xff; }), undefined, true); } @@ -584,10 +589,10 @@ export function compared(kind: rs.u8, n: rs.u8): rs.u8 { const _5: [rs.RefCell, rs.RefCell] = [new rs.RefCell(n), new rs.RefCell(rs.u8WrappingAdd(n, 1))]; const a: rs.RefCell = _5[0]; const b: rs.RefCell = _5[1]; - if (!(rs.u8Rem(n, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 384, col: 20 }) === 0)) { - _held = rs.refCellBorrowMut(b, { file: "fixtures/lang/panics/src/hooked.rs", line: 384, col: 59 }); + if (!(rs.u8Rem(n, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 392, col: 20 }) === 0)) { + _held = rs.refCellBorrowMut(b, { file: "fixtures/lang/panics/src/hooked.rs", line: 392, col: 59 }); } else { - _held = rs.refCellBorrowMut(a, { file: "fixtures/lang/panics/src/hooked.rs", line: 384, col: 35 }); + _held = rs.refCellBorrowMut(a, { file: "fixtures/lang/panics/src/hooked.rs", line: 392, col: 35 }); } if (kind === 0) { _0 = rs.refCellBy(rs.same, { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/cell.rs", line: 1482, col: 15 }, { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/cell.rs", line: 1482, col: 34 })(a, b) ? 1 : 0; @@ -634,11 +639,11 @@ export function stock(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { const at: rs.usize = n as rs.usize; const whole: rs.ByteSlice = rs.bytesFromVec(rs.byteVecOf(n, 4)); b0: { - const k: rs.u8 = rs.u8Rem(kind, 33, { file: "fixtures/lang/panics/src/hooked.rs", line: 426, col: 24 }); + const k: rs.u8 = rs.u8Rem(kind, 33, { file: "fixtures/lang/panics/src/hooked.rs", line: 434, col: 24 }); if (0 <= k) { if (k <= 1) { rs.setHook((info: rs.PanicHookInfo): undefined => { - const at2: rs.Location = rs.optionUnwrap(info.location, undefined, { file: "fixtures/lang/panics/src/hooked.rs", line: 428, col: 38 }); + const at2: rs.Location = rs.optionUnwrap(info.location, undefined, { file: "fixtures/lang/panics/src/hooked.rs", line: 436, col: 38 }); const _10: string = at2.file; const _126: rs.u32 = at2.line; const _14: rs.u32 = at2.col; @@ -647,16 +652,16 @@ export function stock(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { rs.localKeyWithBorrowMut(NOTE, (note: rs.String): undefined => { rs.stringPushStr(note, line.v); }, { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/std/src/thread/local.rs", line: 721, col: 38 }); - rs.panicFmt(["unread"], { file: "fixtures/lang/panics/src/hooked.rs", line: 431, col: 13 }); + rs.panicFmt(["unread"], { file: "fixtures/lang/panics/src/hooked.rs", line: 439, col: 13 }); }, { capacity: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/raw_vec/mod.rs", line: 29, col: 5 }, trusted_capacity: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/vec/spec_from_iter_nested.rs", line: 57, col: 18 }, swap_remove: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/vec/mod.rs", line: 2178, col: 13 }, vec_set_len: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/vec/mod.rs", line: 2138, col: 9 }, into_flattened: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/vec/mod.rs", line: 3667, col: 36 }, rotate_left: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/slice/mod.rs", line: 3902, col: 9 }, rotate_right: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/slice/mod.rs", line: 3948, col: 9 }, ord_violation: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/slice/sort/shared/smallsort.rs", line: 854, col: 5 }, ord_clamp: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/cmp.rs", line: 1166, col: 9 }, f32_clamp: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/num/f32.rs", line: 1665, col: 9 }, f64_clamp: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/num/f64.rs", line: 1643, col: 9 }, encode_utf8: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/char/methods.rs", line: 2507, col: 9 }, encode_utf16: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/char/methods.rs", line: 2601, col: 13 }, format: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/fmt.rs", line: 657, col: 14 }, to_string: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/string.rs", line: 2997, col: 14 }, debug_struct_fields: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/fmt/mod.rs", line: 2572, col: 9 }, exact_len: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/iter/traits/exact_size.rs", line: 122, col: 9 }, join_len: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/str.rs", line: 177, col: 10 }, int_sum: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/iter/traits/accum.rs", line: 206, col: 1 }, int_forward: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/iter/range.rs", line: 554, col: 1 }, char_forward: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/iter/range.rs", line: 119, col: 45 }, hash_capacity: { file: "/cargo/registry/25cdd57fae9f0462/hashbrown-0.17.1/src/raw.rs", line: 36, col: 40 }, btree_range_equal_BTreeSet: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/collections/btree/search.rs", line: 110, col: 21 }, btree_range_equal_BTreeMap: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/collections/btree/search.rs", line: 112, col: 21 }, btree_range_order_BTreeSet: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/collections/btree/search.rs", line: 119, col: 21 }, btree_range_order_BTreeMap: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/collections/btree/search.rs", line: 121, col: 21 }, deque_insert: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/collections/vec_deque/mod.rs", line: 2612, col: 9 }, deque_swap_i: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/collections/vec_deque/mod.rs", line: 1062, col: 9 }, deque_swap_j: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/collections/vec_deque/mod.rs", line: 1063, col: 9 }, deque_rotate_left: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/collections/vec_deque/mod.rs", line: 3198, col: 9 }, deque_rotate_right: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/collections/vec_deque/mod.rs", line: 3243, col: 9 }, deque_split_off: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/collections/vec_deque/mod.rs", line: 2724, col: 9 }, list_split_off: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/alloc/src/collections/linked_list.rs", line: 1015, col: 9 }, mutex_lock: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/std/src/sys/sync/mutex/no_threads.rs", line: 28, col: 9 }, once_force: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/std/src/sync/once.rs", line: 227, col: 20 }, reentrant_init: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/cell/once.rs", line: 325, col: 66 }, lazy_poisoned: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/cell/lazy.rs", line: 386, col: 5 }, ready_poll: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/future/ready.rs", line: 23, col: 35 }, ready_into_inner: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/future/ready.rs", line: 46, col: 16 }, duration_new: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/time.rs", line: 281, col: 18 }, duration_from_mins: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/time.rs", line: 540, col: 13 }, duration_from_hours: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/time.rs", line: 510, col: 13 }, duration_add: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/time.rs", line: 1345, col: 31 }, duration_sub: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/time.rs", line: 1365, col: 31 }, duration_mul: { file: "/rustc/7df81381d027710708209f36b98d11b1c88f8d2e/library/core/src/time.rs", line: 1385, col: 31 }, bytes_advance: { file: "/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.1/src/lib.rs", line: 207, col: 5 }, bytes_does_not_fit: { file: "/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.1/src/lib.rs", line: 215, col: 5 }, bytes_slice: { file: "/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.1/src/bytes.rs", line: 374, col: 28 }, bytes_slice_ref_start: { file: "/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.1/src/bytes.rs", line: 426, col: 9 }, bytes_slice_ref_end: { file: "/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.1/src/bytes.rs", line: 432, col: 9 }, bytes_split_off: { file: "/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.1/src/bytes.rs", line: 481, col: 9 }, bytes_split_to: { file: "/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.1/src/bytes.rs", line: 533, col: 9 }, bytes_buf_advance: { file: "/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.1/src/bytes.rs", line: 694, col: 9 }, bytes_mut_split_off: { file: "/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.1/src/bytes_mut.rs", line: 329, col: 9 }, bytes_mut_split_to: { file: "/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.1/src/bytes_mut.rs", line: 408, col: 9 }, bytes_mut_set_len: { file: "/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.1/src/bytes_mut.rs", line: 545, col: 9 }, bytes_mut_overflow: { file: "/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.1/src/bytes_mut.rs", line: 700, col: 21 }, bytes_mut_overflow_offset: { file: "/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.1/src/bytes_mut.rs", line: 720, col: 29 }, bytes_mut_buf_advance: { file: "/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.1/src/bytes_mut.rs", line: 1246, col: 9 } }); const subset: rs.ByteSlice = rs.bytesSlice(whole, 0, 1); if (k === 0) { - const _22: rs.ByteSlice = rs.bytesSlice(whole, rs.usizeAdd(1, rs.usizeRem(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 435, col: 34 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 435, col: 30 })); + const _22: rs.ByteSlice = rs.bytesSlice(whole, rs.usizeAdd(1, rs.usizeRem(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 443, col: 34 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 443, col: 30 })); held = rs.bytesSliceRef(_22, subset); rs.bytesDrop(_22); } else { const _32: rs.ByteSlice = rs.bytesSlice(whole, 0, 1); - const _35: rs.ByteSlice = rs.byteSliceRange(whole, 0, rs.usizeAdd(2, rs.usizeRem(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 436, col: 58 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 436, col: 54 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 436, col: 51 }); + const _35: rs.ByteSlice = rs.byteSliceRange(whole, 0, rs.usizeAdd(2, rs.usizeRem(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 444, col: 58 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 444, col: 54 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 444, col: 51 }); held = rs.bytesSliceRef(_32, _35); rs.bytesDrop(_32); } @@ -668,38 +673,38 @@ export function stock(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { } } hook(); - const shared: rs.BytesMut = rs.bytesMutFrom(rs.byteSliceRange(rs.byteSliceFrom(rs.bytes(8).fill(n)), 0, undefined, { file: "fixtures/lang/panics/src/hooked.rs", line: 442, col: 44 })); - const _52: rs.u8 = rs.u8Rem(kind, 33, { file: "fixtures/lang/panics/src/hooked.rs", line: 443, col: 11 }); + const shared: rs.BytesMut = rs.bytesMutFrom(rs.byteSliceRange(rs.byteSliceFrom(rs.bytes(8).fill(n)), 0, undefined, { file: "fixtures/lang/panics/src/hooked.rs", line: 450, col: 44 })); + const _52: rs.u8 = rs.u8Rem(kind, 33, { file: "fixtures/lang/panics/src/hooked.rs", line: 451, col: 11 }); if (_52 === 2) { - const _56: rs.ByteSlice = rs.bytesSlice(whole, rs.usizeAdd(at, 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 444, col: 49 }), 2); + const _56: rs.ByteSlice = rs.bytesSlice(whole, rs.usizeAdd(at, 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 452, col: 49 }), 2); rs.byteVecExtendFromSlice(out, _56); rs.bytesDrop(_56); } else if (_52 === 3) { - const _63: rs.ByteSlice = rs.bytesSlice(whole, 0, rs.usizeAdd(at, 5, { file: "fixtures/lang/panics/src/hooked.rs", line: 445, col: 51 })); + const _63: rs.ByteSlice = rs.bytesSlice(whole, 0, rs.usizeAdd(at, 5, { file: "fixtures/lang/panics/src/hooked.rs", line: 453, col: 51 })); rs.byteVecExtendFromSlice(out, _63); rs.bytesDrop(_63); } else if (_52 === 4) { - const _72: rs.RangeInclusive = new rs.RangeInclusive(rs.usizeSub(4294967295, rs.usizeRem(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 446, col: 62 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 446, col: 49 }), 4294967295, rs.usizeStep); + const _72: rs.RangeInclusive = new rs.RangeInclusive(rs.usizeSub(4294967295, rs.usizeRem(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 454, col: 62 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 454, col: 49 }), 4294967295, rs.usizeStep); const _70: rs.ByteSlice = rs.bytesSliceInclusive(whole, _72); rs.byteVecExtendFromSlice(out, _70); rs.bytesDrop(_70); } else if (_52 === 5) { let _81: rs.ByteSlice = rs.bytesClone(whole); - const _83: rs.usize = rs.usizeAdd(at, 5, { file: "fixtures/lang/panics/src/hooked.rs", line: 447, col: 60 }); + const _83: rs.usize = rs.usizeAdd(at, 5, { file: "fixtures/lang/panics/src/hooked.rs", line: 455, col: 60 }); const _79: rs.ByteSlice = rs.bytesSplitTo(rs.place(() => _81, (value9) => _81 = value9), _83); rs.byteVecExtendFromSlice(out, _79); rs.bytesDrop(_79); rs.bytesDrop(_81); } else if (_52 === 6) { let _89: rs.ByteSlice = rs.bytesClone(whole); - const _91: rs.usize = rs.usizeAdd(at, 5, { file: "fixtures/lang/panics/src/hooked.rs", line: 448, col: 61 }); + const _91: rs.usize = rs.usizeAdd(at, 5, { file: "fixtures/lang/panics/src/hooked.rs", line: 456, col: 61 }); const _87: rs.ByteSlice = rs.bytesSplitOff(rs.place(() => _89, (value8) => _89 = value8), _91); rs.byteVecExtendFromSlice(out, _87); rs.bytesDrop(_87); rs.bytesDrop(_89); } else if (_52 === 7) { let _94: rs.ByteSlice = rs.bytesClone(whole); - const _96: rs.usize = rs.usizeAdd(at, 5, { file: "fixtures/lang/panics/src/hooked.rs", line: 449, col: 36 }); + const _96: rs.usize = rs.usizeAdd(at, 5, { file: "fixtures/lang/panics/src/hooked.rs", line: 457, col: 36 }); rs.bytesAdvance(rs.place(() => _94, (value7) => _94 = value7), _96); rs.bytesDrop(_94); } else if (_52 === 8) { @@ -708,12 +713,12 @@ export function stock(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { rs.bytesDrop(_101); } else if (_52 === 9) { let _107: rs.ByteSlice = rs.bytesClone(whole); - const _109: rs.usize = rs.usizeAdd(9, rs.usizeRem(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 451, col: 50 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 451, col: 46 }); + const _109: rs.usize = rs.usizeAdd(9, rs.usizeRem(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 459, col: 50 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 459, col: 46 }); rs.byteVecPush(out, rs.u64Low(rs.u64FromBeBytes(rs.bytesReadInt(rs.place(() => _107, (value5) => _107 = value5), 8, _109, false, false))) & 0xff); rs.bytesDrop(_107); } else if (_52 === 10) { - let _114: rs.ByteSlice = rs.byteSliceRange(data, 0, undefined, { file: "fixtures/lang/panics/src/hooked.rs", line: 452, col: 21 }); - const _116: rs.usize = rs.usizeAdd(data.length, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 452, col: 35 }); + let _114: rs.ByteSlice = rs.byteSliceRange(data, 0, undefined, { file: "fixtures/lang/panics/src/hooked.rs", line: 460, col: 21 }); + const _116: rs.usize = rs.usizeAdd(data.length, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 460, col: 35 }); rs.byteSliceAdvance(rs.place(() => _114, (value4) => _114 = value4), _116); } else if (_52 === 11) { let _120: rs.ByteSlice = rs.bytesClone(whole); @@ -722,75 +727,75 @@ export function stock(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { rs.bytesDrop(_120); } else if (_52 === 12) { let _129: rs.ByteSlice = rs.bytesClone(whole); - const _131: rs.usize = rs.usizeAdd(at, 5, { file: "fixtures/lang/panics/src/hooked.rs", line: 454, col: 66 }); + const _131: rs.usize = rs.usizeAdd(at, 5, { file: "fixtures/lang/panics/src/hooked.rs", line: 462, col: 66 }); const _127: rs.ByteSlice = rs.bytesSplitTo(rs.place(() => _129, (value2) => _129 = value2), _131); rs.byteVecExtendFromSlice(out, _127); rs.bytesDrop(_127); rs.bytesDrop(_129); } else if (_52 === 13) { - let _137: rs.ByteSlice = rs.byteSliceRange(data, 0, undefined, { file: "fixtures/lang/panics/src/hooked.rs", line: 455, col: 44 }); - const _139: rs.usize = rs.usizeAdd(data.length, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 455, col: 64 }); + let _137: rs.ByteSlice = rs.byteSliceRange(data, 0, undefined, { file: "fixtures/lang/panics/src/hooked.rs", line: 463, col: 44 }); + const _139: rs.usize = rs.usizeAdd(data.length, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 463, col: 64 }); const _135: rs.ByteSlice = rs.byteSliceCopyToBytes(rs.place(() => _137, (value) => _137 = value), _139); rs.byteVecExtendFromSlice(out, _135); rs.bytesDrop(_135); } else if (_52 === 14) { const _146: rs.BytesMut = rs.bytesMutFrom(data); - const _144: rs.BytesMut = rs.bytesMutSplitTo(_146, rs.usizeAdd(data.length, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 456, col: 68 })); + const _144: rs.BytesMut = rs.bytesMutSplitTo(_146, rs.usizeAdd(data.length, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 464, col: 68 })); rs.byteVecExtendFromSlice(out, rs.bytesMutView(_144)); _144[Symbol.dispose](); _146[Symbol.dispose](); } else if (_52 === 15) { const _154: rs.BytesMut = rs.bytesMutWithCapacity(4); - const _152: rs.BytesMut = rs.bytesMutSplitOff(_154, rs.usizeAdd(at, 5, { file: "fixtures/lang/panics/src/hooked.rs", line: 457, col: 75 })); + const _152: rs.BytesMut = rs.bytesMutSplitOff(_154, rs.usizeAdd(at, 5, { file: "fixtures/lang/panics/src/hooked.rs", line: 465, col: 75 })); rs.byteVecExtendFromSlice(out, rs.bytesMutView(_152)); _152[Symbol.dispose](); _154[Symbol.dispose](); } else if (_52 === 16) { - const b: rs.BytesMut = rs.bytesMutWithCapacity(rs.usizeRem(at, 4, { file: "fixtures/lang/panics/src/hooked.rs", line: 459, col: 49 })); - rs.bytesMutSetLen(b, rs.usizeAdd(b.cap, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 461, col: 32 })); + const b: rs.BytesMut = rs.bytesMutWithCapacity(rs.usizeRem(at, 4, { file: "fixtures/lang/panics/src/hooked.rs", line: 467, col: 49 })); + rs.bytesMutSetLen(b, rs.usizeAdd(b.cap, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 469, col: 32 })); rs.byteVecPush(out, b.length & 0xff); b[Symbol.dispose](); } else if (_52 === 17) { - const b2: rs.BytesMut = rs.bytesMutWithCapacity(rs.usizeRem(at, 4, { file: "fixtures/lang/panics/src/hooked.rs", line: 465, col: 49 })); - rs.bytesMutAdvanceMut(b2, rs.usizeAdd(b2.cap, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 467, col: 36 })); + const b2: rs.BytesMut = rs.bytesMutWithCapacity(rs.usizeRem(at, 4, { file: "fixtures/lang/panics/src/hooked.rs", line: 473, col: 49 })); + rs.bytesMutAdvanceMut(b2, rs.usizeAdd(b2.cap, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 475, col: 36 })); rs.byteVecPush(out, b2.length & 0xff); b2[Symbol.dispose](); } else if (_52 === 18) { - const v: rs.ByteVec = rs.byteVecWithCapacity(rs.usizeRem(at, 4, { file: "fixtures/lang/panics/src/hooked.rs", line: 471, col: 50 })); - rs.byteVecAdvanceMut(v, rs.usizeAdd(v.data.length, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 473, col: 36 })); + const v: rs.ByteVec = rs.byteVecWithCapacity(rs.usizeRem(at, 4, { file: "fixtures/lang/panics/src/hooked.rs", line: 479, col: 50 })); + rs.byteVecAdvanceMut(v, rs.usizeAdd(v.data.length, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 481, col: 36 })); rs.byteVecPush(out, v.length & 0xff); } else if (_52 === 19) { const _197: rs.BytesMut = rs.bytesMutFrom(data); - rs.bytesMutAdvance(_197, rs.usizeAdd(data.length, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 476, col: 44 })); + rs.bytesMutAdvance(_197, rs.usizeAdd(data.length, 1, { file: "fixtures/lang/panics/src/hooked.rs", line: 484, col: 44 })); _197[Symbol.dispose](); } else if (_52 === 20) { - const _204: rs.BytesMut = rs.bytesMutFrom(rs.byteSliceRange(data, 0, rs.min(data.length, 3), { file: "fixtures/lang/panics/src/hooked.rs", line: 477, col: 44 })); + const _204: rs.BytesMut = rs.bytesMutFrom(rs.byteSliceRange(data, 0, rs.min(data.length, 3), { file: "fixtures/lang/panics/src/hooked.rs", line: 485, col: 44 })); rs.byteVecPush(out, (rs.bytesMutReadWord(_204, 4, false) as rs.u32) & 0xff); _204[Symbol.dispose](); } else if (_52 === 21) { - const _212: rs.BytesMut = rs.bytesMutWithCapacity(rs.usizeSub(4294967295, at, { file: "fixtures/lang/panics/src/hooked.rs", line: 478, col: 48 })); + const _212: rs.BytesMut = rs.bytesMutWithCapacity(rs.usizeSub(4294967295, at, { file: "fixtures/lang/panics/src/hooked.rs", line: 486, col: 48 })); rs.byteVecPush(out, _212.cap & 0xff); _212[Symbol.dispose](); } else if (_52 === 22) { const _tail: rs.BytesMut = rs.bytesMutSplitOff(shared, 4); - rs.bytesMutReserve(shared, rs.usizeSub(4294967295, rs.usizeRem(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 482, col: 41 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 482, col: 28 })); + rs.bytesMutReserve(shared, rs.usizeSub(4294967295, rs.usizeRem(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 490, col: 41 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 490, col: 28 })); _tail[Symbol.dispose](); } else if (_52 === 23) { rs.bytesMutSplitTo(shared, 4)[Symbol.dispose](); - rs.bytesMutReserve(shared, rs.usizeSub(4294967295 - 4, rs.usizeRem(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 487, col: 45 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 487, col: 28 })); + rs.bytesMutReserve(shared, rs.usizeSub(4294967295 - 4, rs.usizeRem(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 495, col: 45 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 495, col: 28 })); } else if (_52 === 24) { const _235: rs.u64 = n as rs.u64; - const _236: rs.usize = rs.usizeAdd(9, rs.usizeRem(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 489, col: 49 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 489, col: 45 }); + const _236: rs.usize = rs.usizeAdd(9, rs.usizeRem(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 497, col: 49 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 497, col: 45 }); rs.bytesMutPutInt(shared, rs.u64ToBeBytes(_235), _236, false); } else if (_52 === 25) { const _240: rs.i64 = n as rs.i64; - const _241: rs.usize = rs.usizeAdd(9, rs.usizeRem(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 490, col: 45 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 490, col: 41 }); + const _241: rs.usize = rs.usizeAdd(9, rs.usizeRem(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 498, col: 45 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 498, col: 41 }); rs.byteVecPutInt(out, rs.i64ToBeBytes(_240), _241, false); } else if (_52 === 26) { - rs.byteVecPutFill(out, n, rs.usizeSub(4294967295, rs.usizeRem(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 491, col: 53 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 491, col: 40 })); + rs.byteVecPutFill(out, n, rs.usizeSub(4294967295, rs.usizeRem(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 499, col: 53 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 499, col: 40 })); } else if (_52 === 27) { const _253: Take.Take = buf_impl_take$bytes_Buf_bytes_Bytes(rs.bytesClone(whole), 2); - const _251: rs.ByteSlice = Take.copyToBytes$bytes_Buf_bytes_Bytes(_253, rs.usizeAdd(at, 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 492, col: 74 })); + const _251: rs.ByteSlice = Take.copyToBytes$bytes_Buf_bytes_Bytes(_253, rs.usizeAdd(at, 3, { file: "fixtures/lang/panics/src/hooked.rs", line: 500, col: 74 })); rs.byteVecExtendFromSlice(out, _251); rs.bytesDrop(_251); drop$bytes_buf_Take_bytes_Bytes(_253); @@ -800,15 +805,15 @@ export function stock(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { drop$bytes_buf_Take_bytes_Bytes(_261); } else if (_52 === 29) { const chunk: rs.ByteSlice = rs.bytesMutChunkMut(shared); - UninitSlice.writeByte(chunk, rs.usizeAdd(UninitSlice.len(chunk), rs.usizeRem(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 497, col: 44 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 497, col: 30 }), n); + UninitSlice.writeByte(chunk, rs.usizeAdd(UninitSlice.len(chunk), rs.usizeRem(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 505, col: 44 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 505, col: 30 }), n); } else if (_52 === 30) { - UninitSlice.writeByte(UninitSlice.indexMut$ops_IndexMut_ops_RangeFrom_usize(rs.byteVecChunkMut(rs.byteVecWithCapacity(rs.usizeRem(at, 4, { file: "fixtures/lang/panics/src/hooked.rs", line: 499, col: 40 }))), new rs.RangeFrom(rs.usizeAdd(65, rs.usizeRem(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 499, col: 65 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 499, col: 60 }), rs.usizeStep), { file: "fixtures/lang/panics/src/hooked.rs", line: 499, col: 59 }), 0, n); + UninitSlice.writeByte(UninitSlice.indexMut$ops_IndexMut_ops_RangeFrom_usize(rs.byteVecChunkMut(rs.byteVecWithCapacity(rs.usizeRem(at, 4, { file: "fixtures/lang/panics/src/hooked.rs", line: 507, col: 40 }))), new rs.RangeFrom(rs.usizeAdd(65, rs.usizeRem(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 507, col: 65 }), { file: "fixtures/lang/panics/src/hooked.rs", line: 507, col: 60 }), rs.usizeStep), { file: "fixtures/lang/panics/src/hooked.rs", line: 507, col: 59 }), 0, n); } else if (_52 === 31) { const _287: rs.BytesMut = rs.bytesMutWithCapacity(0); - UninitSlice.copyFromSlice(UninitSlice.indexMut$ops_IndexMut_ops_RangeTo_usize(rs.bytesMutChunkMut(_287), { end: rs.usizeRem(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 500, col: 45 }) }, { file: "fixtures/lang/panics/src/hooked.rs", line: 500, col: 42 }), rs.byteSliceFrom(rs.bytes(3).fill(n))); + UninitSlice.copyFromSlice(UninitSlice.indexMut$ops_IndexMut_ops_RangeTo_usize(rs.bytesMutChunkMut(_287), { end: rs.usizeRem(at, 2, { file: "fixtures/lang/panics/src/hooked.rs", line: 508, col: 45 }) }, { file: "fixtures/lang/panics/src/hooked.rs", line: 508, col: 42 }), rs.byteSliceFrom(rs.bytes(3).fill(n))); _287[Symbol.dispose](); } else { - const _297: rs.BytesMut = rs.bytesMutZeroed(rs.usizeSub(4294967295, at, { file: "fixtures/lang/panics/src/hooked.rs", line: 501, col: 40 })); + const _297: rs.BytesMut = rs.bytesMutZeroed(rs.usizeSub(4294967295, at, { file: "fixtures/lang/panics/src/hooked.rs", line: 509, col: 40 })); rs.byteVecPush(out, _297.length & 0xff); _297[Symbol.dispose](); } @@ -824,7 +829,7 @@ export function stock(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { */ export function edition2018Panicked(kind: rs.u8, data: rs.ByteSlice, out: rs.ByteVec): void { b0: { - if (!(rs.u8Rem(kind, 7, { file: "fixtures/lang/panics/src/hooked.rs", line: 509, col: 8 }) !== 6)) { + if (!(rs.u8Rem(kind, 7, { file: "fixtures/lang/panics/src/hooked.rs", line: 517, col: 8 }) !== 6)) { if (!(option_unwrapOr$1fr498u(rs.byteSliceFirst(data), 0) > 200)) { break b0; } diff --git a/ts/fixtures/lang/panics/hook/expected/lib.ts b/ts/fixtures/lang/panics/hook/expected/lib.ts index e5622da04..e8d9f0201 100644 --- a/ts/fixtures/lang/panics/hook/expected/lib.ts +++ b/ts/fixtures/lang/panics/hook/expected/lib.ts @@ -171,7 +171,7 @@ export function NOTE$init(): rs.RefCell { export function note(): rs.String { return rs.localKeyWithBorrowMut(NOTE, (a0: rs.String): rs.String => { return rs.replaceIn(a0, rs.stringNew()); - }, { file: "fixtures/lang/panics/src/lib.rs", line: 53, col: 5 }); + }, { file: "fixtures/lang/panics/src/lib.rs", line: 55, col: 5 }); } //# sourceMappingURL=lib.ts.map diff --git a/ts/fixtures/lang/panics/src/hooked.rs b/ts/fixtures/lang/panics/src/hooked.rs index b5748d34c..bed712bb9 100644 --- a/ts/fixtures/lang/panics/src/hooked.rs +++ b/ts/fixtures/lang/panics/src/hooked.rs @@ -84,7 +84,7 @@ pub fn panicked(kind: u8, data: &[u8], out: &mut Vec) { let n = data.first().copied().unwrap_or(0); hook(); let v = vec![n, n]; - match kind % 35 { + match kind % 37 { 0 => panic!("literal"), 1 => panic!("formatted {n}"), 2 => out.push(v[usize::from(n) + 2]), @@ -125,6 +125,14 @@ pub fn panicked(kind: u8, data: &[u8], out: &mut Vec) { 32 => out.push(unsafe { n.max(200).unchecked_add(n.max(100)) }), // SAFETY: none, of zero: std's check of its precondition aborts. 33 => out.push(unsafe { std::num::NonZero::new_unchecked(n.wrapping_mul(0)) }.get()), + // SAFETY: none, past `u8::MAX`: std's check of its integer's precondition aborts in + // std's code, at the call of the macro that defines `NonZero`'s. + 34 => out.push(unsafe { std::num::NonZero::new(n.max(200)).unwrap().unchecked_add(n.max(100)) }.get()), + // SAFETY: none, past `i16::MAX`, at `NonZero`'s macro call. + 35 => { + let x = std::num::NonZero::new(i16::from(n.max(200))).unwrap(); + out.extend_from_slice(&unsafe { x.unchecked_mul(x) }.get().to_be_bytes()); + } _ => { let len = HashMap::::with_capacity(usize::MAX).len(); out.push(len as u8); diff --git a/ts/fixtures/lang/panics/src/lib.rs b/ts/fixtures/lang/panics/src/lib.rs index 2c3ca40ef..7d346af88 100644 --- a/ts/fixtures/lang/panics/src/lib.rs +++ b/ts/fixtures/lang/panics/src/lib.rs @@ -1,6 +1,8 @@ //! A part of the language the driver translates, exercised against native Rust: what //! each of its modules says. +#![cfg_attr(feature = "hook", feature(nonzero_ops))] + #[path = "../../harness.rs"] pub mod harness; #[cfg(feature = "hook")] diff --git a/ts/src/lower/library.rs b/ts/src/lower/library.rs index c95aeba3d..6583c4489 100644 --- a/ts/src/lower/library.rs +++ b/ts/src/lower/library.rs @@ -2059,10 +2059,9 @@ fn mapping<'tcx>( let check = Expr::Str("NonZero::new_unchecked requires the argument to be non-zero".into()); Expr::rs("precondition", vec![Expr::rs("nonZero", args), check]) } - // Its integer's, but that std's code, not the caller, is where it aborts. - ("NonZero", _) if name.starts_with("unchecked_") => return None, // Its integer's, of each width's own impl, which has no type argument to read the - // integer from, but for the bits it always has. + // integer from, but for the bits it always has. An `unchecked_` one aborts in std's + // code, which its call's site says. ("NonZero", _) => { let int = Int::of(unwrapped(tcx, impl_self(tcx, call.def_id)?))?; match name.as_str() {