From ebd0202a6db32b2224ac2432044aa49abb86ebea Mon Sep 17 00:00:00 2001 From: Luke Curley <432854+kixelated@users.noreply.github.com> Date: Tue, 3 Nov 2026 02:28:32 -0800 Subject: [PATCH 1/3] chore(quest): claim quest/m3/ts-span-precision.md Quest-Claim: 9d169dc2a5aa09f0 From 15229b43bf635bd494c568fba1c1e2a1f9a41409 Mon Sep 17 00:00:00 2001 From: Luke Curley <432854+kixelated@users.noreply.github.com> Date: Tue, 3 Nov 2026 05:56:34 -0800 Subject: [PATCH 2/3] feat(ts): map a tail, an argument, and what follows a call to the Rust that made them Co-Authored-By: Claude Opus 5.5 --- quest/m3/README.md | 1 - quest/m3/ts-span-precision.md | 20 -- ts/fixtures/codec/expected/coding/varint.ts | 2 +- ts/fixtures/lang/arrays/expected/arrays.ts | 6 +- ts/fixtures/lang/boxes/expected/boxes.ts | 4 +- .../lang/capacity/expected/capacity.ts | 20 +- ts/fixtures/lang/chars/expected/chars.ts | 2 +- .../collections/expected/collections.Rank.ts | 2 +- .../lang/collections/expected/collections.ts | 4 +- .../lang/combinators/expected/combinators.ts | 2 +- .../lang/conversions/expected/conversions.ts | 4 +- ts/fixtures/lang/counts/expected/counts.ts | 52 ++--- ts/fixtures/lang/cows/expected/cows.Named.ts | 2 +- ts/fixtures/lang/cows/expected/cows.ts | 2 +- ts/fixtures/lang/drops/expected/drops.ts | 20 +- ts/fixtures/lang/dyns/expected/dyns.ts | 12 +- ts/fixtures/lang/edits/expected/edits.ts | 4 +- .../lang/elements/expected/elements.ts | 6 +- ts/fixtures/lang/errors/expected/errors.ts | 50 ++-- ts/fixtures/lang/fields/expected/fields.ts | 2 +- ts/fixtures/lang/heap/expected/heap.ts | 4 +- ts/fixtures/lang/hints/expected/hints.ts | 60 ++--- ts/fixtures/lang/ints/expected/ints.ts | 214 +++++++++--------- ts/fixtures/lang/iters/expected/iters.ts | 6 +- ts/fixtures/lang/joins/expected/joins.ts | 4 +- ts/fixtures/lang/keys/expected/keys.ts | 22 +- ts/fixtures/lang/lengths/expected/lengths.ts | 16 +- ts/fixtures/lang/locks/expected/locks.ts | 10 +- ts/fixtures/lang/manual/expected/manual.ts | 4 +- .../lang/orders/expected/orders.Torn.ts | 2 +- .../lang/pointers/expected/pointers.List.ts | 2 +- .../pointers/expected/pointers.Waiters.ts | 2 +- .../lang/pointers/expected/pointers.ts | 74 +++--- ts/fixtures/lang/refs/expected/refs.ts | 6 +- ts/fixtures/lang/returns/expected/returns.ts | 4 +- ts/fixtures/lang/rings/expected/rings.ts | 2 +- .../separated/expected/separated.Below.ts | 2 +- .../lang/separated/expected/separated.ts | 6 +- ts/fixtures/lang/shapes/expected/fmt.Fault.ts | 2 +- ts/fixtures/lang/shapes/expected/fmt.ts | 2 +- ts/fixtures/lang/shapes/expected/shapes.ts | 10 +- ts/fixtures/lang/shares/expected/shares.ts | 4 +- ts/fixtures/lang/singles/expected/singles.ts | 2 +- ts/fixtures/lang/splits/expected/splits.ts | 2 +- .../lang/statics/expected/statics.Lock.ts | 10 +- ts/fixtures/lang/strs/expected/strs.ts | 8 +- ts/fixtures/lang/tuples/expected/tuples.ts | 10 +- .../lang/wrappers/expected/wrappers.ts | 2 +- ts/fixtures/lang/zeros/expected/zeros.ts | 26 +-- ts/fixtures/reject/spans.toml | 4 + ts/fixtures/reject/spans.txt | 37 +++ ts/fixtures/reject/src/lib.rs | 1 + ts/fixtures/reject/src/spans.rs | 32 +++ ts/fixtures/stock/expected/buf.Pieces.ts | 2 +- ts/fixtures/stock/expected/buf.ts | 34 +-- ts/fixtures/stock/expected/harness.ts | 4 +- ts/fixtures/stock/expected/maps.ts | 8 +- ts/fixtures/task/expected/drops.ts | 2 +- ts/fixtures/task/expected/drops/folds.Pile.ts | 4 +- ts/fixtures/task/expected/drops/inside.ts | 4 +- ts/fixtures/task/expected/drops/objects.ts | 2 +- ts/fixtures/task/expected/futures.ts | 4 +- ts/src/lower/mir/mod.rs | 46 +++- ts/src/print.rs | 62 +++-- ts/tests/fixtures.rs | 137 ++++++++++- 65 files changed, 678 insertions(+), 440 deletions(-) delete mode 100644 quest/m3/ts-span-precision.md create mode 100644 ts/fixtures/reject/spans.toml create mode 100644 ts/fixtures/reject/spans.txt create mode 100644 ts/fixtures/reject/src/spans.rs diff --git a/quest/m3/README.md b/quest/m3/README.md index d0b358be9..b2e1b85b5 100644 --- a/quest/m3/README.md +++ b/quest/m3/README.md @@ -37,7 +37,6 @@ generic std gap is planned here even when moq never calls it. - [An Arc's pointer](/quest/m3/ts-arc-pointers.md) - `Arc::as_ptr` and `Rc::as_ptr` translate, comparable by `ptr::addr_eq` - [The rest of a vector's methods](/quest/m3/ts-vec-rest.md) - `append`, `resize`, `split_off`, `try_reserve`, and `Vec::from(VecDeque)` translate - [A reversed zip's per-pair cost](/quest/m3/ts-zip-rev-overhead.md) - a reversed by-index zip costs per pair what a forward one does, or the gap is explained -- [Type errors at the Rust that made them](/quest/m3/ts-span-precision.md) - a `tsc` error on output names the tail expression or call argument that made it - [Fresh writes through a zip, a copy, and a repeat](/quest/m3/ts-fresh-shapes.md) - zipping a `Vec<[T; N]>`, reading a `T` out of `Zip::next`, and `copied` or `vec![x; n]` over a `Copy` type translate - [Python's wake on the loop's own thread](/quest/m3/ffi-python-wake.md) - a wake on the event loop's thread resumes the future with no socket pair - [Python's call cost](/quest/m3/ffi-python-calls.md) - a call on an object costs what BoltFFI's does, or the gap is explained diff --git a/quest/m3/ts-span-precision.md b/quest/m3/ts-span-precision.md deleted file mode 100644 index 994fc1382..000000000 --- a/quest/m3/ts-span-precision.md +++ /dev/null @@ -1,20 +0,0 @@ -# [S] Type errors at the Rust that made them - -## Goal - -When translated output fails `tsc`, [rust2-ts](/ts/README.md) reports each error at the -Rust expression that made the failing TypeScript, not at a coarser span, proven by reject -fixture cases whose expected spans name the expression. - -## Plan - -Found by [#376](https://github.com/moq-dev/rust2/pull/376), which fails translation on -output `tsc` rejects at the span the source map names. The map is coarse in places: - -- A function's tail `return` maps to its closing `}`, not the tail expression. -- A method call maps to the method's name, not its receiver or the argument that failed. - -Give those nodes the span of the MIR statement or operand they come from. Measure that the -finer map does not grow the output or slow a moq-net translation. - -Public API: the translator's error spans. diff --git a/ts/fixtures/codec/expected/coding/varint.ts b/ts/fixtures/codec/expected/coding/varint.ts index 992a729d1..35f589610 100644 --- a/ts/fixtures/codec/expected/coding/varint.ts +++ b/ts/fixtures/codec/expected/coding/varint.ts @@ -275,7 +275,7 @@ export function readLeadingOnes(bufData: Uint8Array, bufStart: number, bufLen: n } } else if (_9 === 4) { if (bufLen >= 5) { - _8_0 = fromHalves(((bufData[bufStart] & 7)) as rt.u32, ((bufData[bufStart + 1] << 24) | (bufData[bufStart + 2] << 16) | (bufData[bufStart + 3] << 8) | bufData[bufStart + 4]) >>> 0); + _8_0 = fromHalves((bufData[bufStart] & 7) as rt.u32, ((bufData[bufStart + 1] << 24) | (bufData[bufStart + 2] << 16) | (bufData[bufStart + 3] << 8) | bufData[bufStart + 4]) >>> 0); _8_1Data = bufData; _8_1Start = bufStart + 5; _8_1Len = bufLen - 5; diff --git a/ts/fixtures/lang/arrays/expected/arrays.ts b/ts/fixtures/lang/arrays/expected/arrays.ts index 65bbd0832..bba71ceef 100644 --- a/ts/fixtures/lang/arrays/expected/arrays.ts +++ b/ts/fixtures/lang/arrays/expected/arrays.ts @@ -115,7 +115,7 @@ export function maps(data: rt.ByteSlice, out: rt.ByteVec): void { const bytes: Uint8Array = Uint8Array.of(op, op ^ 1, op ^ 2, op ^ 3); const wide: rt.u16[] = rt.arrayMap(bytes, (b2: rt.u8): rt.u16 => { rt.byteVecPush(seen, b2); - return ((((b2 as rt.u16)) << 8) & 0xffff) | op as rt.u16; + return (((b2 as rt.u16) << 8) & 0xffff) | op as rt.u16; }); const narrow: Uint8Array = rt.bytesMap(wide, (w3: rt.u16): rt.u8 => { return (w3 >> 4) & 0xff; @@ -252,7 +252,7 @@ export function lent(data: rt.ByteSlice, out: rt.ByteVec): void { } } else if (_21 === 1) { const _40: rt.Place[] = rt.arrayPlaces(wide); - _40[0].v = rt.u16WrappingAdd(_40[0].v, (((op as rt.u16)) << 7) & 0xffff); + _40[0].v = rt.u16WrappingAdd(_40[0].v, ((op as rt.u16) << 7) & 0xffff); const swapped = _40[0].v; _40[0].v = _40[1].v; _40[1].v = swapped; @@ -391,7 +391,7 @@ export function asSlices(data: rt.ByteSlice, out: rt.ByteVec): void { const all: rt.u32[][] = pairs; const _93: rt.usize = rt.usizeRem(i, 2); rt.idx(all, _93); - rt.sliceCopyFromSlice(all[_93], [op as rt.u32, (((op as rt.u32)) << 20) >>> 0]); + rt.sliceCopyFromSlice(all[_93], [op as rt.u32, ((op as rt.u32) << 20) >>> 0]); rt.sliceSwap(all, 0, 1); } else if (_22 === 5) { const _108: rt.u16[] = []; diff --git a/ts/fixtures/lang/boxes/expected/boxes.ts b/ts/fixtures/lang/boxes/expected/boxes.ts index 5b8181c72..3df98e4f6 100644 --- a/ts/fixtures/lang/boxes/expected/boxes.ts +++ b/ts/fixtures/lang/boxes/expected/boxes.ts @@ -342,7 +342,7 @@ export function boxes(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): void { } else if (_15 === 4) { const pairs: [rt.u8, rt.u16][] = rt.iterToArray(rt.iterMap(rt.iterSlice(rt.byteSliceView(data2)), (_2: rt.u8): [rt.u8, rt.u16] => { const b2: rt.u8 = _2; - return [b2, (((b2 as rt.u16)) << 4) & 0xffff] as [rt.u8, rt.u16]; + return [b2, ((b2 as rt.u16) << 4) & 0xffff] as [rt.u8, rt.u16]; }), undefined, 4, true); const boxed3: [rt.u8, rt.u16][] = rt.sliceRange(pairs, 0).map(copy$tuple2_u8_u16); const iter3: rt.Iter<[rt.u8, rt.u16]> = rt.iterSlice(boxed3); @@ -823,7 +823,7 @@ export function impls(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): void { return rt.u16Mul(_216 as rt.u16, 257); }), undefined, 2, true); const v: rt.u16[] = rt.iterToArray(rt.iterMap(rt.iterSlice(rt.byteSliceView(rt.byteSliceRange(data2, 0, rt.usizeSub(data2.length, half)))), (_218: rt.u8): rt.u16 => { - return (((_218 as rt.u16)) << 3) & 0xffff; + return ((_218 as rt.u16) << 3) & 0xffff; }), undefined, 2, true); w = rt.boxSliceCloneFrom(w, v); w.reverse(); diff --git a/ts/fixtures/lang/capacity/expected/capacity.ts b/ts/fixtures/lang/capacity/expected/capacity.ts index 4cc1059dd..c07de1971 100644 --- a/ts/fixtures/lang/capacity/expected/capacity.ts +++ b/ts/fixtures/lang/capacity/expected/capacity.ts @@ -120,7 +120,7 @@ export function vecSteps$array160_u64(dataData: Uint8Array, dataStart: number, d } else if (_42 === 8) { rt.vecInsert(v, rt.usizeRem(arg as rt.usize, rt.usizeAdd(v.length, 1)), copy$array_u64(make(arg))); } else if (_42 === 9) { - if (!((v.length === 0))) { + if (!(v.length === 0)) { rt.vecRemove(v, rt.usizeRem(arg as rt.usize, v.length)); Known.loose(k); } @@ -183,7 +183,7 @@ export function vecSteps$array160_u64(dataData: Uint8Array, dataStart: number, d v = old; Known.put(Known.new(0), out, taken.length, rt.vecCapacity(taken, 1280)); } else if (_42 === 21) { - if (!((v.length === 0))) { + if (!(v.length === 0)) { rt.vecSwapRemove(v, rt.usizeRem(arg as rt.usize, v.length)); Known.loose(k); } @@ -284,7 +284,7 @@ export function vecSteps$tuple2_u64_u8(dataData: Uint8Array, dataStart: number, } else if (_42 === 8) { rt.vecInsert(v, rt.usizeRem(arg as rt.usize, rt.usizeAdd(v.length, 1)), copy$tuple2_u64_u8(make(arg))); } else if (_42 === 9) { - if (!((v.length === 0))) { + if (!(v.length === 0)) { rt.vecRemove(v, rt.usizeRem(arg as rt.usize, v.length)); Known.loose(k); } @@ -347,7 +347,7 @@ export function vecSteps$tuple2_u64_u8(dataData: Uint8Array, dataStart: number, v = old; Known.put(Known.new(0), out, taken.length, rt.vecCapacity(taken, 16)); } else if (_42 === 21) { - if (!((v.length === 0))) { + if (!(v.length === 0)) { rt.vecSwapRemove(v, rt.usizeRem(arg as rt.usize, v.length)); Known.loose(k); } @@ -448,7 +448,7 @@ export function vecSteps$u16(dataData: Uint8Array, dataStart: number, dataLen: n } else if (_42 === 8) { rt.vecInsert(v, rt.usizeRem(arg as rt.usize, rt.usizeAdd(v.length, 1)), make(arg)); } else if (_42 === 9) { - if (!((v.length === 0))) { + if (!(v.length === 0)) { rt.vecRemove(v, rt.usizeRem(arg as rt.usize, v.length)); Known.loose(k); } @@ -511,7 +511,7 @@ export function vecSteps$u16(dataData: Uint8Array, dataStart: number, dataLen: n v = old; Known.put(Known.new(0), out, taken.length, rt.vecCapacity(taken, 2)); } else if (_42 === 21) { - if (!((v.length === 0))) { + if (!(v.length === 0)) { rt.vecSwapRemove(v, rt.usizeRem(arg as rt.usize, v.length)); Known.loose(k); } @@ -612,7 +612,7 @@ export function vecSteps$u8(dataData: Uint8Array, dataStart: number, dataLen: nu } else if (_42 === 8) { rt.byteVecInsert(v, rt.usizeRem(arg as rt.usize, rt.usizeAdd(v.length, 1)), make(arg)); } else if (_42 === 9) { - if (!((v.length === 0))) { + if (!(v.length === 0)) { rt.byteVecRemove(v, rt.usizeRem(arg as rt.usize, v.length)); Known.loose(k); } @@ -673,7 +673,7 @@ export function vecSteps$u8(dataData: Uint8Array, dataStart: number, dataLen: nu v = old; Known.put(Known.new(0), out, taken.length, taken.data.length); } else if (_42 === 21) { - if (!((v.length === 0))) { + if (!(v.length === 0)) { rt.byteVecSwapRemove(v, rt.usizeRem(arg as rt.usize, v.length)); Known.loose(k); } @@ -777,7 +777,7 @@ export function vecSteps$unit(dataData: Uint8Array, dataStart: number, dataLen: make(arg); rt.vecInsert(_88, _89, undefined); } else if (_42 === 9) { - if (!((v.length === 0))) { + if (!(v.length === 0)) { rt.vecRemove(v, rt.usizeRem(arg as rt.usize, v.length)); Known.loose(k); } @@ -842,7 +842,7 @@ export function vecSteps$unit(dataData: Uint8Array, dataStart: number, dataLen: v = old; Known.put(Known.new(0), out, taken.length, rt.vecCapacity(taken, 0)); } else if (_42 === 21) { - if (!((v.length === 0))) { + if (!(v.length === 0)) { rt.vecSwapRemove(v, rt.usizeRem(arg as rt.usize, v.length)); Known.loose(k); } diff --git a/ts/fixtures/lang/chars/expected/chars.ts b/ts/fixtures/lang/chars/expected/chars.ts index 6cd7f5bf7..2a589acf5 100644 --- a/ts/fixtures/lang/chars/expected/chars.ts +++ b/ts/fixtures/lang/chars/expected/chars.ts @@ -14,7 +14,7 @@ export function scalars(data: rt.ByteSlice): rt.u32[] { const all: rt.u32[] = rt.vecExact([0, 127, 128, 255, 256, 2047, 2048, 55295, 55296, 56319, 56320, 57343, 57344, 65533, 65535, 65536, 1114109, 1114111, 1114112, 4294967295].slice(), 4); let rest: rt.ByteSlice = data; while (true) { - if (!((rest.length === 0))) { + if (!(rest.length === 0)) { const buf: Uint8Array = rt.bytes(4); const n: rt.usize = rt.min(rest.length, 4); rt.byteSliceCopyFromSlice(rt.byteSliceRange(rt.byteSliceFrom(buf), 0, n), rt.byteSliceRange(rest, 0, n)); diff --git a/ts/fixtures/lang/collections/expected/collections.Rank.ts b/ts/fixtures/lang/collections/expected/collections.Rank.ts index 26a78c072..995d16da5 100644 --- a/ts/fixtures/lang/collections/expected/collections.Rank.ts +++ b/ts/fixtures/lang/collections/expected/collections.Rank.ts @@ -12,7 +12,7 @@ export function eq$cmp_PartialEq(self: Rank, other: Rank): boolean { } } else if (self.tag === "High") { if (other.tag === "High") { - if (!((self.x === other.x))) { + if (!(self.x === other.x)) { return false; } return self.y === other.y; diff --git a/ts/fixtures/lang/collections/expected/collections.ts b/ts/fixtures/lang/collections/expected/collections.ts index f92d23246..2a2f95dde 100644 --- a/ts/fixtures/lang/collections/expected/collections.ts +++ b/ts/fixtures/lang/collections/expected/collections.ts @@ -961,7 +961,7 @@ export function deques(data: rt.ByteSlice, out: rt.ByteVec): void { rt.dequeReserve(touch(q), 1); rt.byteVecPush(out, q.n & 0xff); rt.iterExtendBytes(out, rt.iterRev(rt.dequeIter(q)), undefined, true); - if (!((q.n === 0))) { + if (!(q.n === 0)) { rt.byteVecPush(out, rt.dequeIndex(q, rt.usizeDiv(q.n, 2))); } rt.dequeRetain(q, (b4: rt.u8): boolean => { @@ -4730,7 +4730,7 @@ export function partialCmp$cmp_PartialOrd_boxed_Box_collections_Boxed(self: Boxe */ export function refOrders(_kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): void { let data2!: rt.ByteSlice; - if (!((data.length === 0))) { + if (!(data.length === 0)) { data2 = data; } else { data2 = rt.byteSliceRange(rt.byteSliceFrom(Uint8Array.of(0)), 0); diff --git a/ts/fixtures/lang/combinators/expected/combinators.ts b/ts/fixtures/lang/combinators/expected/combinators.ts index ef8d54943..620c656f2 100644 --- a/ts/fixtures/lang/combinators/expected/combinators.ts +++ b/ts/fixtures/lang/combinators/expected/combinators.ts @@ -72,7 +72,7 @@ export function options(a: rt.u8 | undefined, b: rt.u8 | undefined, limit: rt.u8 }) !== undefined ? 1 : 0); push(result_map$132mdj8(option_okOrElse$1v98j0a(b, (): rt.u16 => { rt.byteVecPush(out, 167); - return (((limit as rt.u16)) << 1) & 0xffff; + return ((limit as rt.u16) << 1) & 0xffff; }), (x10: rt.u8): rt.u8 => { return x10 ^ limit; }), out); diff --git a/ts/fixtures/lang/conversions/expected/conversions.ts b/ts/fixtures/lang/conversions/expected/conversions.ts index 62244cbc7..27165b3ee 100644 --- a/ts/fixtures/lang/conversions/expected/conversions.ts +++ b/ts/fixtures/lang/conversions/expected/conversions.ts @@ -60,7 +60,7 @@ export function put$conversions_Value_String(self: string, out: rt.ByteVec): voi /** The value `data` makes from `at`. */ export function make$conversions_Value_Option_u16(data: rt.ByteSlice, at: rt.usize): rt.u16 | undefined { const b: rt.u8 = byte(data, at); - return thenSome$0b23a33(rt.u8Rem(b, 4) !== 0, (((b as rt.u16)) << 4) & 0xffff); + return thenSome$0b23a33(rt.u8Rem(b, 4) !== 0, ((b as rt.u16) << 4) & 0xffff); } /** Its bytes. */ @@ -129,7 +129,7 @@ export function put$conversions_Value_array40_u8(self: rt.ByteSlice, out: rt.Byt /** The value `data` makes from `at`. */ export function make$conversions_Value_array2_u32(data: rt.ByteSlice, at: rt.usize): rt.u32[] { - return [rt.u8Rem(byte(data, at), 4) as rt.u32, (((byte(data, rt.usizeAdd(at, 1)) as rt.u32)) << 20) >>> 0]; + return [rt.u8Rem(byte(data, at), 4) as rt.u32, ((byte(data, rt.usizeAdd(at, 1)) as rt.u32) << 20) >>> 0]; } /** Its bytes. */ diff --git a/ts/fixtures/lang/counts/expected/counts.ts b/ts/fixtures/lang/counts/expected/counts.ts index 257f22bd1..419b0bdf7 100644 --- a/ts/fixtures/lang/counts/expected/counts.ts +++ b/ts/fixtures/lang/counts/expected/counts.ts @@ -42,19 +42,19 @@ export function arcs(data: rt.ByteSlice, out: rt.ByteVec): void { continue; } if (_19 === 1) { - if (!((strong.length === 0))) { + if (!(strong.length === 0)) { const again: rt.Arc = rt.arcClone(strong[rt.idx(strong, rt.usizeRem(pick, strong.length))]); strong.push(again); continue; } } else if (_19 === 2) { - if (!((strong.length === 0))) { + if (!(strong.length === 0)) { if ((op & 128) === 0) { rt.vecSwapRemove(strong, rt.usizeRem(pick, strong.length))[Symbol.dispose](); continue; } } - if (!((strong.length === 0))) { + if (!(strong.length === 0)) { const _49: Noisy.Noisy | undefined = rt.arcIntoInner(rt.vecSwapRemove(strong, rt.usizeRem(pick, strong.length))); if (_49 === undefined) { rt.byteVecPush(out, 251); @@ -66,24 +66,24 @@ export function arcs(data: rt.ByteSlice, out: rt.ByteVec): void { continue; } } else if (_19 === 3) { - if (!((strong.length === 0))) { + if (!(strong.length === 0)) { const _62: rt.Weak = new rt.Weak(strong[rt.idx(strong, rt.usizeRem(pick, strong.length))]); weak.push(_62); continue; } } else if (_19 === 4) { - if (!((weak.length === 0))) { + if (!(weak.length === 0)) { const again2: rt.Weak = rt.weakClone(weak[rt.idx(weak, rt.usizeRem(pick, weak.length))]); weak.push(again2); continue; } } else if (_19 === 5) { - if (!((weak.length === 0))) { + if (!(weak.length === 0)) { rt.vecSwapRemove(weak, rt.usizeRem(pick, weak.length))[Symbol.dispose](); continue; } } else if (_19 === 6) { - if (!((weak.length === 0))) { + if (!(weak.length === 0)) { const _90: rt.Arc | undefined = rt.weakUpgrade(weak[rt.idx(weak, rt.usizeRem(pick, weak.length))]); if (_90 === undefined) { rt.byteVecPush(out, 254); @@ -101,7 +101,7 @@ export function arcs(data: rt.ByteSlice, out: rt.ByteVec): void { continue; } if (_19 === 8) { - if (!((strong.length === 0))) { + if (!(strong.length === 0)) { const at3 = rt.idx(strong, rt.usizeRem(pick, strong.length)); const held: rt.Weak | undefined = new rt.Weak(strong[at3]); const kept: ArcHolder.ArcHolder = new ArcHolder.ArcHolder(new rt.Weak(strong[at3])); @@ -125,7 +125,7 @@ export function arcs(data: rt.ByteSlice, out: rt.ByteVec): void { continue; } } else if (_19 === 9) { - if (!((strong.length === 0))) { + if (!(strong.length === 0)) { const _140: Noisy.Noisy | undefined = rt.arcGetMut(strong[rt.idx(strong, rt.usizeRem(pick, strong.length))]); if (_140 === undefined) { rt.byteVecPush(out, 252); @@ -136,7 +136,7 @@ export function arcs(data: rt.ByteSlice, out: rt.ByteVec): void { continue; } } else if (_19 === 10) { - if (!((strong.length === 0))) { + if (!(strong.length === 0)) { const at = rt.idx(strong, rt.usizeRem(pick, strong.length)); const noisy2: Noisy.Noisy = rt.arcMakeMut(rt.place(() => strong[at], (value) => strong[at] = value), Noisy.clone$Clone, rt.drop); noisy2.id = noisy2.id ^ 32; @@ -311,17 +311,17 @@ export function clonedArcs(data: rt.ByteSlice, out: rt.ByteVec): void { } else { const _137: rt.u8 = op >> 6; if (_137 === 0) { - if (!((kept.length === 0))) { + if (!(kept.length === 0)) { rt.vecRemove(kept, 0)[Symbol.dispose](); break b2; } } else if (_137 === 1) { - if (!((shared.length === 0))) { + if (!(shared.length === 0)) { rt.vecRemove(shared, 0)[Symbol.dispose](); break b2; } } else if (_137 === 2) { - if (!((noisy.length === 0))) { + if (!(noisy.length === 0)) { rt.vecRemove(noisy, 0)[Symbol.dispose](); break b2; } @@ -668,17 +668,17 @@ export function clonedRcs(data: rt.ByteSlice, out: rt.ByteVec): void { } else { const _137: rt.u8 = op >> 6; if (_137 === 0) { - if (!((kept.length === 0))) { + if (!(kept.length === 0)) { rt.vecRemove(kept, 0)[Symbol.dispose](); break b2; } } else if (_137 === 1) { - if (!((shared.length === 0))) { + if (!(shared.length === 0)) { rt.vecRemove(shared, 0)[Symbol.dispose](); break b2; } } else if (_137 === 2) { - if (!((noisy.length === 0))) { + if (!(noisy.length === 0)) { rt.vecRemove(noisy, 0)[Symbol.dispose](); break b2; } @@ -810,19 +810,19 @@ export function rcs(data: rt.ByteSlice, out: rt.ByteVec): void { continue; } if (_19 === 1) { - if (!((strong.length === 0))) { + if (!(strong.length === 0)) { const again: rt.Arc = rt.arcClone(strong[rt.idx(strong, rt.usizeRem(pick, strong.length))]); strong.push(again); continue; } } else if (_19 === 2) { - if (!((strong.length === 0))) { + if (!(strong.length === 0)) { if ((op & 128) === 0) { rt.vecSwapRemove(strong, rt.usizeRem(pick, strong.length))[Symbol.dispose](); continue; } } - if (!((strong.length === 0))) { + if (!(strong.length === 0)) { const _49: Noisy.Noisy | undefined = rt.arcIntoInner(rt.vecSwapRemove(strong, rt.usizeRem(pick, strong.length))); if (_49 === undefined) { rt.byteVecPush(out, 251); @@ -834,24 +834,24 @@ export function rcs(data: rt.ByteSlice, out: rt.ByteVec): void { continue; } } else if (_19 === 3) { - if (!((strong.length === 0))) { + if (!(strong.length === 0)) { const _62: rt.Weak = new rt.Weak(strong[rt.idx(strong, rt.usizeRem(pick, strong.length))]); weak.push(_62); continue; } } else if (_19 === 4) { - if (!((weak.length === 0))) { + if (!(weak.length === 0)) { const again2: rt.Weak = rt.weakClone(weak[rt.idx(weak, rt.usizeRem(pick, weak.length))]); weak.push(again2); continue; } } else if (_19 === 5) { - if (!((weak.length === 0))) { + if (!(weak.length === 0)) { rt.vecSwapRemove(weak, rt.usizeRem(pick, weak.length))[Symbol.dispose](); continue; } } else if (_19 === 6) { - if (!((weak.length === 0))) { + if (!(weak.length === 0)) { const _90: rt.Arc | undefined = rt.weakUpgrade(weak[rt.idx(weak, rt.usizeRem(pick, weak.length))]); if (_90 === undefined) { rt.byteVecPush(out, 254); @@ -869,7 +869,7 @@ export function rcs(data: rt.ByteSlice, out: rt.ByteVec): void { continue; } if (_19 === 8) { - if (!((strong.length === 0))) { + if (!(strong.length === 0)) { const at3 = rt.idx(strong, rt.usizeRem(pick, strong.length)); const held: rt.Weak | undefined = new rt.Weak(strong[at3]); const kept: RcHolder.RcHolder = new RcHolder.RcHolder(new rt.Weak(strong[at3])); @@ -893,7 +893,7 @@ export function rcs(data: rt.ByteSlice, out: rt.ByteVec): void { continue; } } else if (_19 === 9) { - if (!((strong.length === 0))) { + if (!(strong.length === 0)) { const _140: Noisy.Noisy | undefined = rt.arcGetMut(strong[rt.idx(strong, rt.usizeRem(pick, strong.length))]); if (_140 === undefined) { rt.byteVecPush(out, 252); @@ -904,7 +904,7 @@ export function rcs(data: rt.ByteSlice, out: rt.ByteVec): void { continue; } } else if (_19 === 10) { - if (!((strong.length === 0))) { + if (!(strong.length === 0)) { const at = rt.idx(strong, rt.usizeRem(pick, strong.length)); const noisy2: Noisy.Noisy = rt.arcMakeMut(rt.place(() => strong[at], (value) => strong[at] = value), Noisy.clone$Clone, rt.drop); noisy2.id = noisy2.id ^ 32; diff --git a/ts/fixtures/lang/cows/expected/cows.Named.ts b/ts/fixtures/lang/cows/expected/cows.Named.ts index 461689ce0..73a2262c3 100644 --- a/ts/fixtures/lang/cows/expected/cows.Named.ts +++ b/ts/fixtures/lang/cows/expected/cows.Named.ts @@ -53,7 +53,7 @@ export interface Named { function new_(s: string, id: rt.u8): Named { let name!: string; const trimmed: string = rt.strTrimEndMatches(s, "/"); - if (!((trimmed.length === 0))) { + if (!(trimmed.length === 0)) { name = trimmed; } else { const args2: rt.Fmt[] = [(f: rt.Formatter) => rt.u8Display(id, f)]; diff --git a/ts/fixtures/lang/cows/expected/cows.ts b/ts/fixtures/lang/cows/expected/cows.ts index d20c012c1..74a24b089 100644 --- a/ts/fixtures/lang/cows/expected/cows.ts +++ b/ts/fixtures/lang/cows/expected/cows.ts @@ -154,7 +154,7 @@ export function cows(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): void { export function words(data: rt.ByteSlice): rt.u16[] { return rt.iterToArray(rt.iterMap(rt.byteSliceChunks(data, 2), (c: rt.ByteSlice): rt.u16 => { rt.idx(c, 0); - return ((((c.data[c.start] as rt.u16)) << 8) & 0xffff) | rt.optionUnwrap(rt.byteSliceLast(c)) as rt.u16; + return (((c.data[c.start] as rt.u16) << 8) & 0xffff) | rt.optionUnwrap(rt.byteSliceLast(c)) as rt.u16; }), undefined, 2, true); } diff --git a/ts/fixtures/lang/drops/expected/drops.ts b/ts/fixtures/lang/drops/expected/drops.ts index 9002c14d7..daf99573c 100644 --- a/ts/fixtures/lang/drops/expected/drops.ts +++ b/ts/fixtures/lang/drops/expected/drops.ts @@ -49,7 +49,7 @@ export function ways$drops_Chain_drops_Logged_drops_drops_closure12(make: (a0: r const v: Chain.Chain[] = [make(0), make(64), make(128)]; rt.vecTruncate(v, rt.usizeRem(how >> 2 as rt.usize, 3), rt.drop); mark(); - if (!((v.length === 0))) { + if (!(v.length === 0)) { rt.vecSwapRemove(v, 0)[Symbol.dispose](); mark(); } @@ -93,7 +93,7 @@ export function ways$drops_Deep_drops_Logged_drops_drops_closure9(make: (a0: rt. const v: Deep.Deep[] = [make(0), make(64), make(128)]; rt.vecTruncate(v, rt.usizeRem(how >> 2 as rt.usize, 3), drop$drops_Deep_drops_Logged); mark(); - if (!((v.length === 0))) { + if (!(v.length === 0)) { drop$drops_Deep_drops_Logged(rt.vecSwapRemove(v, 0)); mark(); } @@ -137,7 +137,7 @@ export function ways$drops_InBox_drops_Logged_drops_drops_closure8(make: (a0: rt const v: InBox.InBox[] = [make(0), make(64), make(128)]; rt.vecTruncate(v, rt.usizeRem(how >> 2 as rt.usize, 3), drop$drops_InBox_drops_Logged); mark(); - if (!((v.length === 0))) { + if (!(v.length === 0)) { drop$drops_InBox_drops_Logged(rt.vecSwapRemove(v, 0)); mark(); } @@ -181,7 +181,7 @@ export function ways$drops_InEnum_drops_Logged_drops_drops_closure4(make: (a0: r const v: InEnum.InEnum[] = [make(0), make(64), make(128)]; rt.vecTruncate(v, rt.usizeRem(how >> 2 as rt.usize, 3), drop$drops_InEnum_drops_Logged); mark(); - if (!((v.length === 0))) { + if (!(v.length === 0)) { drop$drops_InEnum_drops_Logged(rt.vecSwapRemove(v, 0)); mark(); } @@ -225,7 +225,7 @@ export function ways$drops_InGuard_drops_Logged_drops_drops_closure3(make: (a0: const v: InGuard.InGuard[] = [make(0), make(64), make(128)]; rt.vecTruncate(v, rt.usizeRem(how >> 2 as rt.usize, 3), drop$drops_InGuard_drops_Logged); mark(); - if (!((v.length === 0))) { + if (!(v.length === 0)) { drop$drops_InGuard_drops_Logged(rt.vecSwapRemove(v, 0)); mark(); } @@ -269,7 +269,7 @@ export function ways$drops_InOption_drops_Logged_drops_drops_closure6(make: (a0: const v: InOption.InOption[] = [make(0), make(64), make(128)]; rt.vecTruncate(v, rt.usizeRem(how >> 2 as rt.usize, 3), drop$drops_InOption_drops_Logged); mark(); - if (!((v.length === 0))) { + if (!(v.length === 0)) { drop$drops_InOption_drops_Logged(rt.vecSwapRemove(v, 0)); mark(); } @@ -313,7 +313,7 @@ export function ways$drops_InPlain_drops_Logged_drops_drops_closure7(make: (a0: const v: InPlain.InPlain[] = [make(0), make(64), make(128)]; rt.vecTruncate(v, rt.usizeRem(how >> 2 as rt.usize, 3), drop$drops_InPlain_drops_Logged); mark(); - if (!((v.length === 0))) { + if (!(v.length === 0)) { drop$drops_InPlain_drops_Logged(rt.vecSwapRemove(v, 0)); mark(); } @@ -357,7 +357,7 @@ export function ways$drops_InResult_drops_Logged_drops_drops_closure5(make: (a0: const v: InResult.InResult[] = [make(0), make(64), make(128)]; rt.vecTruncate(v, rt.usizeRem(how >> 2 as rt.usize, 3), drop$drops_InResult_drops_Logged); mark(); - if (!((v.length === 0))) { + if (!(v.length === 0)) { drop$drops_InResult_drops_Logged(rt.vecSwapRemove(v, 0)); mark(); } @@ -401,7 +401,7 @@ export function ways$drops_Ping_drops_Logged_drops_drops_closure11(make: (a0: rt const v: Ping.Ping[] = [make(0), make(64), make(128)]; rt.vecTruncate(v, rt.usizeRem(how >> 2 as rt.usize, 3), drop$drops_Ping_drops_Logged); mark(); - if (!((v.length === 0))) { + if (!(v.length === 0)) { drop$drops_Ping_drops_Logged(rt.vecSwapRemove(v, 0)); mark(); } @@ -445,7 +445,7 @@ export function ways$drops_Tree_drops_Logged_drops_drops_closure10(make: (a0: rt const v: Tree.Tree[] = [make(0), make(64), make(128)]; rt.vecTruncate(v, rt.usizeRem(how >> 2 as rt.usize, 3), drop$drops_Tree_drops_Logged); mark(); - if (!((v.length === 0))) { + if (!(v.length === 0)) { drop$drops_Tree_drops_Logged(rt.vecSwapRemove(v, 0)); mark(); } diff --git a/ts/fixtures/lang/dyns/expected/dyns.ts b/ts/fixtures/lang/dyns/expected/dyns.ts index 1aa9af6cf..1c71d4ec1 100644 --- a/ts/fixtures/lang/dyns/expected/dyns.ts +++ b/ts/fixtures/lang/dyns/expected/dyns.ts @@ -348,7 +348,7 @@ export function kind(a: Any.Any): string { const args6: rt.Fmt[] = [(f: rt.Formatter) => Tri.fmt$fmt_Debug(_24, f)]; return rt.fmtFormat(["tri ", args6[0]]); } - if (!((a instanceof of$u8 || a instanceof ofPlace$u8))) { + if (!(a instanceof of$u8 || a instanceof ofPlace$u8)) { return "other"; } return "u8"; @@ -377,13 +377,13 @@ export function bump(a: Any.Any, by: rt.u8): boolean { /** The same, through a generic `downcast_ref`, as a type parameter instantiates it. */ export function isA$dyns_Square(e: dyns_Erased.Erased): boolean { const _4: Any.Any = e.asAny$Erased(); - return ((_4 instanceof of$dyns_Square ? _4.v : undefined)) !== undefined; + return (_4 instanceof of$dyns_Square ? _4.v : undefined) !== undefined; } /** The same, through a generic `downcast_ref`, as a type parameter instantiates it. */ export function isA$u32(e: dyns_Erased.Erased): boolean { const _4: Any.Any = e.asAny$Erased(); - return ((_4 instanceof of$u32 ? _4.v : _4 instanceof ofPlace$u32 ? _4.v.v : undefined)) !== undefined; + return (_4 instanceof of$u32 ? _4.v : _4 instanceof ofPlace$u32 ? _4.v.v : undefined) !== undefined; } export function anys(dataData: Uint8Array, dataStart: number, dataLen: number, out: rt.ByteVec): void { @@ -460,7 +460,7 @@ export function anys(dataData: Uint8Array, dataStart: number, dataLen: number, o return undefined; }); } - const arg2 = ((_167 instanceof of$unit ? _167 : _167 instanceof ofPlace$unit ? _167.v : undefined)) !== undefined; + const arg2 = (_167 instanceof of$unit ? _167 : _167 instanceof ofPlace$unit ? _167.v : undefined) !== undefined; const args14: rt.Fmt[] = [(f: rt.Formatter) => rt.fmtBool(arg2, f)]; put(out, rt.fmtFormat([args14[0], " "])); } @@ -704,11 +704,11 @@ export function fns(data: rt.ByteSlice, out: rt.ByteVec): void { const args10: rt.Fmt[] = [(f: rt.Formatter) => rt.u32Display(part4, f)]; put(out, rt.fmtFormat([args10[0], " "])); const captured3 = rt.byteVecFrom(Uint8Array.of(a)); - const part6 = (((x6: rt.u8): rt.ByteVec => { + const part6 = ((x6: rt.u8): rt.ByteVec => { const list2: rt.ByteVec = captured3; rt.byteVecPush(list2, x6); return list2; - }))(b); + })(b); const args12: rt.Fmt[] = [(f: rt.Formatter) => rt.fmtList(rt.byteVecView(part6), f, rt.u8Debug)]; put(out, rt.fmtFormat([args12[0], " "])); const part7 = rt.once(rt.optionUnwrap(fs.pop()))(a); diff --git a/ts/fixtures/lang/edits/expected/edits.ts b/ts/fixtures/lang/edits/expected/edits.ts index d26d06fe7..b38bdbfb9 100644 --- a/ts/fixtures/lang/edits/expected/edits.ts +++ b/ts/fixtures/lang/edits/expected/edits.ts @@ -566,13 +566,13 @@ export function bytes(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): void { rt.byteVecExtendFromSlice(out, rt.byteVecSlice(v15)); rt.byteVecPush(out, rt.byteVecSwapRemove(v15, rt.usizeRem(j, v15.length))); rt.byteVecExtendFromSlice(out, rt.byteVecSlice(v15)); - if (!((v15.length === 0))) { + if (!(v15.length === 0)) { rt.byteVecPush(out, rt.byteVecRemove(v15, rt.usizeRem(i, v15.length))); } rt.byteVecExtendFromSlice(out, rt.byteVecSlice(v15)); const part = rt.min(v15.length, 1); const tail2: rt.ByteSlice = rt.byteSliceRange(rt.byteVecSlice(v15), part); - if (!((tail2.length === 0))) { + if (!(tail2.length === 0)) { rt.byteSliceSwap(tail2, rt.usizeRem(i, tail2.length), rt.usizeRem(j, tail2.length)); } rt.byteVecExtendFromSlice(out, rt.byteVecSlice(v15)); diff --git a/ts/fixtures/lang/elements/expected/elements.ts b/ts/fixtures/lang/elements/expected/elements.ts index 1f2e8767b..2f25cee01 100644 --- a/ts/fixtures/lang/elements/expected/elements.ts +++ b/ts/fixtures/lang/elements/expected/elements.ts @@ -295,7 +295,7 @@ export function edges(data: rt.ByteSlice, out: rt.ByteVec): void { const dangling: rt.Place = rt.DANGLING; rt.byteVecPush(out, rt.ptrWrappingAdd(dangling, -1, 2, 2) === rt.NULL ? 1 : 0); rt.byteVecPush(out, rt.ptrWrappingAdd(dangling, 4294967295, 2, 2) === rt.NULL ? 1 : 0); - rt.byteVecPush(out, rt.ptrWrappingAdd(rt.ptrWrappingAdd(dangling, -((n as rt.usize)), 2, 2), n as rt.usize, 2, 2) === rt.NULL ? 1 : 0); + rt.byteVecPush(out, rt.ptrWrappingAdd(rt.ptrWrappingAdd(dangling, -(n as rt.usize), 2, 2), n as rt.usize, 2, 2) === rt.NULL ? 1 : 0); rt.byteVecPush(out, rt.ptrWrappingAdd(rt.DANGLING, rt.isizeSub(rt.u8Rem(n, 3) as rt.isize, 1), 8, 8) === rt.NULL ? 1 : 0); rt.byteVecPush(out, new rt.RawSlice(rt.NULL, 0).ptr === rt.NULL ? 1 : 0); rt.byteVecPush(out, new rt.RawSlice(rt.NULL, 0).ptr === rt.NULL ? 1 : 0); @@ -405,9 +405,9 @@ export function rawSlices(data: rt.ByteSlice, out: rt.ByteVec): void { rt.byteVecPush(out, _140.data[_140.start + 1]); const null_: rt.RawSlice = new rt.RawSlice(rt.NULL, 0); const pointer4 = null_; - rt.byteVecPush(out, ((pointer4.ptr === rt.NULL ? undefined : pointer4)) === undefined ? 1 : 0); + rt.byteVecPush(out, (pointer4.ptr === rt.NULL ? undefined : pointer4) === undefined ? 1 : 0); const pointer5 = null_; - rt.byteVecPush(out, ((pointer5.ptr === rt.NULL ? undefined : pointer5.deref())) === undefined ? 1 : 0); + rt.byteVecPush(out, (pointer5.ptr === rt.NULL ? undefined : pointer5.deref()) === undefined ? 1 : 0); const raw: rt.RawSlice = rt.rawSliceOf([n as rt.u32, 2, 3]); rt.idx(raw, 2); raw.deref()[2] = 8; diff --git a/ts/fixtures/lang/errors/expected/errors.ts b/ts/fixtures/lang/errors/expected/errors.ts index 10f27c8d6..f3cb7365c 100644 --- a/ts/fixtures/lang/errors/expected/errors.ts +++ b/ts/fixtures/lang/errors/expected/errors.ts @@ -29,7 +29,7 @@ export function pairs$Option_Result_u8_num_ParseIntError(values: Array | undefined = _11; - rt.byteVecPush(out, ((rt.eqOption(result_eq$0p1bb4y)(a, b) ? 1 : 0)) | ((((!rt.eqOption(result_eq$0p1bb4y)(a, b) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (rt.eqOption(result_eq$0p1bb4y)(a, b) ? 1 : 0) | (((!rt.eqOption(result_eq$0p1bb4y)(a, b) ? 1 : 0) << 1) & 0xff)); } } } @@ -45,7 +45,7 @@ export function pairs$Result_Option_u8_num_ParseIntError(values: rt.Result = _11; - rt.byteVecPush(out, ((result_eq$04qb8k3(a, b) ? 1 : 0)) | ((((!result_eq$04qb8k3(a, b) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$04qb8k3(a, b) ? 1 : 0) | (((!result_eq$04qb8k3(a, b) ? 1 : 0) << 1) & 0xff)); } } } @@ -61,7 +61,7 @@ export function pairs$Result_Result_char_char_ParseCharError_str_ParseBoolError( continue l1; } const b: rt.Result, rt.ParseBoolError> = _11; - rt.byteVecPush(out, ((result_eq$10fppe8(a, b) ? 1 : 0)) | ((((!result_eq$10fppe8(a, b) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$10fppe8(a, b) ? 1 : 0) | (((!result_eq$10fppe8(a, b) ? 1 : 0) << 1) & 0xff)); } } } @@ -77,7 +77,7 @@ export function pairs$Result_String_string_FromUtf8Error(values: rt.Result = _11; - rt.byteVecPush(out, ((result_eq$0ecfqx9(a, b) ? 1 : 0)) | ((((!result_eq$0ecfqx9(a, b) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$0ecfqx9(a, b) ? 1 : 0) | (((!result_eq$0ecfqx9(a, b) ? 1 : 0) << 1) & 0xff)); } } } @@ -93,7 +93,7 @@ export function pairs$Result_bool_str_ParseBoolError(values: rt.Result = _11; - rt.byteVecPush(out, ((result_eq$0nlhjpf(a, b) ? 1 : 0)) | ((((!result_eq$0nlhjpf(a, b) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$0nlhjpf(a, b) ? 1 : 0) | (((!result_eq$0nlhjpf(a, b) ? 1 : 0) << 1) & 0xff)); } } } @@ -109,7 +109,7 @@ export function pairs$Result_char_char_ParseCharError(values: rt.Result = _11; - rt.byteVecPush(out, ((result_eq$04iua4k(a, b) ? 1 : 0)) | ((((!result_eq$04iua4k(a, b) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$04iua4k(a, b) ? 1 : 0) | (((!result_eq$04iua4k(a, b) ? 1 : 0) << 1) & 0xff)); } } } @@ -125,7 +125,7 @@ export function pairs$Result_f64_num_ParseFloatError(values: rt.Result = _11; - rt.byteVecPush(out, ((result_eq$1dhtbkj(a, b) ? 1 : 0)) | ((((!result_eq$1dhtbkj(a, b) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$1dhtbkj(a, b) ? 1 : 0) | (((!result_eq$1dhtbkj(a, b) ? 1 : 0) << 1) & 0xff)); } } } @@ -141,7 +141,7 @@ export function pairs$Result_i128_num_ParseIntError(values: rt.Result = _11; - rt.byteVecPush(out, ((result_eq$0pe0qmq(a, b) ? 1 : 0)) | ((((!result_eq$0pe0qmq(a, b) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$0pe0qmq(a, b) ? 1 : 0) | (((!result_eq$0pe0qmq(a, b) ? 1 : 0) << 1) & 0xff)); } } } @@ -157,7 +157,7 @@ export function pairs$Result_i8_num_ParseIntError(values: rt.Result = _11; - rt.byteVecPush(out, ((result_eq$1mpp8xa(a, b) ? 1 : 0)) | ((((!result_eq$1mpp8xa(a, b) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$1mpp8xa(a, b) ? 1 : 0) | (((!result_eq$1mpp8xa(a, b) ? 1 : 0) << 1) & 0xff)); } } } @@ -173,7 +173,7 @@ export function pairs$Result_i8_num_TryFromIntError(values: rt.Result = _11; - rt.byteVecPush(out, ((result_eq$0grmb7g(a, b) ? 1 : 0)) | ((((!result_eq$0grmb7g(a, b) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$0grmb7g(a, b) ? 1 : 0) | (((!result_eq$0grmb7g(a, b) ? 1 : 0) << 1) & 0xff)); } } } @@ -189,7 +189,7 @@ export function pairs$Result_num_NonZero_u32_num_ParseIntError(values: rt.Result continue l1; } const b: rt.Result = _11; - rt.byteVecPush(out, ((result_eq$19kc15f(a, b) ? 1 : 0)) | ((((!result_eq$19kc15f(a, b) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$19kc15f(a, b) ? 1 : 0) | (((!result_eq$19kc15f(a, b) ? 1 : 0) << 1) & 0xff)); } } } @@ -205,7 +205,7 @@ export function pairs$Result_ref_str_str_Utf8Error(values: rt.Result = _11; - rt.byteVecPush(out, ((result_eq$0rj0czq(a, b) ? 1 : 0)) | ((((!result_eq$0rj0czq(a, b) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$0rj0czq(a, b) ? 1 : 0) | (((!result_eq$0rj0czq(a, b) ? 1 : 0) << 1) & 0xff)); } } } @@ -221,7 +221,7 @@ export function pairs$Result_time_Duration_time_TryFromFloatSecsError(values: rt continue l1; } const b: rt.Result = _11; - rt.byteVecPush(out, ((result_eq$1hq3neq(a, b) ? 1 : 0)) | ((((!result_eq$1hq3neq(a, b) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$1hq3neq(a, b) ? 1 : 0) | (((!result_eq$1hq3neq(a, b) ? 1 : 0) << 1) & 0xff)); } } } @@ -237,7 +237,7 @@ export function pairs$Result_u16_never(values: rt.Result[], out: continue l1; } const b: rt.Result = _11; - rt.byteVecPush(out, ((result_eq$08241oi(a, b) ? 1 : 0)) | ((((!result_eq$08241oi(a, b) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$08241oi(a, b) ? 1 : 0) | (((!result_eq$08241oi(a, b) ? 1 : 0) << 1) & 0xff)); } } } @@ -253,7 +253,7 @@ export function pairs$Result_u64_num_ParseIntError(values: rt.Result = _11; - rt.byteVecPush(out, ((result_eq$0bl30vt(a, b) ? 1 : 0)) | ((((!result_eq$0bl30vt(a, b) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$0bl30vt(a, b) ? 1 : 0) | (((!result_eq$0bl30vt(a, b) ? 1 : 0) << 1) & 0xff)); } } } @@ -269,7 +269,7 @@ export function pairs$Result_u8_num_IntErrorKind(values: rt.Result = _11; - rt.byteVecPush(out, ((result_eq$1fkhuzl(a, b) ? 1 : 0)) | ((((!result_eq$1fkhuzl(a, b) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$1fkhuzl(a, b) ? 1 : 0) | (((!result_eq$1fkhuzl(a, b) ? 1 : 0) << 1) & 0xff)); } } } @@ -285,7 +285,7 @@ export function pairs$Result_u8_num_ParseIntError(values: rt.Result = _11; - rt.byteVecPush(out, ((result_eq$0p1bb4y(a, b) ? 1 : 0)) | ((((!result_eq$0p1bb4y(a, b) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$0p1bb4y(a, b) ? 1 : 0) | (((!result_eq$0p1bb4y(a, b) ? 1 : 0) << 1) & 0xff)); } } } @@ -301,7 +301,7 @@ export function pairs$Result_unit_fmt_Error(values: rt.Result = _11; - rt.byteVecPush(out, ((result_eq$03gbayb(a, b) ? 1 : 0)) | ((((!result_eq$03gbayb(a, b) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$03gbayb(a, b) ? 1 : 0) | (((!result_eq$03gbayb(a, b) ? 1 : 0) << 1) & 0xff)); } } } @@ -317,7 +317,7 @@ export function pairs$Vec_Result_bool_str_ParseBoolError(values: rt.Result[] = _11; - rt.byteVecPush(out, ((rt.eqSlice(result_eq$0nlhjpf)(a, b) ? 1 : 0)) | ((((!rt.eqSlice(result_eq$0nlhjpf)(a, b) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (rt.eqSlice(result_eq$0nlhjpf)(a, b) ? 1 : 0) | (((!rt.eqSlice(result_eq$0nlhjpf)(a, b) ? 1 : 0) << 1) & 0xff)); } } } @@ -333,7 +333,7 @@ export function pairs$char_ParseCharError(values: rt.ParseCharError[], out: rt.B continue l1; } const b: rt.ParseCharError = _11; - rt.byteVecPush(out, ((convert_eq$09vw48j(a, b) ? 1 : 0)) | ((((!convert_eq$09vw48j(a, b) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (convert_eq$09vw48j(a, b) ? 1 : 0) | (((!convert_eq$09vw48j(a, b) ? 1 : 0) << 1) & 0xff)); } } } @@ -349,7 +349,7 @@ export function pairs$num_ParseIntError(values: rt.ParseIntError[], out: rt.Byte continue l1; } const b: rt.ParseIntError = _11; - rt.byteVecPush(out, ((num_error_eq$18sin5z(a, b) ? 1 : 0)) | ((((!num_error_eq$18sin5z(a, b) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (num_error_eq$18sin5z(a, b) ? 1 : 0) | (((!num_error_eq$18sin5z(a, b) ? 1 : 0) << 1) & 0xff)); } } } @@ -365,7 +365,7 @@ export function pairs$str_ParseBoolError(values: rt.ParseBoolError[], out: rt.By continue l1; } const b: rt.ParseBoolError = _11; - rt.byteVecPush(out, ((str_error_eq$1f3e51k(a, b) ? 1 : 0)) | ((((!str_error_eq$1f3e51k(a, b) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (str_error_eq$1f3e51k(a, b) ? 1 : 0) | (((!str_error_eq$1f3e51k(a, b) ? 1 : 0) << 1) & 0xff)); } } } @@ -381,7 +381,7 @@ export function pairs$tuple2_Result_char_char_ParseCharError_usize(values: [rt.R continue l1; } const b: [rt.Result, rt.usize] = _11; - rt.byteVecPush(out, ((rt.eqTuple([result_eq$04iua4k, rt.same])(a, b) ? 1 : 0)) | ((((!rt.eqTuple([result_eq$04iua4k, rt.same])(a, b) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (rt.eqTuple([result_eq$04iua4k, rt.same])(a, b) ? 1 : 0) | (((!rt.eqTuple([result_eq$04iua4k, rt.same])(a, b) ? 1 : 0) << 1) & 0xff)); } } } @@ -487,7 +487,7 @@ export function eqs(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): void { } else if (_32 === 11) { const secs: rt.f64[] = [0.0, -0.0, 1.5, -1.0, NaN, Infinity, -Infinity, 1e30]; const _105: rt.Iter = rt.iterMap(rt.iterSlice(rt.byteSliceView(data)), (_25: rt.u8): rt.f64 => { - return (((_25 << 24) >> 24 as rt.f64)) / 4.0; + return ((_25 << 24) >> 24 as rt.f64) / 4.0; }); rt.iterExtend(secs, _105, undefined, 8, true); pairs$Result_time_Duration_time_TryFromFloatSecsError(rt.iterToArray(rt.iterMap(rt.iterSlice(secs), (a0: rt.f64): rt.Result => { @@ -523,7 +523,7 @@ export function eqs(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): void { } else { pairs$Option_Result_u8_num_ParseIntError(rt.iterToArray(rt.iterMap(rt.iterSlice(all), (s: string): rt.Result | undefined => { const _73: string = s; - return then$0afp4no(!((s.length === 0)), (): rt.Result => { + return then$0afp4no(!(s.length === 0), (): rt.Result => { return parse$0vh70p5(_73); }); }), undefined, 2, true), out); diff --git a/ts/fixtures/lang/fields/expected/fields.ts b/ts/fixtures/lang/fields/expected/fields.ts index 91e807149..293326ca6 100644 --- a/ts/fixtures/lang/fields/expected/fields.ts +++ b/ts/fixtures/lang/fields/expected/fields.ts @@ -21,7 +21,7 @@ export function fields(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): void { let two!: Glued.Glued; const n: rt.usize = rt.u8Rem(kind, 5) as rt.usize; const _8: rt.ByteSlice = rt.byteSliceRange(data, rt.min(n, data.length)); - rt.byteVecPush(out, ((kind as rt.usize)) & 0xff); + rt.byteVecPush(out, (kind as rt.usize) & 0xff); rt.byteVecExtendFromSlice(out, rt.byteSliceRange(new rt.ByteSlice(_8.data, _8.start, _8.length), 0, rt.min(_8.length, 2))); const r: Scanner.Scanner = { bufData: data.data, bufStart: data.start, bufLen: data.length, read: 0 }; while (true) { diff --git a/ts/fixtures/lang/heap/expected/heap.ts b/ts/fixtures/lang/heap/expected/heap.ts index c3475dd45..bc34413d6 100644 --- a/ts/fixtures/lang/heap/expected/heap.ts +++ b/ts/fixtures/lang/heap/expected/heap.ts @@ -70,7 +70,7 @@ export function spills(data: rt.ByteSlice, out: rt.ByteVec): void { const _26: rt.Arc = rt.arcClone(shared); rt.resultUnwrap(Spill.push$sync_Arc_u8(arcs, _26), (value: Fault.Fault, f: rt.Formatter) => Fault.fmt$fmt_Debug(value, f)); } else if (_17 === 2) { - const _30: [rt.u8, rt.u16] | undefined = thenSome$0j2n934((b & 8) !== 0, [b, (((b as rt.u16)) << 4) & 0xffff] as [rt.u8, rt.u16]); + const _30: [rt.u8, rt.u16] | undefined = thenSome$0j2n934((b & 8) !== 0, [b, ((b as rt.u16) << 4) & 0xffff] as [rt.u8, rt.u16]); rt.resultUnwrap(Spill.push$Option_tuple2_u8_u16(pairs, _30), (value: Fault.Fault, f: rt.Formatter) => Fault.fmt$fmt_Debug(value, f)); } else { const cap: rt.usize = rt.usizeAdd(rt.usizeRem(b >> 2 as rt.usize, 5), 1); @@ -111,7 +111,7 @@ export function remnants(data: rt.ByteSlice, out: rt.ByteVec): void { } const i: rt.usize = _16[0]; const b: rt.u8 = _16[1]; - rt.ptrAdd(slots, i).v = (((((b as rt.u32)) << 8) >>> 0) | 1) >>> 0; + rt.ptrAdd(slots, i).v = ((((b as rt.u32) << 8) >>> 0) | 1) >>> 0; } const words: rt.Place = slots; rt.iterExtendBytes(out, rt.iterFlatMap(rt.iterSlice(rt.ptrSlice(words, data.length)), (x: rt.u32): Uint8Array => { diff --git a/ts/fixtures/lang/hints/expected/hints.ts b/ts/fixtures/lang/hints/expected/hints.ts index 39e6c015d..3debf8901 100644 --- a/ts/fixtures/lang/hints/expected/hints.ts +++ b/ts/fixtures/lang/hints/expected/hints.ts @@ -2621,7 +2621,7 @@ export function fill$array275_u32_iter_Filter_iter_Map_ops_RangeInclusive_u32_hi rt.iterExtend(v2, items, "next", 1100); len = v2.length; } else if (coll === 3) { - len = ((rt.dequeFromVec(rt.iterToArray(items, "next", 1100), 1100) as rt.VecDeque)).n; + len = (rt.dequeFromVec(rt.iterToArray(items, "next", 1100), 1100) as rt.VecDeque).n; } else if (coll === 4) { const q: rt.VecDeque = rt.dequeFromVec(rt.vecFromElem(seed, 2, undefined), 1100) as rt.VecDeque; rt.dequeExtend(q, items, "next"); @@ -2690,7 +2690,7 @@ export function fill$array275_u32_iter_Map_iter_Flatten_array_IntoIter_ops_Range rt.iterExtend(v2, items, "next", 1100); len = v2.length; } else if (coll === 3) { - len = ((rt.dequeFromVec(rt.iterToArray(items, "next", 1100), 1100) as rt.VecDeque)).n; + len = (rt.dequeFromVec(rt.iterToArray(items, "next", 1100), 1100) as rt.VecDeque).n; } else if (coll === 4) { const q: rt.VecDeque = rt.dequeFromVec(rt.vecFromElem(seed, 2, undefined), 1100) as rt.VecDeque; rt.dequeExtend(q, items, "next"); @@ -2759,7 +2759,7 @@ export function fill$array275_u32_iter_Map_iter_Flatten_array_IntoIter_ops_Range rt.iterExtend(v2, items, "next", 1100); len = v2.length; } else if (coll === 3) { - len = ((rt.dequeFromVec(rt.iterToArray(items, "next", 1100), 1100) as rt.VecDeque)).n; + len = (rt.dequeFromVec(rt.iterToArray(items, "next", 1100), 1100) as rt.VecDeque).n; } else if (coll === 4) { const q: rt.VecDeque = rt.dequeFromVec(rt.vecFromElem(seed, 2, undefined), 1100) as rt.VecDeque; rt.dequeExtend(q, items, "next"); @@ -2828,7 +2828,7 @@ export function fill$array275_u32_iter_Map_ops_RangeInclusive_u32_hints_typed_cl rt.iterExtend(v2, items, undefined, 1100, true); len = v2.length; } else if (coll === 3) { - len = ((rt.dequeFromVec(rt.iterToArray(items, undefined, 1100, true), 1100) as rt.VecDeque)).n; + len = (rt.dequeFromVec(rt.iterToArray(items, undefined, 1100, true), 1100) as rt.VecDeque).n; } else if (coll === 4) { const q: rt.VecDeque = rt.dequeFromVec(rt.vecFromElem(seed, 2, undefined), 1100) as rt.VecDeque; rt.dequeExtend(q, items, undefined, true); @@ -2897,7 +2897,7 @@ export function fill$array275_u32_iter_Skip_iter_Map_ops_RangeInclusive_u32_hint rt.iterExtend(v2, items, "next", 1100); len = v2.length; } else if (coll === 3) { - len = ((rt.dequeFromVec(rt.iterToArray(items, "next", 1100), 1100) as rt.VecDeque)).n; + len = (rt.dequeFromVec(rt.iterToArray(items, "next", 1100), 1100) as rt.VecDeque).n; } else if (coll === 4) { const q: rt.VecDeque = rt.dequeFromVec(rt.vecFromElem(seed, 2, undefined), 1100) as rt.VecDeque; rt.dequeExtend(q, items, "next"); @@ -2966,7 +2966,7 @@ export function fill$hints_Unit_iter_Filter_iter_Map_ops_RangeInclusive_u32_hint rt.iterExtend(v2, items, "next", 0); len = v2.length; } else if (coll === 3) { - len = ((rt.dequeFromVec(rt.iterToArray(items, "next", 0), 0) as rt.VecDeque)).n; + len = (rt.dequeFromVec(rt.iterToArray(items, "next", 0), 0) as rt.VecDeque).n; } else if (coll === 4) { const q: rt.VecDeque = rt.dequeFromVec(rt.vecFromElem(Unit.clone$Clone(seed), 2, Unit.clone$Clone), 0) as rt.VecDeque; rt.dequeExtend(q, items, "next"); @@ -3035,7 +3035,7 @@ export function fill$hints_Unit_iter_Map_iter_Flatten_array_IntoIter_ops_RangeIn rt.iterExtend(v2, items, "next", 0); len = v2.length; } else if (coll === 3) { - len = ((rt.dequeFromVec(rt.iterToArray(items, "next", 0), 0) as rt.VecDeque)).n; + len = (rt.dequeFromVec(rt.iterToArray(items, "next", 0), 0) as rt.VecDeque).n; } else if (coll === 4) { const q: rt.VecDeque = rt.dequeFromVec(rt.vecFromElem(Unit.clone$Clone(seed), 2, Unit.clone$Clone), 0) as rt.VecDeque; rt.dequeExtend(q, items, "next"); @@ -3104,7 +3104,7 @@ export function fill$hints_Unit_iter_Map_iter_Flatten_array_IntoIter_ops_RangeIn rt.iterExtend(v2, items, "next", 0); len = v2.length; } else if (coll === 3) { - len = ((rt.dequeFromVec(rt.iterToArray(items, "next", 0), 0) as rt.VecDeque)).n; + len = (rt.dequeFromVec(rt.iterToArray(items, "next", 0), 0) as rt.VecDeque).n; } else if (coll === 4) { const q: rt.VecDeque = rt.dequeFromVec(rt.vecFromElem(Unit.clone$Clone(seed), 2, Unit.clone$Clone), 0) as rt.VecDeque; rt.dequeExtend(q, items, "next"); @@ -3173,7 +3173,7 @@ export function fill$hints_Unit_iter_Map_ops_RangeInclusive_u32_hints_typed_clos rt.iterExtend(v2, items, undefined, 0, true); len = v2.length; } else if (coll === 3) { - len = ((rt.dequeFromVec(rt.iterToArray(items, undefined, 0, true), 0) as rt.VecDeque)).n; + len = (rt.dequeFromVec(rt.iterToArray(items, undefined, 0, true), 0) as rt.VecDeque).n; } else if (coll === 4) { const q: rt.VecDeque = rt.dequeFromVec(rt.vecFromElem(Unit.clone$Clone(seed), 2, Unit.clone$Clone), 0) as rt.VecDeque; rt.dequeExtend(q, items, undefined, true); @@ -3242,7 +3242,7 @@ export function fill$hints_Unit_iter_Skip_iter_Map_ops_RangeInclusive_u32_hints_ rt.iterExtend(v2, items, "next", 0); len = v2.length; } else if (coll === 3) { - len = ((rt.dequeFromVec(rt.iterToArray(items, "next", 0), 0) as rt.VecDeque)).n; + len = (rt.dequeFromVec(rt.iterToArray(items, "next", 0), 0) as rt.VecDeque).n; } else if (coll === 4) { const q: rt.VecDeque = rt.dequeFromVec(rt.vecFromElem(Unit.clone$Clone(seed), 2, Unit.clone$Clone), 0) as rt.VecDeque; rt.dequeExtend(q, items, "next"); @@ -3311,7 +3311,7 @@ export function fill$tuple2_u64_u8_iter_Filter_iter_Map_ops_RangeInclusive_u32_h rt.iterExtend(v2, items, "next", 16); len = v2.length; } else if (coll === 3) { - len = ((rt.dequeFromVec(rt.iterToArray(items, "next", 16), 16) as rt.VecDeque<[rt.u64, rt.u8]>)).n; + len = (rt.dequeFromVec(rt.iterToArray(items, "next", 16), 16) as rt.VecDeque<[rt.u64, rt.u8]>).n; } else if (coll === 4) { const q: rt.VecDeque<[rt.u64, rt.u8]> = rt.dequeFromVec(rt.vecFromElem(seed, 2, undefined), 16) as rt.VecDeque<[rt.u64, rt.u8]>; rt.dequeExtend(q, items, "next"); @@ -3380,7 +3380,7 @@ export function fill$tuple2_u64_u8_iter_Map_iter_Flatten_array_IntoIter_ops_Rang rt.iterExtend(v2, items, "next", 16); len = v2.length; } else if (coll === 3) { - len = ((rt.dequeFromVec(rt.iterToArray(items, "next", 16), 16) as rt.VecDeque<[rt.u64, rt.u8]>)).n; + len = (rt.dequeFromVec(rt.iterToArray(items, "next", 16), 16) as rt.VecDeque<[rt.u64, rt.u8]>).n; } else if (coll === 4) { const q: rt.VecDeque<[rt.u64, rt.u8]> = rt.dequeFromVec(rt.vecFromElem(seed, 2, undefined), 16) as rt.VecDeque<[rt.u64, rt.u8]>; rt.dequeExtend(q, items, "next"); @@ -3449,7 +3449,7 @@ export function fill$tuple2_u64_u8_iter_Map_iter_Flatten_array_IntoIter_ops_Rang rt.iterExtend(v2, items, "next", 16); len = v2.length; } else if (coll === 3) { - len = ((rt.dequeFromVec(rt.iterToArray(items, "next", 16), 16) as rt.VecDeque<[rt.u64, rt.u8]>)).n; + len = (rt.dequeFromVec(rt.iterToArray(items, "next", 16), 16) as rt.VecDeque<[rt.u64, rt.u8]>).n; } else if (coll === 4) { const q: rt.VecDeque<[rt.u64, rt.u8]> = rt.dequeFromVec(rt.vecFromElem(seed, 2, undefined), 16) as rt.VecDeque<[rt.u64, rt.u8]>; rt.dequeExtend(q, items, "next"); @@ -3518,7 +3518,7 @@ export function fill$tuple2_u64_u8_iter_Map_ops_RangeInclusive_u32_hints_typed_c rt.iterExtend(v2, items, undefined, 16, true); len = v2.length; } else if (coll === 3) { - len = ((rt.dequeFromVec(rt.iterToArray(items, undefined, 16, true), 16) as rt.VecDeque<[rt.u64, rt.u8]>)).n; + len = (rt.dequeFromVec(rt.iterToArray(items, undefined, 16, true), 16) as rt.VecDeque<[rt.u64, rt.u8]>).n; } else if (coll === 4) { const q: rt.VecDeque<[rt.u64, rt.u8]> = rt.dequeFromVec(rt.vecFromElem(seed, 2, undefined), 16) as rt.VecDeque<[rt.u64, rt.u8]>; rt.dequeExtend(q, items, undefined, true); @@ -3587,7 +3587,7 @@ export function fill$tuple2_u64_u8_iter_Skip_iter_Map_ops_RangeInclusive_u32_hin rt.iterExtend(v2, items, "next", 16); len = v2.length; } else if (coll === 3) { - len = ((rt.dequeFromVec(rt.iterToArray(items, "next", 16), 16) as rt.VecDeque<[rt.u64, rt.u8]>)).n; + len = (rt.dequeFromVec(rt.iterToArray(items, "next", 16), 16) as rt.VecDeque<[rt.u64, rt.u8]>).n; } else if (coll === 4) { const q: rt.VecDeque<[rt.u64, rt.u8]> = rt.dequeFromVec(rt.vecFromElem(seed, 2, undefined), 16) as rt.VecDeque<[rt.u64, rt.u8]>; rt.dequeExtend(q, items, "next"); @@ -3656,7 +3656,7 @@ export function fill$tuple3_u8_u8_u8_iter_Filter_iter_Map_ops_RangeInclusive_u32 rt.iterExtend(v2, items, "next", 3); len = v2.length; } else if (coll === 3) { - len = ((rt.dequeFromVec(rt.iterToArray(items, "next", 3), 3) as rt.VecDeque<[rt.u8, rt.u8, rt.u8]>)).n; + len = (rt.dequeFromVec(rt.iterToArray(items, "next", 3), 3) as rt.VecDeque<[rt.u8, rt.u8, rt.u8]>).n; } else if (coll === 4) { const q: rt.VecDeque<[rt.u8, rt.u8, rt.u8]> = rt.dequeFromVec(rt.vecFromElem(seed, 2, undefined), 3) as rt.VecDeque<[rt.u8, rt.u8, rt.u8]>; rt.dequeExtend(q, items, "next"); @@ -3725,7 +3725,7 @@ export function fill$tuple3_u8_u8_u8_iter_Map_iter_Flatten_array_IntoIter_ops_Ra rt.iterExtend(v2, items, "next", 3); len = v2.length; } else if (coll === 3) { - len = ((rt.dequeFromVec(rt.iterToArray(items, "next", 3), 3) as rt.VecDeque<[rt.u8, rt.u8, rt.u8]>)).n; + len = (rt.dequeFromVec(rt.iterToArray(items, "next", 3), 3) as rt.VecDeque<[rt.u8, rt.u8, rt.u8]>).n; } else if (coll === 4) { const q: rt.VecDeque<[rt.u8, rt.u8, rt.u8]> = rt.dequeFromVec(rt.vecFromElem(seed, 2, undefined), 3) as rt.VecDeque<[rt.u8, rt.u8, rt.u8]>; rt.dequeExtend(q, items, "next"); @@ -3794,7 +3794,7 @@ export function fill$tuple3_u8_u8_u8_iter_Map_iter_Flatten_array_IntoIter_ops_Ra rt.iterExtend(v2, items, "next", 3); len = v2.length; } else if (coll === 3) { - len = ((rt.dequeFromVec(rt.iterToArray(items, "next", 3), 3) as rt.VecDeque<[rt.u8, rt.u8, rt.u8]>)).n; + len = (rt.dequeFromVec(rt.iterToArray(items, "next", 3), 3) as rt.VecDeque<[rt.u8, rt.u8, rt.u8]>).n; } else if (coll === 4) { const q: rt.VecDeque<[rt.u8, rt.u8, rt.u8]> = rt.dequeFromVec(rt.vecFromElem(seed, 2, undefined), 3) as rt.VecDeque<[rt.u8, rt.u8, rt.u8]>; rt.dequeExtend(q, items, "next"); @@ -3863,7 +3863,7 @@ export function fill$tuple3_u8_u8_u8_iter_Map_ops_RangeInclusive_u32_hints_typed rt.iterExtend(v2, items, undefined, 3, true); len = v2.length; } else if (coll === 3) { - len = ((rt.dequeFromVec(rt.iterToArray(items, undefined, 3, true), 3) as rt.VecDeque<[rt.u8, rt.u8, rt.u8]>)).n; + len = (rt.dequeFromVec(rt.iterToArray(items, undefined, 3, true), 3) as rt.VecDeque<[rt.u8, rt.u8, rt.u8]>).n; } else if (coll === 4) { const q: rt.VecDeque<[rt.u8, rt.u8, rt.u8]> = rt.dequeFromVec(rt.vecFromElem(seed, 2, undefined), 3) as rt.VecDeque<[rt.u8, rt.u8, rt.u8]>; rt.dequeExtend(q, items, undefined, true); @@ -3932,7 +3932,7 @@ export function fill$tuple3_u8_u8_u8_iter_Skip_iter_Map_ops_RangeInclusive_u32_h rt.iterExtend(v2, items, "next", 3); len = v2.length; } else if (coll === 3) { - len = ((rt.dequeFromVec(rt.iterToArray(items, "next", 3), 3) as rt.VecDeque<[rt.u8, rt.u8, rt.u8]>)).n; + len = (rt.dequeFromVec(rt.iterToArray(items, "next", 3), 3) as rt.VecDeque<[rt.u8, rt.u8, rt.u8]>).n; } else if (coll === 4) { const q: rt.VecDeque<[rt.u8, rt.u8, rt.u8]> = rt.dequeFromVec(rt.vecFromElem(seed, 2, undefined), 3) as rt.VecDeque<[rt.u8, rt.u8, rt.u8]>; rt.dequeExtend(q, items, "next"); @@ -4001,7 +4001,7 @@ export function fill$u32_iter_Filter_iter_Map_ops_RangeInclusive_u32_hints_typed rt.iterExtend(v2, items, "next", 4); len = v2.length; } else if (coll === 3) { - len = ((rt.dequeFromVec(rt.iterToArray(items, "next", 4), 4) as rt.VecDeque)).n; + len = (rt.dequeFromVec(rt.iterToArray(items, "next", 4), 4) as rt.VecDeque).n; } else if (coll === 4) { const q: rt.VecDeque = rt.dequeFromVec(rt.vecFromElem(seed, 2, undefined), 4) as rt.VecDeque; rt.dequeExtend(q, items, "next"); @@ -4070,7 +4070,7 @@ export function fill$u32_iter_Map_iter_Flatten_array_IntoIter_ops_RangeInclusive rt.iterExtend(v2, items, "next", 4); len = v2.length; } else if (coll === 3) { - len = ((rt.dequeFromVec(rt.iterToArray(items, "next", 4), 4) as rt.VecDeque)).n; + len = (rt.dequeFromVec(rt.iterToArray(items, "next", 4), 4) as rt.VecDeque).n; } else if (coll === 4) { const q: rt.VecDeque = rt.dequeFromVec(rt.vecFromElem(seed, 2, undefined), 4) as rt.VecDeque; rt.dequeExtend(q, items, "next"); @@ -4139,7 +4139,7 @@ export function fill$u32_iter_Map_iter_Flatten_array_IntoIter_ops_RangeInclusive rt.iterExtend(v2, items, "next", 4); len = v2.length; } else if (coll === 3) { - len = ((rt.dequeFromVec(rt.iterToArray(items, "next", 4), 4) as rt.VecDeque)).n; + len = (rt.dequeFromVec(rt.iterToArray(items, "next", 4), 4) as rt.VecDeque).n; } else if (coll === 4) { const q: rt.VecDeque = rt.dequeFromVec(rt.vecFromElem(seed, 2, undefined), 4) as rt.VecDeque; rt.dequeExtend(q, items, "next"); @@ -4208,7 +4208,7 @@ export function fill$u32_iter_Map_ops_RangeInclusive_u32_hints_typed_closure1_u3 rt.iterExtend(v2, items, undefined, 4, true); len = v2.length; } else if (coll === 3) { - len = ((rt.dequeFromVec(rt.iterToArray(items, undefined, 4, true), 4) as rt.VecDeque)).n; + len = (rt.dequeFromVec(rt.iterToArray(items, undefined, 4, true), 4) as rt.VecDeque).n; } else if (coll === 4) { const q: rt.VecDeque = rt.dequeFromVec(rt.vecFromElem(seed, 2, undefined), 4) as rt.VecDeque; rt.dequeExtend(q, items, undefined, true); @@ -4277,7 +4277,7 @@ export function fill$u32_iter_Skip_iter_Map_ops_RangeInclusive_u32_hints_typed_c rt.iterExtend(v2, items, "next", 4); len = v2.length; } else if (coll === 3) { - len = ((rt.dequeFromVec(rt.iterToArray(items, "next", 4), 4) as rt.VecDeque)).n; + len = (rt.dequeFromVec(rt.iterToArray(items, "next", 4), 4) as rt.VecDeque).n; } else if (coll === 4) { const q: rt.VecDeque = rt.dequeFromVec(rt.vecFromElem(seed, 2, undefined), 4) as rt.VecDeque; rt.dequeExtend(q, items, "next"); @@ -4346,7 +4346,7 @@ export function fill$u8_iter_Filter_iter_Map_ops_RangeInclusive_u32_hints_typed_ rt.iterExtendBytes(v2, items, "next"); len = v2.length; } else if (coll === 3) { - len = ((rt.dequeFromVec(rt.iterToArray(items, "next", 1), 1, true) as rt.VecDeque)).n; + len = (rt.dequeFromVec(rt.iterToArray(items, "next", 1), 1, true) as rt.VecDeque).n; } else if (coll === 4) { const q: rt.VecDeque = rt.dequeFromVec(rt.byteVecToVec(rt.byteVecOf(seed, 2)), 1, true) as rt.VecDeque; rt.dequeExtend(q, items, "next"); @@ -4415,7 +4415,7 @@ export function fill$u8_iter_Map_iter_Flatten_array_IntoIter_ops_RangeInclusive_ rt.iterExtendBytes(v2, items, "next"); len = v2.length; } else if (coll === 3) { - len = ((rt.dequeFromVec(rt.iterToArray(items, "next", 1), 1, true) as rt.VecDeque)).n; + len = (rt.dequeFromVec(rt.iterToArray(items, "next", 1), 1, true) as rt.VecDeque).n; } else if (coll === 4) { const q: rt.VecDeque = rt.dequeFromVec(rt.byteVecToVec(rt.byteVecOf(seed, 2)), 1, true) as rt.VecDeque; rt.dequeExtend(q, items, "next"); @@ -4484,7 +4484,7 @@ export function fill$u8_iter_Map_iter_Flatten_array_IntoIter_ops_RangeInclusive_ rt.iterExtendBytes(v2, items, "next"); len = v2.length; } else if (coll === 3) { - len = ((rt.dequeFromVec(rt.iterToArray(items, "next", 1), 1, true) as rt.VecDeque)).n; + len = (rt.dequeFromVec(rt.iterToArray(items, "next", 1), 1, true) as rt.VecDeque).n; } else if (coll === 4) { const q: rt.VecDeque = rt.dequeFromVec(rt.byteVecToVec(rt.byteVecOf(seed, 2)), 1, true) as rt.VecDeque; rt.dequeExtend(q, items, "next"); @@ -4553,7 +4553,7 @@ export function fill$u8_iter_Map_ops_RangeInclusive_u32_hints_typed_closure1_u8_ rt.iterExtendBytes(v2, items, undefined, true); len = v2.length; } else if (coll === 3) { - len = ((rt.dequeFromVec(rt.iterToArray(items, undefined, 1, true), 1, true) as rt.VecDeque)).n; + len = (rt.dequeFromVec(rt.iterToArray(items, undefined, 1, true), 1, true) as rt.VecDeque).n; } else if (coll === 4) { const q: rt.VecDeque = rt.dequeFromVec(rt.byteVecToVec(rt.byteVecOf(seed, 2)), 1, true) as rt.VecDeque; rt.dequeExtend(q, items, undefined, true); @@ -4622,7 +4622,7 @@ export function fill$u8_iter_Skip_iter_Map_ops_RangeInclusive_u32_hints_typed_cl rt.iterExtendBytes(v2, items, "next"); len = v2.length; } else if (coll === 3) { - len = ((rt.dequeFromVec(rt.iterToArray(items, "next", 1), 1, true) as rt.VecDeque)).n; + len = (rt.dequeFromVec(rt.iterToArray(items, "next", 1), 1, true) as rt.VecDeque).n; } else if (coll === 4) { const q: rt.VecDeque = rt.dequeFromVec(rt.byteVecToVec(rt.byteVecOf(seed, 2)), 1, true) as rt.VecDeque; rt.dequeExtend(q, items, "next"); diff --git a/ts/fixtures/lang/ints/expected/ints.ts b/ts/fixtures/lang/ints/expected/ints.ts index a0d443f2e..f8e6ddc34 100644 --- a/ts/fixtures/lang/ints/expected/ints.ts +++ b/ts/fixtures/lang/ints/expected/ints.ts @@ -3080,7 +3080,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind2 = 4; } - if (!((e.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e.kind === "PosOverflow" as rt.IntErrorKind)) { over = e.kind !== "NegOverflow" as rt.IntErrorKind; } else { over = true; @@ -3129,7 +3129,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind3 = 4; } - if (!((e2.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e2.kind === "PosOverflow" as rt.IntErrorKind)) { over2 = e2.kind !== "NegOverflow" as rt.IntErrorKind; } else { over2 = true; @@ -3178,7 +3178,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind4 = 4; } - if (!((e3.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e3.kind === "PosOverflow" as rt.IntErrorKind)) { over3 = e3.kind !== "NegOverflow" as rt.IntErrorKind; } else { over3 = true; @@ -3200,7 +3200,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } } } - const radix6: rt.u32 = (((first as rt.u32)) | ((((option_unwrapOr$0r2bmpr(rt.byteSliceFirst(rest), 0) as rt.u32)) << 24) >>> 0)) >>> 0; + const radix6: rt.u32 = ((first as rt.u32) | (((option_unwrapOr$0r2bmpr(rt.byteSliceFirst(rest), 0) as rt.u32) << 24) >>> 0)) >>> 0; if (isSomeAnd$09tpccf(rt.byteSliceGet(rest, 1), (b24: rt.u8): boolean => { return (b24 & 1) === 1; })) { @@ -3232,7 +3232,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind5 = 4; } - if (!((e4.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e4.kind === "PosOverflow" as rt.IntErrorKind)) { over4 = e4.kind !== "NegOverflow" as rt.IntErrorKind; } else { over4 = true; @@ -3290,7 +3290,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind6 = 4; } - if (!((e5.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e5.kind === "PosOverflow" as rt.IntErrorKind)) { over5 = e5.kind !== "NegOverflow" as rt.IntErrorKind; } else { over5 = true; @@ -3339,7 +3339,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind7 = 4; } - if (!((e6.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e6.kind === "PosOverflow" as rt.IntErrorKind)) { over6 = e6.kind !== "NegOverflow" as rt.IntErrorKind; } else { over6 = true; @@ -3388,7 +3388,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind8 = 4; } - if (!((e7.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e7.kind === "PosOverflow" as rt.IntErrorKind)) { over7 = e7.kind !== "NegOverflow" as rt.IntErrorKind; } else { over7 = true; @@ -3410,7 +3410,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } } } - const radix13: rt.u32 = (((first2 as rt.u32)) | ((((option_unwrapOr$0r2bmpr(rt.byteSliceFirst(rest2), 0) as rt.u32)) << 24) >>> 0)) >>> 0; + const radix13: rt.u32 = ((first2 as rt.u32) | (((option_unwrapOr$0r2bmpr(rt.byteSliceFirst(rest2), 0) as rt.u32) << 24) >>> 0)) >>> 0; if (isSomeAnd$09tpccf(rt.byteSliceGet(rest2, 1), (b23: rt.u8): boolean => { return (b23 & 1) === 1; })) { @@ -3442,7 +3442,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind9 = 4; } - if (!((e8.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e8.kind === "PosOverflow" as rt.IntErrorKind)) { over8 = e8.kind !== "NegOverflow" as rt.IntErrorKind; } else { over8 = true; @@ -3500,7 +3500,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind10 = 4; } - if (!((e9.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e9.kind === "PosOverflow" as rt.IntErrorKind)) { over9 = e9.kind !== "NegOverflow" as rt.IntErrorKind; } else { over9 = true; @@ -3549,7 +3549,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind11 = 4; } - if (!((e10.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e10.kind === "PosOverflow" as rt.IntErrorKind)) { over10 = e10.kind !== "NegOverflow" as rt.IntErrorKind; } else { over10 = true; @@ -3598,7 +3598,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind12 = 4; } - if (!((e11.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e11.kind === "PosOverflow" as rt.IntErrorKind)) { over11 = e11.kind !== "NegOverflow" as rt.IntErrorKind; } else { over11 = true; @@ -3620,7 +3620,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } } } - const radix20: rt.u32 = (((first3 as rt.u32)) | ((((option_unwrapOr$0r2bmpr(rt.byteSliceFirst(rest3), 0) as rt.u32)) << 24) >>> 0)) >>> 0; + const radix20: rt.u32 = ((first3 as rt.u32) | (((option_unwrapOr$0r2bmpr(rt.byteSliceFirst(rest3), 0) as rt.u32) << 24) >>> 0)) >>> 0; if (isSomeAnd$09tpccf(rt.byteSliceGet(rest3, 1), (b22: rt.u8): boolean => { return (b22 & 1) === 1; })) { @@ -3652,7 +3652,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind13 = 4; } - if (!((e12.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e12.kind === "PosOverflow" as rt.IntErrorKind)) { over12 = e12.kind !== "NegOverflow" as rt.IntErrorKind; } else { over12 = true; @@ -3710,7 +3710,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind14 = 4; } - if (!((e13.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e13.kind === "PosOverflow" as rt.IntErrorKind)) { over13 = e13.kind !== "NegOverflow" as rt.IntErrorKind; } else { over13 = true; @@ -3759,7 +3759,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind15 = 4; } - if (!((e14.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e14.kind === "PosOverflow" as rt.IntErrorKind)) { over14 = e14.kind !== "NegOverflow" as rt.IntErrorKind; } else { over14 = true; @@ -3808,7 +3808,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind16 = 4; } - if (!((e15.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e15.kind === "PosOverflow" as rt.IntErrorKind)) { over15 = e15.kind !== "NegOverflow" as rt.IntErrorKind; } else { over15 = true; @@ -3830,7 +3830,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } } } - const radix27: rt.u32 = (((first4 as rt.u32)) | ((((option_unwrapOr$0r2bmpr(rt.byteSliceFirst(rest4), 0) as rt.u32)) << 24) >>> 0)) >>> 0; + const radix27: rt.u32 = ((first4 as rt.u32) | (((option_unwrapOr$0r2bmpr(rt.byteSliceFirst(rest4), 0) as rt.u32) << 24) >>> 0)) >>> 0; if (isSomeAnd$09tpccf(rt.byteSliceGet(rest4, 1), (b21: rt.u8): boolean => { return (b21 & 1) === 1; })) { @@ -3862,7 +3862,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind17 = 4; } - if (!((e16.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e16.kind === "PosOverflow" as rt.IntErrorKind)) { over16 = e16.kind !== "NegOverflow" as rt.IntErrorKind; } else { over16 = true; @@ -3920,7 +3920,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind18 = 4; } - if (!((e17.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e17.kind === "PosOverflow" as rt.IntErrorKind)) { over17 = e17.kind !== "NegOverflow" as rt.IntErrorKind; } else { over17 = true; @@ -3969,7 +3969,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind19 = 4; } - if (!((e18.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e18.kind === "PosOverflow" as rt.IntErrorKind)) { over18 = e18.kind !== "NegOverflow" as rt.IntErrorKind; } else { over18 = true; @@ -4018,7 +4018,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind20 = 4; } - if (!((e19.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e19.kind === "PosOverflow" as rt.IntErrorKind)) { over19 = e19.kind !== "NegOverflow" as rt.IntErrorKind; } else { over19 = true; @@ -4040,7 +4040,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } } } - const radix34: rt.u32 = (((first5 as rt.u32)) | ((((option_unwrapOr$0r2bmpr(rt.byteSliceFirst(rest5), 0) as rt.u32)) << 24) >>> 0)) >>> 0; + const radix34: rt.u32 = ((first5 as rt.u32) | (((option_unwrapOr$0r2bmpr(rt.byteSliceFirst(rest5), 0) as rt.u32) << 24) >>> 0)) >>> 0; if (isSomeAnd$09tpccf(rt.byteSliceGet(rest5, 1), (b20: rt.u8): boolean => { return (b20 & 1) === 1; })) { @@ -4072,7 +4072,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind21 = 4; } - if (!((e20.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e20.kind === "PosOverflow" as rt.IntErrorKind)) { over20 = e20.kind !== "NegOverflow" as rt.IntErrorKind; } else { over20 = true; @@ -4130,7 +4130,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind22 = 4; } - if (!((e21.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e21.kind === "PosOverflow" as rt.IntErrorKind)) { over21 = e21.kind !== "NegOverflow" as rt.IntErrorKind; } else { over21 = true; @@ -4179,7 +4179,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind23 = 4; } - if (!((e22.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e22.kind === "PosOverflow" as rt.IntErrorKind)) { over22 = e22.kind !== "NegOverflow" as rt.IntErrorKind; } else { over22 = true; @@ -4228,7 +4228,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind24 = 4; } - if (!((e23.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e23.kind === "PosOverflow" as rt.IntErrorKind)) { over23 = e23.kind !== "NegOverflow" as rt.IntErrorKind; } else { over23 = true; @@ -4250,7 +4250,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } } } - const radix41: rt.u32 = (((first6 as rt.u32)) | ((((option_unwrapOr$0r2bmpr(rt.byteSliceFirst(rest6), 0) as rt.u32)) << 24) >>> 0)) >>> 0; + const radix41: rt.u32 = ((first6 as rt.u32) | (((option_unwrapOr$0r2bmpr(rt.byteSliceFirst(rest6), 0) as rt.u32) << 24) >>> 0)) >>> 0; if (isSomeAnd$09tpccf(rt.byteSliceGet(rest6, 1), (b19: rt.u8): boolean => { return (b19 & 1) === 1; })) { @@ -4282,7 +4282,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind25 = 4; } - if (!((e24.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e24.kind === "PosOverflow" as rt.IntErrorKind)) { over24 = e24.kind !== "NegOverflow" as rt.IntErrorKind; } else { over24 = true; @@ -4340,7 +4340,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind26 = 4; } - if (!((e25.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e25.kind === "PosOverflow" as rt.IntErrorKind)) { over25 = e25.kind !== "NegOverflow" as rt.IntErrorKind; } else { over25 = true; @@ -4389,7 +4389,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind27 = 4; } - if (!((e26.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e26.kind === "PosOverflow" as rt.IntErrorKind)) { over26 = e26.kind !== "NegOverflow" as rt.IntErrorKind; } else { over26 = true; @@ -4438,7 +4438,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind28 = 4; } - if (!((e27.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e27.kind === "PosOverflow" as rt.IntErrorKind)) { over27 = e27.kind !== "NegOverflow" as rt.IntErrorKind; } else { over27 = true; @@ -4460,7 +4460,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } } } - const radix48: rt.u32 = (((first7 as rt.u32)) | ((((option_unwrapOr$0r2bmpr(rt.byteSliceFirst(rest7), 0) as rt.u32)) << 24) >>> 0)) >>> 0; + const radix48: rt.u32 = ((first7 as rt.u32) | (((option_unwrapOr$0r2bmpr(rt.byteSliceFirst(rest7), 0) as rt.u32) << 24) >>> 0)) >>> 0; if (isSomeAnd$09tpccf(rt.byteSliceGet(rest7, 1), (b18: rt.u8): boolean => { return (b18 & 1) === 1; })) { @@ -4492,7 +4492,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind29 = 4; } - if (!((e28.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e28.kind === "PosOverflow" as rt.IntErrorKind)) { over28 = e28.kind !== "NegOverflow" as rt.IntErrorKind; } else { over28 = true; @@ -4550,7 +4550,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind30 = 4; } - if (!((e29.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e29.kind === "PosOverflow" as rt.IntErrorKind)) { over29 = e29.kind !== "NegOverflow" as rt.IntErrorKind; } else { over29 = true; @@ -4599,7 +4599,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind31 = 4; } - if (!((e30.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e30.kind === "PosOverflow" as rt.IntErrorKind)) { over30 = e30.kind !== "NegOverflow" as rt.IntErrorKind; } else { over30 = true; @@ -4648,7 +4648,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind32 = 4; } - if (!((e31.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e31.kind === "PosOverflow" as rt.IntErrorKind)) { over31 = e31.kind !== "NegOverflow" as rt.IntErrorKind; } else { over31 = true; @@ -4670,7 +4670,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } } } - const radix55: rt.u32 = (((first8 as rt.u32)) | ((((option_unwrapOr$0r2bmpr(rt.byteSliceFirst(rest8), 0) as rt.u32)) << 24) >>> 0)) >>> 0; + const radix55: rt.u32 = ((first8 as rt.u32) | (((option_unwrapOr$0r2bmpr(rt.byteSliceFirst(rest8), 0) as rt.u32) << 24) >>> 0)) >>> 0; if (isSomeAnd$09tpccf(rt.byteSliceGet(rest8, 1), (b17: rt.u8): boolean => { return (b17 & 1) === 1; })) { @@ -4702,7 +4702,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind33 = 4; } - if (!((e32.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e32.kind === "PosOverflow" as rt.IntErrorKind)) { over32 = e32.kind !== "NegOverflow" as rt.IntErrorKind; } else { over32 = true; @@ -4760,7 +4760,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind34 = 4; } - if (!((e33.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e33.kind === "PosOverflow" as rt.IntErrorKind)) { over33 = e33.kind !== "NegOverflow" as rt.IntErrorKind; } else { over33 = true; @@ -4809,7 +4809,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind35 = 4; } - if (!((e34.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e34.kind === "PosOverflow" as rt.IntErrorKind)) { over34 = e34.kind !== "NegOverflow" as rt.IntErrorKind; } else { over34 = true; @@ -4858,7 +4858,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind36 = 4; } - if (!((e35.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e35.kind === "PosOverflow" as rt.IntErrorKind)) { over35 = e35.kind !== "NegOverflow" as rt.IntErrorKind; } else { over35 = true; @@ -4880,7 +4880,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } } } - const radix62: rt.u32 = (((first9 as rt.u32)) | ((((option_unwrapOr$0r2bmpr(rt.byteSliceFirst(rest9), 0) as rt.u32)) << 24) >>> 0)) >>> 0; + const radix62: rt.u32 = ((first9 as rt.u32) | (((option_unwrapOr$0r2bmpr(rt.byteSliceFirst(rest9), 0) as rt.u32) << 24) >>> 0)) >>> 0; if (isSomeAnd$09tpccf(rt.byteSliceGet(rest9, 1), (b16: rt.u8): boolean => { return (b16 & 1) === 1; })) { @@ -4912,7 +4912,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind37 = 4; } - if (!((e36.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e36.kind === "PosOverflow" as rt.IntErrorKind)) { over36 = e36.kind !== "NegOverflow" as rt.IntErrorKind; } else { over36 = true; @@ -4970,7 +4970,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind38 = 4; } - if (!((e37.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e37.kind === "PosOverflow" as rt.IntErrorKind)) { over37 = e37.kind !== "NegOverflow" as rt.IntErrorKind; } else { over37 = true; @@ -5019,7 +5019,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind39 = 4; } - if (!((e38.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e38.kind === "PosOverflow" as rt.IntErrorKind)) { over38 = e38.kind !== "NegOverflow" as rt.IntErrorKind; } else { over38 = true; @@ -5068,7 +5068,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind40 = 4; } - if (!((e39.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e39.kind === "PosOverflow" as rt.IntErrorKind)) { over39 = e39.kind !== "NegOverflow" as rt.IntErrorKind; } else { over39 = true; @@ -5090,7 +5090,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } } } - const radix69: rt.u32 = (((first10 as rt.u32)) | ((((option_unwrapOr$0r2bmpr(rt.byteSliceFirst(rest10), 0) as rt.u32)) << 24) >>> 0)) >>> 0; + const radix69: rt.u32 = ((first10 as rt.u32) | (((option_unwrapOr$0r2bmpr(rt.byteSliceFirst(rest10), 0) as rt.u32) << 24) >>> 0)) >>> 0; if (isSomeAnd$09tpccf(rt.byteSliceGet(rest10, 1), (b15: rt.u8): boolean => { return (b15 & 1) === 1; })) { @@ -5122,7 +5122,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind41 = 4; } - if (!((e40.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e40.kind === "PosOverflow" as rt.IntErrorKind)) { over40 = e40.kind !== "NegOverflow" as rt.IntErrorKind; } else { over40 = true; @@ -5180,7 +5180,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind42 = 4; } - if (!((e41.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e41.kind === "PosOverflow" as rt.IntErrorKind)) { over41 = e41.kind !== "NegOverflow" as rt.IntErrorKind; } else { over41 = true; @@ -5229,7 +5229,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind43 = 4; } - if (!((e42.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e42.kind === "PosOverflow" as rt.IntErrorKind)) { over42 = e42.kind !== "NegOverflow" as rt.IntErrorKind; } else { over42 = true; @@ -5278,7 +5278,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind44 = 4; } - if (!((e43.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e43.kind === "PosOverflow" as rt.IntErrorKind)) { over43 = e43.kind !== "NegOverflow" as rt.IntErrorKind; } else { over43 = true; @@ -5300,7 +5300,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } } } - const radix76: rt.u32 = (((first11 as rt.u32)) | ((((option_unwrapOr$0r2bmpr(rt.byteSliceFirst(rest11), 0) as rt.u32)) << 24) >>> 0)) >>> 0; + const radix76: rt.u32 = ((first11 as rt.u32) | (((option_unwrapOr$0r2bmpr(rt.byteSliceFirst(rest11), 0) as rt.u32) << 24) >>> 0)) >>> 0; if (isSomeAnd$09tpccf(rt.byteSliceGet(rest11, 1), (b14: rt.u8): boolean => { return (b14 & 1) === 1; })) { @@ -5332,7 +5332,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind45 = 4; } - if (!((e44.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e44.kind === "PosOverflow" as rt.IntErrorKind)) { over44 = e44.kind !== "NegOverflow" as rt.IntErrorKind; } else { over44 = true; @@ -5390,7 +5390,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind46 = 4; } - if (!((e45.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e45.kind === "PosOverflow" as rt.IntErrorKind)) { over45 = e45.kind !== "NegOverflow" as rt.IntErrorKind; } else { over45 = true; @@ -5439,7 +5439,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind47 = 4; } - if (!((e46.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e46.kind === "PosOverflow" as rt.IntErrorKind)) { over46 = e46.kind !== "NegOverflow" as rt.IntErrorKind; } else { over46 = true; @@ -5488,7 +5488,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind48 = 4; } - if (!((e47.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e47.kind === "PosOverflow" as rt.IntErrorKind)) { over47 = e47.kind !== "NegOverflow" as rt.IntErrorKind; } else { over47 = true; @@ -5510,7 +5510,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } } } - const radix83: rt.u32 = (((first12 as rt.u32)) | ((((option_unwrapOr$0r2bmpr(rt.byteSliceFirst(rest12), 0) as rt.u32)) << 24) >>> 0)) >>> 0; + const radix83: rt.u32 = ((first12 as rt.u32) | (((option_unwrapOr$0r2bmpr(rt.byteSliceFirst(rest12), 0) as rt.u32) << 24) >>> 0)) >>> 0; if (isSomeAnd$09tpccf(rt.byteSliceGet(rest12, 1), (b13: rt.u8): boolean => { return (b13 & 1) === 1; })) { @@ -5542,7 +5542,7 @@ export function parses(kind: rt.u8, dataData: Uint8Array, dataStart: number, dat } else { kind49 = 4; } - if (!((e48.kind === "PosOverflow" as rt.IntErrorKind))) { + if (!(e48.kind === "PosOverflow" as rt.IntErrorKind)) { over48 = e48.kind !== "NegOverflow" as rt.IntErrorKind; } else { over48 = true; @@ -5591,57 +5591,57 @@ export function widenings(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): voi rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.u8ToBeBytes((named as { ok: true; value: rt.u8 }).value))); const into: rt.Result = rt.Ok(v); const w2: rt.u8 = (into as { ok: true; value: rt.u8 }).value; - rt.byteVecPush(out, ((result_eq$12e5exx(into, named) ? 1 : 0)) | ((((w2 === v ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$12e5exx(into, named) ? 1 : 0) | (((w2 === v ? 1 : 0) << 1) & 0xff)); const named2: rt.Result = rt.Ok(v as rt.u16); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.u16ToBeBytes((named2 as { ok: true; value: rt.u16 }).value))); const into2: rt.Result = rt.Ok(v as rt.u16); const w4: rt.u16 = (into2 as { ok: true; value: rt.u16 }).value; - rt.byteVecPush(out, ((result_eq$08241oi(into2, named2) ? 1 : 0)) | ((((w4 === v as rt.u16 ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$08241oi(into2, named2) ? 1 : 0) | (((w4 === v as rt.u16 ? 1 : 0) << 1) & 0xff)); const named3: rt.Result = rt.Ok(v as rt.u32); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.u32ToBeBytes((named3 as { ok: true; value: rt.u32 }).value))); const into3: rt.Result = rt.Ok(v as rt.u32); const w6: rt.u32 = (into3 as { ok: true; value: rt.u32 }).value; - rt.byteVecPush(out, ((result_eq$0nbftnc(into3, named3) ? 1 : 0)) | ((((w6 === v as rt.u32 ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$0nbftnc(into3, named3) ? 1 : 0) | (((w6 === v as rt.u32 ? 1 : 0) << 1) & 0xff)); const named4: rt.Result = rt.Ok(v as rt.u64); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.u64ToBeBytes((named4 as { ok: true; value: rt.u64 }).value))); const into4: rt.Result = rt.Ok(v as rt.u64); const w8: rt.u64 = (into4 as { ok: true; value: rt.u64 }).value; - rt.byteVecPush(out, ((result_eq$1gq81ib(into4, named4) ? 1 : 0)) | ((((rt.u64Eq(w8, v as rt.u64) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$1gq81ib(into4, named4) ? 1 : 0) | (((rt.u64Eq(w8, v as rt.u64) ? 1 : 0) << 1) & 0xff)); const named5: rt.Result = rt.Ok(v as rt.u128); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.u128ToBeBytes((named5 as { ok: true; value: rt.u128 }).value))); const into5: rt.Result = rt.Ok(v as rt.u128); const w10: rt.u128 = (into5 as { ok: true; value: rt.u128 }).value; - rt.byteVecPush(out, ((result_eq$06vyx9e(into5, named5) ? 1 : 0)) | ((((rt.u128Eq(w10, v as rt.u128) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$06vyx9e(into5, named5) ? 1 : 0) | (((rt.u128Eq(w10, v as rt.u128) ? 1 : 0) << 1) & 0xff)); const named6: rt.Result = rt.Ok(v as rt.usize); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.usizeToBeBytes((named6 as { ok: true; value: rt.usize }).value))); const into6: rt.Result = rt.Ok(v as rt.usize); const w12: rt.usize = (into6 as { ok: true; value: rt.usize }).value; - rt.byteVecPush(out, ((result_eq$1xhgva4(into6, named6) ? 1 : 0)) | ((((w12 === v as rt.usize ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$1xhgva4(into6, named6) ? 1 : 0) | (((w12 === v as rt.usize ? 1 : 0) << 1) & 0xff)); const named7: rt.Result = rt.Ok(v as rt.i16); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.i16ToBeBytes((named7 as { ok: true; value: rt.i16 }).value))); const into7: rt.Result = rt.Ok(v as rt.i16); const w14: rt.i16 = (into7 as { ok: true; value: rt.i16 }).value; - rt.byteVecPush(out, ((result_eq$1mi4cle(into7, named7) ? 1 : 0)) | ((((w14 === v as rt.i16 ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$1mi4cle(into7, named7) ? 1 : 0) | (((w14 === v as rt.i16 ? 1 : 0) << 1) & 0xff)); const named8: rt.Result = rt.Ok(v as rt.i32); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.i32ToBeBytes((named8 as { ok: true; value: rt.i32 }).value))); const into8: rt.Result = rt.Ok(v as rt.i32); const w16: rt.i32 = (into8 as { ok: true; value: rt.i32 }).value; - rt.byteVecPush(out, ((result_eq$1ukayff(into8, named8) ? 1 : 0)) | ((((w16 === v as rt.i32 ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$1ukayff(into8, named8) ? 1 : 0) | (((w16 === v as rt.i32 ? 1 : 0) << 1) & 0xff)); const named9: rt.Result = rt.Ok(v as rt.i64); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.i64ToBeBytes((named9 as { ok: true; value: rt.i64 }).value))); const into9: rt.Result = rt.Ok(v as rt.i64); const w18: rt.i64 = (into9 as { ok: true; value: rt.i64 }).value; - rt.byteVecPush(out, ((result_eq$1hy1is1(into9, named9) ? 1 : 0)) | ((((rt.i64Eq(w18, v as rt.i64) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$1hy1is1(into9, named9) ? 1 : 0) | (((rt.i64Eq(w18, v as rt.i64) ? 1 : 0) << 1) & 0xff)); const named10: rt.Result = rt.Ok(v as rt.i128); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.i128ToBeBytes((named10 as { ok: true; value: rt.i128 }).value))); const into10: rt.Result = rt.Ok(v as rt.i128); const w20: rt.i128 = (into10 as { ok: true; value: rt.i128 }).value; - rt.byteVecPush(out, ((result_eq$0pee78b(into10, named10) ? 1 : 0)) | ((((rt.i128Eq(w20, v as rt.i128) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$0pee78b(into10, named10) ? 1 : 0) | (((rt.i128Eq(w20, v as rt.i128) ? 1 : 0) << 1) & 0xff)); const named11: rt.Result = rt.Ok(v as rt.isize); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.isizeToBeBytes((named11 as { ok: true; value: rt.isize }).value))); const into11: rt.Result = rt.Ok(v as rt.isize); const w22: rt.isize = (into11 as { ok: true; value: rt.isize }).value; - rt.byteVecPush(out, ((result_eq$0w2dfat(into11, named11) ? 1 : 0)) | ((((w22 === v as rt.isize ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$0w2dfat(into11, named11) ? 1 : 0) | (((w22 === v as rt.isize ? 1 : 0) << 1) & 0xff)); } } else if (_4 === 1) { const buf2: Uint8Array = rt.bytes(2); @@ -5658,42 +5658,42 @@ export function widenings(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): voi rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.u16ToBeBytes((named12 as { ok: true; value: rt.u16 }).value))); const into12: rt.Result = rt.Ok(v2); const w24: rt.u16 = (into12 as { ok: true; value: rt.u16 }).value; - rt.byteVecPush(out, ((result_eq$08241oi(into12, named12) ? 1 : 0)) | ((((w24 === v2 ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$08241oi(into12, named12) ? 1 : 0) | (((w24 === v2 ? 1 : 0) << 1) & 0xff)); const named13: rt.Result = rt.Ok(v2 as rt.u32); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.u32ToBeBytes((named13 as { ok: true; value: rt.u32 }).value))); const into13: rt.Result = rt.Ok(v2 as rt.u32); const w26: rt.u32 = (into13 as { ok: true; value: rt.u32 }).value; - rt.byteVecPush(out, ((result_eq$0nbftnc(into13, named13) ? 1 : 0)) | ((((w26 === v2 as rt.u32 ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$0nbftnc(into13, named13) ? 1 : 0) | (((w26 === v2 as rt.u32 ? 1 : 0) << 1) & 0xff)); const named14: rt.Result = rt.Ok(v2 as rt.u64); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.u64ToBeBytes((named14 as { ok: true; value: rt.u64 }).value))); const into14: rt.Result = rt.Ok(v2 as rt.u64); const w28: rt.u64 = (into14 as { ok: true; value: rt.u64 }).value; - rt.byteVecPush(out, ((result_eq$1gq81ib(into14, named14) ? 1 : 0)) | ((((rt.u64Eq(w28, v2 as rt.u64) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$1gq81ib(into14, named14) ? 1 : 0) | (((rt.u64Eq(w28, v2 as rt.u64) ? 1 : 0) << 1) & 0xff)); const named15: rt.Result = rt.Ok(v2 as rt.u128); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.u128ToBeBytes((named15 as { ok: true; value: rt.u128 }).value))); const into15: rt.Result = rt.Ok(v2 as rt.u128); const w30: rt.u128 = (into15 as { ok: true; value: rt.u128 }).value; - rt.byteVecPush(out, ((result_eq$06vyx9e(into15, named15) ? 1 : 0)) | ((((rt.u128Eq(w30, v2 as rt.u128) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$06vyx9e(into15, named15) ? 1 : 0) | (((rt.u128Eq(w30, v2 as rt.u128) ? 1 : 0) << 1) & 0xff)); const named16: rt.Result = rt.Ok(v2 as rt.usize); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.usizeToBeBytes((named16 as { ok: true; value: rt.usize }).value))); const into16: rt.Result = rt.Ok(v2 as rt.usize); const w32: rt.usize = (into16 as { ok: true; value: rt.usize }).value; - rt.byteVecPush(out, ((result_eq$1xhgva4(into16, named16) ? 1 : 0)) | ((((w32 === v2 as rt.usize ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$1xhgva4(into16, named16) ? 1 : 0) | (((w32 === v2 as rt.usize ? 1 : 0) << 1) & 0xff)); const named17: rt.Result = rt.Ok(v2 as rt.i32); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.i32ToBeBytes((named17 as { ok: true; value: rt.i32 }).value))); const into17: rt.Result = rt.Ok(v2 as rt.i32); const w34: rt.i32 = (into17 as { ok: true; value: rt.i32 }).value; - rt.byteVecPush(out, ((result_eq$1ukayff(into17, named17) ? 1 : 0)) | ((((w34 === v2 as rt.i32 ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$1ukayff(into17, named17) ? 1 : 0) | (((w34 === v2 as rt.i32 ? 1 : 0) << 1) & 0xff)); const named18: rt.Result = rt.Ok(v2 as rt.i64); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.i64ToBeBytes((named18 as { ok: true; value: rt.i64 }).value))); const into18: rt.Result = rt.Ok(v2 as rt.i64); const w36: rt.i64 = (into18 as { ok: true; value: rt.i64 }).value; - rt.byteVecPush(out, ((result_eq$1hy1is1(into18, named18) ? 1 : 0)) | ((((rt.i64Eq(w36, v2 as rt.i64) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$1hy1is1(into18, named18) ? 1 : 0) | (((rt.i64Eq(w36, v2 as rt.i64) ? 1 : 0) << 1) & 0xff)); const named19: rt.Result = rt.Ok(v2 as rt.i128); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.i128ToBeBytes((named19 as { ok: true; value: rt.i128 }).value))); const into19: rt.Result = rt.Ok(v2 as rt.i128); const w38: rt.i128 = (into19 as { ok: true; value: rt.i128 }).value; - rt.byteVecPush(out, ((result_eq$0pee78b(into19, named19) ? 1 : 0)) | ((((rt.i128Eq(w38, v2 as rt.i128) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$0pee78b(into19, named19) ? 1 : 0) | (((rt.i128Eq(w38, v2 as rt.i128) ? 1 : 0) << 1) & 0xff)); } } else if (_4 === 2) { const buf3: Uint8Array = rt.bytes(4); @@ -5710,27 +5710,27 @@ export function widenings(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): voi rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.u32ToBeBytes((named20 as { ok: true; value: rt.u32 }).value))); const into20: rt.Result = rt.Ok(v3); const w40: rt.u32 = (into20 as { ok: true; value: rt.u32 }).value; - rt.byteVecPush(out, ((result_eq$0nbftnc(into20, named20) ? 1 : 0)) | ((((w40 === v3 ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$0nbftnc(into20, named20) ? 1 : 0) | (((w40 === v3 ? 1 : 0) << 1) & 0xff)); const named21: rt.Result = rt.Ok(v3 as rt.u64); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.u64ToBeBytes((named21 as { ok: true; value: rt.u64 }).value))); const into21: rt.Result = rt.Ok(v3 as rt.u64); const w42: rt.u64 = (into21 as { ok: true; value: rt.u64 }).value; - rt.byteVecPush(out, ((result_eq$1gq81ib(into21, named21) ? 1 : 0)) | ((((rt.u64Eq(w42, v3 as rt.u64) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$1gq81ib(into21, named21) ? 1 : 0) | (((rt.u64Eq(w42, v3 as rt.u64) ? 1 : 0) << 1) & 0xff)); const named22: rt.Result = rt.Ok(v3 as rt.u128); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.u128ToBeBytes((named22 as { ok: true; value: rt.u128 }).value))); const into22: rt.Result = rt.Ok(v3 as rt.u128); const w44: rt.u128 = (into22 as { ok: true; value: rt.u128 }).value; - rt.byteVecPush(out, ((result_eq$06vyx9e(into22, named22) ? 1 : 0)) | ((((rt.u128Eq(w44, v3 as rt.u128) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$06vyx9e(into22, named22) ? 1 : 0) | (((rt.u128Eq(w44, v3 as rt.u128) ? 1 : 0) << 1) & 0xff)); const named23: rt.Result = rt.Ok(v3 as rt.i64); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.i64ToBeBytes((named23 as { ok: true; value: rt.i64 }).value))); const into23: rt.Result = rt.Ok(v3 as rt.i64); const w46: rt.i64 = (into23 as { ok: true; value: rt.i64 }).value; - rt.byteVecPush(out, ((result_eq$1hy1is1(into23, named23) ? 1 : 0)) | ((((rt.i64Eq(w46, v3 as rt.i64) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$1hy1is1(into23, named23) ? 1 : 0) | (((rt.i64Eq(w46, v3 as rt.i64) ? 1 : 0) << 1) & 0xff)); const named24: rt.Result = rt.Ok(v3 as rt.i128); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.i128ToBeBytes((named24 as { ok: true; value: rt.i128 }).value))); const into24: rt.Result = rt.Ok(v3 as rt.i128); const w48: rt.i128 = (into24 as { ok: true; value: rt.i128 }).value; - rt.byteVecPush(out, ((result_eq$0pee78b(into24, named24) ? 1 : 0)) | ((((rt.i128Eq(w48, v3 as rt.i128) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$0pee78b(into24, named24) ? 1 : 0) | (((rt.i128Eq(w48, v3 as rt.i128) ? 1 : 0) << 1) & 0xff)); } } else if (_4 === 3) { const buf4: Uint8Array = rt.bytes(8); @@ -5747,17 +5747,17 @@ export function widenings(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): voi rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.u64ToBeBytes((named25 as { ok: true; value: rt.u64 }).value))); const into25: rt.Result = rt.Ok(v4); const w50: rt.u64 = (into25 as { ok: true; value: rt.u64 }).value; - rt.byteVecPush(out, ((result_eq$1gq81ib(into25, named25) ? 1 : 0)) | ((((rt.u64Eq(w50, v4) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$1gq81ib(into25, named25) ? 1 : 0) | (((rt.u64Eq(w50, v4) ? 1 : 0) << 1) & 0xff)); const named26: rt.Result = rt.Ok(rt.u128Cast(v4)); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.u128ToBeBytes((named26 as { ok: true; value: rt.u128 }).value))); const into26: rt.Result = rt.Ok(rt.u128Cast(v4)); const w52: rt.u128 = (into26 as { ok: true; value: rt.u128 }).value; - rt.byteVecPush(out, ((result_eq$06vyx9e(into26, named26) ? 1 : 0)) | ((((rt.u128Eq(w52, rt.u128Cast(v4)) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$06vyx9e(into26, named26) ? 1 : 0) | (((rt.u128Eq(w52, rt.u128Cast(v4)) ? 1 : 0) << 1) & 0xff)); const named27: rt.Result = rt.Ok(rt.i128Cast(v4)); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.i128ToBeBytes((named27 as { ok: true; value: rt.i128 }).value))); const into27: rt.Result = rt.Ok(rt.i128Cast(v4)); const w54: rt.i128 = (into27 as { ok: true; value: rt.i128 }).value; - rt.byteVecPush(out, ((result_eq$0pee78b(into27, named27) ? 1 : 0)) | ((((rt.i128Eq(w54, rt.i128Cast(v4)) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$0pee78b(into27, named27) ? 1 : 0) | (((rt.i128Eq(w54, rt.i128Cast(v4)) ? 1 : 0) << 1) & 0xff)); } } else if (_4 === 4) { const buf5: Uint8Array = rt.bytes(16); @@ -5774,7 +5774,7 @@ export function widenings(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): voi rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.u128ToBeBytes((named28 as { ok: true; value: rt.u128 }).value))); const into28: rt.Result = rt.Ok(v5); const w56: rt.u128 = (into28 as { ok: true; value: rt.u128 }).value; - rt.byteVecPush(out, ((result_eq$06vyx9e(into28, named28) ? 1 : 0)) | ((((rt.u128Eq(w56, v5) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$06vyx9e(into28, named28) ? 1 : 0) | (((rt.u128Eq(w56, v5) ? 1 : 0) << 1) & 0xff)); } } else if (_4 === 5) { const buf6: Uint8Array = rt.bytes(4); @@ -5791,7 +5791,7 @@ export function widenings(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): voi rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.usizeToBeBytes((named29 as { ok: true; value: rt.usize }).value))); const into29: rt.Result = rt.Ok(v6); const w58: rt.usize = (into29 as { ok: true; value: rt.usize }).value; - rt.byteVecPush(out, ((result_eq$1xhgva4(into29, named29) ? 1 : 0)) | ((((w58 === v6 ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$1xhgva4(into29, named29) ? 1 : 0) | (((w58 === v6 ? 1 : 0) << 1) & 0xff)); } } else if (_4 === 6) { const buf7: Uint8Array = Uint8Array.of(0); @@ -5808,32 +5808,32 @@ export function widenings(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): voi rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.i8ToBeBytes((named30 as { ok: true; value: rt.i8 }).value))); const into30: rt.Result = rt.Ok(v7); const w60: rt.i8 = (into30 as { ok: true; value: rt.i8 }).value; - rt.byteVecPush(out, ((result_eq$1hd8lo9(into30, named30) ? 1 : 0)) | ((((w60 === v7 ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$1hd8lo9(into30, named30) ? 1 : 0) | (((w60 === v7 ? 1 : 0) << 1) & 0xff)); const named31: rt.Result = rt.Ok(v7 as rt.i16); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.i16ToBeBytes((named31 as { ok: true; value: rt.i16 }).value))); const into31: rt.Result = rt.Ok(v7 as rt.i16); const w62: rt.i16 = (into31 as { ok: true; value: rt.i16 }).value; - rt.byteVecPush(out, ((result_eq$1mi4cle(into31, named31) ? 1 : 0)) | ((((w62 === v7 as rt.i16 ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$1mi4cle(into31, named31) ? 1 : 0) | (((w62 === v7 as rt.i16 ? 1 : 0) << 1) & 0xff)); const named32: rt.Result = rt.Ok(v7 as rt.i32); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.i32ToBeBytes((named32 as { ok: true; value: rt.i32 }).value))); const into32: rt.Result = rt.Ok(v7 as rt.i32); const w64: rt.i32 = (into32 as { ok: true; value: rt.i32 }).value; - rt.byteVecPush(out, ((result_eq$1ukayff(into32, named32) ? 1 : 0)) | ((((w64 === v7 as rt.i32 ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$1ukayff(into32, named32) ? 1 : 0) | (((w64 === v7 as rt.i32 ? 1 : 0) << 1) & 0xff)); const named33: rt.Result = rt.Ok(v7 as rt.i64); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.i64ToBeBytes((named33 as { ok: true; value: rt.i64 }).value))); const into33: rt.Result = rt.Ok(v7 as rt.i64); const w66: rt.i64 = (into33 as { ok: true; value: rt.i64 }).value; - rt.byteVecPush(out, ((result_eq$1hy1is1(into33, named33) ? 1 : 0)) | ((((rt.i64Eq(w66, v7 as rt.i64) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$1hy1is1(into33, named33) ? 1 : 0) | (((rt.i64Eq(w66, v7 as rt.i64) ? 1 : 0) << 1) & 0xff)); const named34: rt.Result = rt.Ok(v7 as rt.i128); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.i128ToBeBytes((named34 as { ok: true; value: rt.i128 }).value))); const into34: rt.Result = rt.Ok(v7 as rt.i128); const w68: rt.i128 = (into34 as { ok: true; value: rt.i128 }).value; - rt.byteVecPush(out, ((result_eq$0pee78b(into34, named34) ? 1 : 0)) | ((((rt.i128Eq(w68, v7 as rt.i128) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$0pee78b(into34, named34) ? 1 : 0) | (((rt.i128Eq(w68, v7 as rt.i128) ? 1 : 0) << 1) & 0xff)); const named35: rt.Result = rt.Ok(v7 as rt.isize); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.isizeToBeBytes((named35 as { ok: true; value: rt.isize }).value))); const into35: rt.Result = rt.Ok(v7 as rt.isize); const w70: rt.isize = (into35 as { ok: true; value: rt.isize }).value; - rt.byteVecPush(out, ((result_eq$0w2dfat(into35, named35) ? 1 : 0)) | ((((w70 === v7 as rt.isize ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$0w2dfat(into35, named35) ? 1 : 0) | (((w70 === v7 as rt.isize ? 1 : 0) << 1) & 0xff)); } } else if (_4 === 7) { const buf8: Uint8Array = rt.bytes(2); @@ -5850,27 +5850,27 @@ export function widenings(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): voi rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.i16ToBeBytes((named36 as { ok: true; value: rt.i16 }).value))); const into36: rt.Result = rt.Ok(v8); const w72: rt.i16 = (into36 as { ok: true; value: rt.i16 }).value; - rt.byteVecPush(out, ((result_eq$1mi4cle(into36, named36) ? 1 : 0)) | ((((w72 === v8 ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$1mi4cle(into36, named36) ? 1 : 0) | (((w72 === v8 ? 1 : 0) << 1) & 0xff)); const named37: rt.Result = rt.Ok(v8 as rt.i32); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.i32ToBeBytes((named37 as { ok: true; value: rt.i32 }).value))); const into37: rt.Result = rt.Ok(v8 as rt.i32); const w74: rt.i32 = (into37 as { ok: true; value: rt.i32 }).value; - rt.byteVecPush(out, ((result_eq$1ukayff(into37, named37) ? 1 : 0)) | ((((w74 === v8 as rt.i32 ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$1ukayff(into37, named37) ? 1 : 0) | (((w74 === v8 as rt.i32 ? 1 : 0) << 1) & 0xff)); const named38: rt.Result = rt.Ok(v8 as rt.i64); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.i64ToBeBytes((named38 as { ok: true; value: rt.i64 }).value))); const into38: rt.Result = rt.Ok(v8 as rt.i64); const w76: rt.i64 = (into38 as { ok: true; value: rt.i64 }).value; - rt.byteVecPush(out, ((result_eq$1hy1is1(into38, named38) ? 1 : 0)) | ((((rt.i64Eq(w76, v8 as rt.i64) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$1hy1is1(into38, named38) ? 1 : 0) | (((rt.i64Eq(w76, v8 as rt.i64) ? 1 : 0) << 1) & 0xff)); const named39: rt.Result = rt.Ok(v8 as rt.i128); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.i128ToBeBytes((named39 as { ok: true; value: rt.i128 }).value))); const into39: rt.Result = rt.Ok(v8 as rt.i128); const w78: rt.i128 = (into39 as { ok: true; value: rt.i128 }).value; - rt.byteVecPush(out, ((result_eq$0pee78b(into39, named39) ? 1 : 0)) | ((((rt.i128Eq(w78, v8 as rt.i128) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$0pee78b(into39, named39) ? 1 : 0) | (((rt.i128Eq(w78, v8 as rt.i128) ? 1 : 0) << 1) & 0xff)); const named40: rt.Result = rt.Ok(v8 as rt.isize); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.isizeToBeBytes((named40 as { ok: true; value: rt.isize }).value))); const into40: rt.Result = rt.Ok(v8 as rt.isize); const w80: rt.isize = (into40 as { ok: true; value: rt.isize }).value; - rt.byteVecPush(out, ((result_eq$0w2dfat(into40, named40) ? 1 : 0)) | ((((w80 === v8 as rt.isize ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$0w2dfat(into40, named40) ? 1 : 0) | (((w80 === v8 as rt.isize ? 1 : 0) << 1) & 0xff)); } } else if (_4 === 8) { const buf9: Uint8Array = rt.bytes(4); @@ -5887,17 +5887,17 @@ export function widenings(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): voi rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.i32ToBeBytes((named41 as { ok: true; value: rt.i32 }).value))); const into41: rt.Result = rt.Ok(v9); const w82: rt.i32 = (into41 as { ok: true; value: rt.i32 }).value; - rt.byteVecPush(out, ((result_eq$1ukayff(into41, named41) ? 1 : 0)) | ((((w82 === v9 ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$1ukayff(into41, named41) ? 1 : 0) | (((w82 === v9 ? 1 : 0) << 1) & 0xff)); const named42: rt.Result = rt.Ok(v9 as rt.i64); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.i64ToBeBytes((named42 as { ok: true; value: rt.i64 }).value))); const into42: rt.Result = rt.Ok(v9 as rt.i64); const w84: rt.i64 = (into42 as { ok: true; value: rt.i64 }).value; - rt.byteVecPush(out, ((result_eq$1hy1is1(into42, named42) ? 1 : 0)) | ((((rt.i64Eq(w84, v9 as rt.i64) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$1hy1is1(into42, named42) ? 1 : 0) | (((rt.i64Eq(w84, v9 as rt.i64) ? 1 : 0) << 1) & 0xff)); const named43: rt.Result = rt.Ok(v9 as rt.i128); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.i128ToBeBytes((named43 as { ok: true; value: rt.i128 }).value))); const into43: rt.Result = rt.Ok(v9 as rt.i128); const w86: rt.i128 = (into43 as { ok: true; value: rt.i128 }).value; - rt.byteVecPush(out, ((result_eq$0pee78b(into43, named43) ? 1 : 0)) | ((((rt.i128Eq(w86, v9 as rt.i128) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$0pee78b(into43, named43) ? 1 : 0) | (((rt.i128Eq(w86, v9 as rt.i128) ? 1 : 0) << 1) & 0xff)); } } else if (_4 === 9) { const buf10: Uint8Array = rt.bytes(8); @@ -5914,12 +5914,12 @@ export function widenings(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): voi rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.i64ToBeBytes((named44 as { ok: true; value: rt.i64 }).value))); const into44: rt.Result = rt.Ok(v10); const w88: rt.i64 = (into44 as { ok: true; value: rt.i64 }).value; - rt.byteVecPush(out, ((result_eq$1hy1is1(into44, named44) ? 1 : 0)) | ((((rt.i64Eq(w88, v10) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$1hy1is1(into44, named44) ? 1 : 0) | (((rt.i64Eq(w88, v10) ? 1 : 0) << 1) & 0xff)); const named45: rt.Result = rt.Ok(rt.i128Cast(v10)); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.i128ToBeBytes((named45 as { ok: true; value: rt.i128 }).value))); const into45: rt.Result = rt.Ok(rt.i128Cast(v10)); const w90: rt.i128 = (into45 as { ok: true; value: rt.i128 }).value; - rt.byteVecPush(out, ((result_eq$0pee78b(into45, named45) ? 1 : 0)) | ((((rt.i128Eq(w90, rt.i128Cast(v10)) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$0pee78b(into45, named45) ? 1 : 0) | (((rt.i128Eq(w90, rt.i128Cast(v10)) ? 1 : 0) << 1) & 0xff)); } } else if (_4 === 10) { const buf11: Uint8Array = rt.bytes(16); @@ -5936,7 +5936,7 @@ export function widenings(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): voi rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.i128ToBeBytes((named46 as { ok: true; value: rt.i128 }).value))); const into46: rt.Result = rt.Ok(v11); const w92: rt.i128 = (into46 as { ok: true; value: rt.i128 }).value; - rt.byteVecPush(out, ((result_eq$0pee78b(into46, named46) ? 1 : 0)) | ((((rt.i128Eq(w92, v11) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$0pee78b(into46, named46) ? 1 : 0) | (((rt.i128Eq(w92, v11) ? 1 : 0) << 1) & 0xff)); } } else if (_4 === 11) { const buf12: Uint8Array = rt.bytes(4); @@ -5953,7 +5953,7 @@ export function widenings(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): voi rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.isizeToBeBytes((named47 as { ok: true; value: rt.isize }).value))); const into47: rt.Result = rt.Ok(v12); const w94: rt.isize = (into47 as { ok: true; value: rt.isize }).value; - rt.byteVecPush(out, ((result_eq$0w2dfat(into47, named47) ? 1 : 0)) | ((((w94 === v12 ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (result_eq$0w2dfat(into47, named47) ? 1 : 0) | (((w94 === v12 ? 1 : 0) << 1) & 0xff)); } } else { const buf13: Uint8Array = Uint8Array.of(0); diff --git a/ts/fixtures/lang/iters/expected/iters.ts b/ts/fixtures/lang/iters/expected/iters.ts index 0cc6e4d37..ca88c45cf 100644 --- a/ts/fixtures/lang/iters/expected/iters.ts +++ b/ts/fixtures/lang/iters/expected/iters.ts @@ -132,7 +132,7 @@ export function adaptors(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): void return Uint8Array.of(b3, ~b3 & 0xff); }), undefined, 2, true); const copies: Uint8Array[] = rt.iterToArray(rt.iterCopied(rt.iterLend(rt.iterSlice(pairs), rt.byteSliceFrom), rt.byteSliceToArray), undefined, 2, true); - if (!((copies.length === 0))) { + if (!(copies.length === 0)) { const _174: rt.ByteSlice = rt.byteSliceFrom(copies[rt.idx(copies, 0)]); _174.data[_174.start] = 85; } @@ -422,7 +422,7 @@ export function peekedOthers(data: rt.ByteSlice, out: rt.ByteVec): void { }); }; const _159: (a0: rt.u8) => rt.u16[] = (b2: rt.u8): rt.u16[] => { - return rt.vecFromElem((((rt.u8Rem(b2, 2) as rt.u16)) << 9) & 0xffff, rt.u8Rem(b2, 3) as rt.usize, undefined); + return rt.vecFromElem(((rt.u8Rem(b2, 2) as rt.u16) << 9) & 0xffff, rt.u8Rem(b2, 3) as rt.usize, undefined); }; const words: string[] = rt.iterToArray(rt.iterMap(rt.iterSlice(rt.byteSliceView(data)), (_2: rt.u8): string => { return _3(_2); @@ -6581,7 +6581,7 @@ export function adapted(a: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): void { } } rt.byteVecPush(out, option_mapOr$02k4ito(rt.iterPosition(new rt.RangeFrom(lo, rt.u8Step), (i2: rt.u8): boolean => { - return ((i2 as rt.usize)) >= rt.usizeAdd(n, lo as rt.usize); + return (i2 as rt.usize) >= rt.usizeAdd(n, lo as rt.usize); }), 238, (i3: rt.usize): rt.u8 => { return i3 & 0xff; })); diff --git a/ts/fixtures/lang/joins/expected/joins.ts b/ts/fixtures/lang/joins/expected/joins.ts index 80506a562..d5e000673 100644 --- a/ts/fixtures/lang/joins/expected/joins.ts +++ b/ts/fixtures/lang/joins/expected/joins.ts @@ -105,14 +105,14 @@ export function joins(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): void { const _145: Uint8Array[] = []; bytes(rt.byteSlicesJoin(_145, rt.byteSliceFrom(Uint8Array.of(sep)), rt.byteSliceFrom), out); } else if (_26 === 2) { - const sep2: rt.u16 = ((((sep as rt.u16)) << 8) & 0xffff) | 1; + const sep2: rt.u16 = (((sep as rt.u16) << 8) & 0xffff) | 1; const wide: rt.u16[][] = rt.iterToArray(rt.iterMap(rt.iterSlice(parts), (p5: rt.ByteSlice): rt.u16[] => { return rt.iterToArray(rt.iterMap(rt.iterSlice(rt.byteSliceView(p5)), (_223: rt.u8): rt.u16 => { return rt.u16Mul(_223 as rt.u16, 257); }), undefined, 2, true); }), undefined, 12, true); const wideSeps: rt.u16[] = rt.iterToArray(rt.iterMap(rt.iterSlice(rt.byteSliceView(seps)), (_224: rt.u8): rt.u16 => { - return ((_224 as rt.u16)) | 256; + return (_224 as rt.u16) | 256; }), undefined, 2, true); wides(rt.slicesJoin(wide, 2), out); wides(rt.slicesJoin(wide, 2, [sep2]), out); diff --git a/ts/fixtures/lang/keys/expected/keys.ts b/ts/fixtures/lang/keys/expected/keys.ts index b93463b22..588ed5870 100644 --- a/ts/fixtures/lang/keys/expected/keys.ts +++ b/ts/fixtures/lang/keys/expected/keys.ts @@ -1537,7 +1537,7 @@ export function lentValues(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): vo if (_186 !== undefined) { _186.data[_186.start + 1] = _186.data[_186.start + 1] ^ 128; } - if (!((deque.n === 0))) { + if (!(deque.n === 0)) { const _201: rt.ByteSlice = rt.byteSliceFrom(rt.dequeIndex(deque, rt.usizeSub(deque.n, 1))); _201.data[_201.start] = _201.data[_201.start] ^ 1; rt.iterExtendBytes(out, rt.iterSlice(rt.byteSliceToArray(rt.byteSliceFrom(rt.dequeIndex(deque, 0)))), undefined, true); @@ -1605,7 +1605,7 @@ export function arrays(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): void { const _4: rt.u8 = rt.u8Rem(kind, 9); if (_4 === 0) { keyed$u16_2_keys_arrays_closure0(data, (b8: rt.u8): rt.u16[] => { - return [(((rt.u8Rem(b8, 4) as rt.u16)) << 8) & 0xffff, rt.u8Rem(b8, 3) as rt.u16]; + return [((rt.u8Rem(b8, 4) as rt.u16) << 8) & 0xffff, rt.u8Rem(b8, 3) as rt.u16]; }, out); } else if (_4 === 1) { keyed$u64_2_keys_arrays_closure1(data, (b7: rt.u8): rt.u64[] => { @@ -1789,7 +1789,7 @@ export function keyed$Option_u8_2_keys_arrays_closure5(data: rt.ByteSlice, make: const _512: Array = rt.sliceRange(k6, 0); const _611: Array = rt.sliceRange(probe, 0); const order2 = rt.cmpSlice(rt.cmpOption(rt.cmp))(_512, _611); - if (!((order2 !== undefined && order2 >= 0))) { + if (!(order2 !== undefined && order2 >= 0)) { return rt.u8Rem(v4.v, 2) === 0; } return true; @@ -2044,7 +2044,7 @@ export function keyed$bool_2_keys_arrays_closure4(data: rt.ByteSlice, make: (a0: const _512: boolean[] = rt.sliceRange(k6, 0); const _611: boolean[] = rt.sliceRange(probe, 0); const order2 = rt.cmpSlice(rt.cmp)(_512, _611); - if (!((order2 !== undefined && order2 >= 0))) { + if (!(order2 !== undefined && order2 >= 0)) { return rt.u8Rem(v4.v, 2) === 0; } return true; @@ -2299,7 +2299,7 @@ export function keyed$char_2_keys_arrays_closure3(data: rt.ByteSlice, make: (a0: const _512: rt.char[] = rt.sliceRange(k6, 0); const _611: rt.char[] = rt.sliceRange(probe, 0); const order2 = rt.cmpSlice(rt.cmp)(_512, _611); - if (!((order2 !== undefined && order2 >= 0))) { + if (!(order2 !== undefined && order2 >= 0)) { return rt.u8Rem(v4.v, 2) === 0; } return true; @@ -2554,7 +2554,7 @@ export function keyed$i32_2_keys_arrays_closure2(data: rt.ByteSlice, make: (a0: const _512: rt.i32[] = rt.sliceRange(k6, 0); const _611: rt.i32[] = rt.sliceRange(probe, 0); const order2 = rt.cmpSlice(rt.cmp)(_512, _611); - if (!((order2 !== undefined && order2 >= 0))) { + if (!(order2 !== undefined && order2 >= 0)) { return rt.u8Rem(v4.v, 2) === 0; } return true; @@ -2809,7 +2809,7 @@ export function keyed$keys_Hop_2_keys_arrays_closure6(data: rt.ByteSlice, make: const _512: Hop.Hop[] = rt.sliceRange(k6, 0); const _611: Hop.Hop[] = rt.sliceRange(probe, 0); const order2 = rt.cmpSlice(Hop.partialCmp$cmp_PartialOrd)(_512, _611); - if (!((order2 !== undefined && order2 >= 0))) { + if (!(order2 !== undefined && order2 >= 0)) { return rt.u8Rem(v4.v, 2) === 0; } return true; @@ -3065,7 +3065,7 @@ export function keyed$u16_2_keys_arrays_closure0(data: rt.ByteSlice, make: (a0: const _512: rt.u16[] = rt.sliceRange(k6, 0); const _611: rt.u16[] = rt.sliceRange(probe, 0); const order2 = rt.cmpSlice(rt.cmp)(_512, _611); - if (!((order2 !== undefined && order2 >= 0))) { + if (!(order2 !== undefined && order2 >= 0)) { return rt.u8Rem(v4.v, 2) === 0; } return true; @@ -3320,7 +3320,7 @@ export function keyed$u32_0_keys_arrays_closure7(data: rt.ByteSlice, make: (a0: const _512: rt.u32[] = rt.sliceRange(k6, 0); const _611: rt.u32[] = rt.sliceRange(probe, 0); const order2 = rt.cmpSlice(rt.cmp)(_512, _611); - if (!((order2 !== undefined && order2 >= 0))) { + if (!(order2 !== undefined && order2 >= 0)) { return rt.u8Rem(v4.v, 2) === 0; } return true; @@ -3575,7 +3575,7 @@ export function keyed$u32_275_keys_arrays_closure8(data: rt.ByteSlice, make: (a0 const _512: rt.u32[] = rt.sliceRange(k6, 0); const _611: rt.u32[] = rt.sliceRange(probe, 0); const order2 = rt.cmpSlice(rt.cmp)(_512, _611); - if (!((order2 !== undefined && order2 >= 0))) { + if (!(order2 !== undefined && order2 >= 0)) { return rt.u8Rem(v4.v, 2) === 0; } return true; @@ -3830,7 +3830,7 @@ export function keyed$u64_2_keys_arrays_closure1(data: rt.ByteSlice, make: (a0: const _512: rt.u64[] = rt.sliceRange(k6, 0); const _611: rt.u64[] = rt.sliceRange(probe, 0); const order2 = rt.cmpSlice(rt.cmp)(_512, _611); - if (!((order2 !== undefined && order2 >= 0))) { + if (!(order2 !== undefined && order2 >= 0)) { return rt.u8Rem(v4.v, 2) === 0; } return true; diff --git a/ts/fixtures/lang/lengths/expected/lengths.ts b/ts/fixtures/lang/lengths/expected/lengths.ts index c09db3302..ffac3ea5a 100644 --- a/ts/fixtures/lang/lengths/expected/lengths.ts +++ b/ts/fixtures/lang/lengths/expected/lengths.ts @@ -27,7 +27,7 @@ export function each$0(data: rt.ByteSlice, out: rt.ByteVec): void { }), undefined, 0, true); const wide: rt.u32[][] = rt.iterToArray(rt.iterMap(rt.iterLend(rt.iterSlice(rows), rt.byteSliceFrom), (r: rt.ByteSlice): rt.u32[] => { return rt.arrayMap(rt.byteSliceToArray(r), (b: rt.u8): rt.u32 => { - return (((((b as rt.u32)) << 8) >>> 0) | 1) >>> 0; + return ((((b as rt.u32) << 8) >>> 0) | 1) >>> 0; }); }), undefined, 0, true); joined$0(data, rt.vecExact(rows.map(copy$array_u8), 0), out); @@ -62,7 +62,7 @@ export function each$1(data: rt.ByteSlice, out: rt.ByteVec): void { }), undefined, 1, true); const wide: rt.u32[][] = rt.iterToArray(rt.iterMap(rt.iterLend(rt.iterSlice(rows), rt.byteSliceFrom), (r: rt.ByteSlice): rt.u32[] => { return rt.arrayMap(rt.byteSliceToArray(r), (b: rt.u8): rt.u32 => { - return (((((b as rt.u32)) << 8) >>> 0) | 1) >>> 0; + return ((((b as rt.u32) << 8) >>> 0) | 1) >>> 0; }); }), undefined, 4, true); joined$1(data, rt.vecExact(rows.map(copy$array_u8), 1), out); @@ -97,7 +97,7 @@ export function each$17(data: rt.ByteSlice, out: rt.ByteVec): void { }), undefined, 17, true); const wide: rt.u32[][] = rt.iterToArray(rt.iterMap(rt.iterLend(rt.iterSlice(rows), rt.byteSliceFrom), (r: rt.ByteSlice): rt.u32[] => { return rt.arrayMap(rt.byteSliceToArray(r), (b: rt.u8): rt.u32 => { - return (((((b as rt.u32)) << 8) >>> 0) | 1) >>> 0; + return ((((b as rt.u32) << 8) >>> 0) | 1) >>> 0; }); }), undefined, 68, true); joined$17(data, rt.vecExact(rows.map(copy$array_u8), 17), out); @@ -132,7 +132,7 @@ export function each$3(data: rt.ByteSlice, out: rt.ByteVec): void { }), undefined, 3, true); const wide: rt.u32[][] = rt.iterToArray(rt.iterMap(rt.iterLend(rt.iterSlice(rows), rt.byteSliceFrom), (r: rt.ByteSlice): rt.u32[] => { return rt.arrayMap(rt.byteSliceToArray(r), (b: rt.u8): rt.u32 => { - return (((((b as rt.u32)) << 8) >>> 0) | 1) >>> 0; + return ((((b as rt.u32) << 8) >>> 0) | 1) >>> 0; }); }), undefined, 12, true); joined$3(data, rt.vecExact(rows.map(copy$array_u8), 3), out); @@ -1613,7 +1613,7 @@ export function swapped$u8_0(data: rt.ByteSlice, rows: Uint8Array[], out: rt.Byt } } rt.iterExtendBytes(out, rt.iterMap(rt.iterChain(rt.iterSlice(rt.byteSliceView(rt.byteSliceFrom(row))), rt.iterFlatten(rt.iterLend(rt.iterSlice(grid), rt.byteSliceFrom), (value: rt.ByteSlice) => rt.iterSlice(rt.byteSliceView(value)), false, 0)), (_2: rt.u8): rt.u8 => { - return ((_2 as rt.u32)) & 0xff; + return (_2 as rt.u32) & 0xff; }), undefined, true); } } @@ -1666,7 +1666,7 @@ export function swapped$u8_1(data: rt.ByteSlice, rows: Uint8Array[], out: rt.Byt } } rt.iterExtendBytes(out, rt.iterMap(rt.iterChain(rt.iterSlice(rt.byteSliceView(rt.byteSliceFrom(row))), rt.iterFlatten(rt.iterLend(rt.iterSlice(grid), rt.byteSliceFrom), (value: rt.ByteSlice) => rt.iterSlice(rt.byteSliceView(value)), false, 1)), (_2: rt.u8): rt.u8 => { - return ((_2 as rt.u32)) & 0xff; + return (_2 as rt.u32) & 0xff; }), undefined, true); } } @@ -1719,7 +1719,7 @@ export function swapped$u8_17(data: rt.ByteSlice, rows: Uint8Array[], out: rt.By } } rt.iterExtendBytes(out, rt.iterMap(rt.iterChain(rt.iterSlice(rt.byteSliceView(rt.byteSliceFrom(row))), rt.iterFlatten(rt.iterLend(rt.iterSlice(grid), rt.byteSliceFrom), (value: rt.ByteSlice) => rt.iterSlice(rt.byteSliceView(value)), false, 17)), (_2: rt.u8): rt.u8 => { - return ((_2 as rt.u32)) & 0xff; + return (_2 as rt.u32) & 0xff; }), undefined, true); } } @@ -1772,7 +1772,7 @@ export function swapped$u8_3(data: rt.ByteSlice, rows: Uint8Array[], out: rt.Byt } } rt.iterExtendBytes(out, rt.iterMap(rt.iterChain(rt.iterSlice(rt.byteSliceView(rt.byteSliceFrom(row))), rt.iterFlatten(rt.iterLend(rt.iterSlice(grid), rt.byteSliceFrom), (value: rt.ByteSlice) => rt.iterSlice(rt.byteSliceView(value)), false, 3)), (_2: rt.u8): rt.u8 => { - return ((_2 as rt.u32)) & 0xff; + return (_2 as rt.u32) & 0xff; }), undefined, true); } } diff --git a/ts/fixtures/lang/locks/expected/locks.ts b/ts/fixtures/lang/locks/expected/locks.ts index 14d257b83..f4b8d713c 100644 --- a/ts/fixtures/lang/locks/expected/locks.ts +++ b/ts/fixtures/lang/locks/expected/locks.ts @@ -323,7 +323,7 @@ export function mapped(data: rt.ByteSlice, out: rt.ByteVec): void { write = false; } drop$Result_sync_RwLockWriteGuard_locks_Tally_sync_TryLockError_sync_RwLockWriteGuard_locks_Tally(_8); - rt.byteVecPush(out2, ((((read ? 1 : 0)) << 1) & 0xff) | ((write ? 1 : 0))); + rt.byteVecPush(out2, (((read ? 1 : 0) << 1) & 0xff) | (write ? 1 : 0)); }; for (const op of rt.byteSliceView(data)) { const _13: rt.u8 = rt.u8Rem(op, 4); @@ -474,7 +474,7 @@ export function mutexMapped(data: rt.ByteSlice, out: rt.ByteVec): void { number2 = false; } drop$Result_sync_MutexGuard_u32_sync_TryLockError_sync_MutexGuard_u32(_8); - rt.byteVecPush(out2, ((((tally ? 1 : 0)) << 1) & 0xff) | ((number2 ? 1 : 0))); + rt.byteVecPush(out2, (((tally ? 1 : 0) << 1) & 0xff) | (number2 ? 1 : 0)); }; for (const op of rt.byteSliceView(data)) { const _15: rt.u8 = rt.u8Rem(op, 4); @@ -812,7 +812,7 @@ export function held$array4_u8(lock: rt.RefCell): rt.u8 { write = false; } drop$Result_sync_RwLockWriteGuard_array4_u8_sync_TryLockError_sync_RwLockWriteGuard_array4_u8(_7); - return ((((read ? 1 : 0)) << 1) & 0xff) | ((write ? 1 : 0)); + return (((read ? 1 : 0) << 1) & 0xff) | (write ? 1 : 0); } /** Whether a read of `lock` would block, as 2, and whether a write would, as 1. */ @@ -833,7 +833,7 @@ export function held$locks_Tally(lock: rt.RefCell): rt.u8 { write = false; } drop$Result_sync_RwLockWriteGuard_locks_Tally_sync_TryLockError_sync_RwLockWriteGuard_locks_Tally(_7); - return ((((read ? 1 : 0)) << 1) & 0xff) | ((write ? 1 : 0)); + return (((read ? 1 : 0) << 1) & 0xff) | (write ? 1 : 0); } /** Whether a read of `lock` would block, as 2, and whether a write would, as 1. */ @@ -854,7 +854,7 @@ export function held$u32(lock: rt.RefCell): rt.u8 { write = false; } drop$Result_sync_RwLockWriteGuard_u32_sync_TryLockError_sync_RwLockWriteGuard_u32(_7); - return ((((read ? 1 : 0)) << 1) & 0xff) | ((write ? 1 : 0)); + return (((read ? 1 : 0) << 1) & 0xff) | (write ? 1 : 0); } /** diff --git a/ts/fixtures/lang/manual/expected/manual.ts b/ts/fixtures/lang/manual/expected/manual.ts index 04a126c36..71ff40bbb 100644 --- a/ts/fixtures/lang/manual/expected/manual.ts +++ b/ts/fixtures/lang/manual/expected/manual.ts @@ -41,7 +41,7 @@ export function arcs(data: rt.ByteSlice, out: rt.ByteVec): void { rt.byteVecPush(out, rt.u8Add(taken.value, taken.strong & 0xff)); taken[Symbol.dispose](); } else if (_12 === 5) { - const h: ByHand.ByHand = new ByHand.ByHand(held$sync_Arc_u8(shared), b as rt.u32, copy$tuple2_u8_u16([b, (((b as rt.u16)) << 4) & 0xffff] as [rt.u8, rt.u16])); + const h: ByHand.ByHand = new ByHand.ByHand(held$sync_Arc_u8(shared), b as rt.u32, copy$tuple2_u8_u16([b, ((b as rt.u16) << 4) & 0xffff] as [rt.u8, rt.u16])); h.count = rt.u32Add(h.count, 3); const _64: [rt.u8, rt.u16] = h.pair; _64[0] = _64[0] ^ 90; @@ -52,7 +52,7 @@ export function arcs(data: rt.ByteSlice, out: rt.ByteVec): void { } else if (_12 === 6) { rt.arcDrop(new rt.Arc(held$sync_Arc_u8(shared))); } else if (_12 === 7) { - const slot: [rt.u8, rt.u16] = copy$mem_MaybeUninit_mem_ManuallyDrop_tuple2_u8_u16(copy$tuple2_u8_u16([b, (((b as rt.u16)) << 3) & 0xffff] as [rt.u8, rt.u16])); + const slot: [rt.u8, rt.u16] = copy$mem_MaybeUninit_mem_ManuallyDrop_tuple2_u8_u16(copy$tuple2_u8_u16([b, ((b as rt.u16) << 3) & 0xffff] as [rt.u8, rt.u16])); const copy: [rt.u8, rt.u16] = copy$mem_MaybeUninit_mem_ManuallyDrop_tuple2_u8_u16(slot); const _93: [rt.u8, rt.u16] = slot; _93[0] = _93[0] ^ 51; diff --git a/ts/fixtures/lang/orders/expected/orders.Torn.ts b/ts/fixtures/lang/orders/expected/orders.Torn.ts index 8275389a9..551d0c77d 100644 --- a/ts/fixtures/lang/orders/expected/orders.Torn.ts +++ b/ts/fixtures/lang/orders/expected/orders.Torn.ts @@ -29,7 +29,7 @@ export function rank(self: Torn): rt.i16 { /** What `PartialEq` compares. */ function class_(self: Torn): rt.u16 { if (self.mode === 2) { - return ((((self.key as rt.u16)) << 8) & 0xffff) | self.tag as rt.u16; + return (((self.key as rt.u16) << 8) & 0xffff) | self.tag as rt.u16; } if (self.mode === 3) { return rt.u8Div(self.key, 2) as rt.u16; diff --git a/ts/fixtures/lang/pointers/expected/pointers.List.ts b/ts/fixtures/lang/pointers/expected/pointers.List.ts index 0687bfcfa..0cddedd3a 100644 --- a/ts/fixtures/lang/pointers/expected/pointers.List.ts +++ b/ts/fixtures/lang/pointers/expected/pointers.List.ts @@ -198,7 +198,7 @@ export function each$String(self: List, out: rt.ByteVec): void { const guard: Node.Node = self.guard; let at: Node.Node = guard.link.at0 as Node.Node; while (true) { - if (!((at !== guard))) { + if (!(at !== guard)) { break b0; } const _13: [rt.u8, string] = at.entry; diff --git a/ts/fixtures/lang/pointers/expected/pointers.Waiters.ts b/ts/fixtures/lang/pointers/expected/pointers.Waiters.ts index 0d284ab4d..6a4ee0a68 100644 --- a/ts/fixtures/lang/pointers/expected/pointers.Waiters.ts +++ b/ts/fixtures/lang/pointers/expected/pointers.Waiters.ts @@ -30,7 +30,7 @@ export function push(self: Waiters, waiter: Waiter.Waiter): void { export function pop(self: Waiters): boolean { const head: Waiter.Waiter = self.head.v; - if (!((head === rt.NULL))) { + if (!(head === rt.NULL)) { const _6: Waiter.Waiter = rt.atomicLoad(head.next, 4); self.head.v = _6; rt.atomicStore(head.enqueued, false, 4); diff --git a/ts/fixtures/lang/pointers/expected/pointers.ts b/ts/fixtures/lang/pointers/expected/pointers.ts index f2b1c29fd..e5c83f0da 100644 --- a/ts/fixtures/lang/pointers/expected/pointers.ts +++ b/ts/fixtures/lang/pointers/expected/pointers.ts @@ -63,12 +63,12 @@ export function attachBefore$sync_Arc_u8(node: Node.Node>, at: Nod export function detach$String(node: Node.Node): void { (node.link.at4.link.at0 as Node.Node) = node.link.at0 as Node.Node; - ((node.link.at0 as Node.Node)).link.at4 = node.link.at4; + (node.link.at0 as Node.Node).link.at4 = node.link.at4; } export function detach$sync_Arc_u8(node: Node.Node>): void { (node.link.at4.link.at0 as Node.Node>) = node.link.at0 as Node.Node>; - ((node.link.at0 as Node.Node>)).link.at4 = node.link.at4; + (node.link.at0 as Node.Node>).link.at4 = node.link.at4; } /** @@ -234,7 +234,7 @@ export function places(data: rt.ByteSlice, out: rt.ByteVec): void { rt.byteSliceSet(pointer, Uint8Array.of(byte, ~byte & 0xff)); old2; } else { - if (!((held === rt.NULL))) { + if (!(held === rt.NULL)) { _52 = held.v & 0xff; } else { _52 = 255; @@ -393,7 +393,7 @@ export function sentinels(data: rt.ByteSlice, out: rt.ByteVec): void { } rt.byteVecPush(out, _19); const pointer2 = p; - rt.byteVecPush(out, ((pointer2 === rt.NULL ? rt.None : pointer2.v)) === rt.None ? 1 : 0); + rt.byteVecPush(out, (pointer2 === rt.NULL ? rt.None : pointer2.v) === rt.None ? 1 : 0); const units: undefined[] = (new Array(2) as unknown) as undefined[]; copy$array_unit(units); rt.byteVecPush(out, rt.iterCount(rt.iterSlice([undefined, undefined])) & 0xff); @@ -417,7 +417,7 @@ export function cells(data: rt.ByteSlice, out: rt.ByteVec): void { const _23: rt.u8 = rt.u8Rem(op, 8); if (_23 === 0) { const before: rt.u32 = num.v; - const _32: rt.u32 = rt.u32WrappingAdd(num.v, (((n as rt.u32)) << 26) >>> 0); + const _32: rt.u32 = rt.u32WrappingAdd(num.v, ((n as rt.u32) << 26) >>> 0); num.v = _32; rt.iterExtendBytes(out, rt.iterSlice(rt.u32ToBeBytes(before).reverse()), undefined, true); rt.iterExtendBytes(out, rt.iterSlice(rt.u32ToBeBytes(num.v).reverse()), undefined, true); @@ -599,7 +599,7 @@ export function writtenInPlace(n: rt.u8): Uint8Array { } export function cellWrittenInPlace(n: rt.u8): Uint8Array { - const cell: rt.Cell = new rt.Cell((((n as rt.u32)) << 9) >>> 0); + const cell: rt.Cell = new rt.Cell(((n as rt.u32) << 9) >>> 0); const p: rt.Place = cell; const old: rt.u32 = renewNum(cell, rt.u32Add(n as rt.u32, 7)); return Uint8Array.of(old & 0xff, (old >>> 9) & 0xff, p.v & 0xff, (clear(cell) & 0xff) ^ (p.v & 0xff)); @@ -1027,7 +1027,7 @@ export function waiters(data: rt.ByteSlice, out: rt.ByteVec): void { continue; } if (_42 === 2) { - if (!((list.last === rt.NULL))) { + if (!(list.last === rt.NULL)) { const slot: [rt.u8, rt.u8] = slotOf(list.last); slot[1] = rt.u8WrappingAdd(slot[1], byte); continue; @@ -1040,7 +1040,7 @@ export function waiters(data: rt.ByteSlice, out: rt.ByteVec): void { rt.iterExtendBytes(out, rt.iterSlice(Uint8Array.of(_58[0], _58[1])), undefined, true); } let at2: Waiter.Waiter = rt.atomicLoad(list.head, 4); - while (!((at2 === rt.NULL))) { + while (!(at2 === rt.NULL)) { const _69: [rt.u8, rt.u8] = copy$tuple2_u8_u8(slotOf(at2)); rt.iterExtendBytes(out, rt.iterSlice(Uint8Array.of(_69[0], _69[1])), undefined, true); at2 = rt.atomicLoad(at2.next, 4); @@ -1339,7 +1339,7 @@ export function reattached(data: rt.ByteSlice, out: rt.ByteVec): void { for (const n of rt.byteSliceView(data)) { const _17: rt.u16[] = buf; attach$array4_u16(rt.place(() => window.at as rt.u16[], (value) => (window.at as rt.u16[]) = value), _17); - const _18: rt.u16 = (((n as rt.u16)) << 7) & 0xffff; + const _18: rt.u16 = ((n as rt.u16) << 7) & 0xffff; const _22: rt.usize = rt.u8Rem(n, 4) as rt.usize; if (!(_22 < 4)) { rt.panic("index out of bounds: the len is " + 4 + " but the index is " + _22); @@ -1477,17 +1477,17 @@ export function aimed(data: rt.ByteSlice, out: rt.ByteVec): void { let _538!: boolean; const _322: (a0: boolean[]) => rt.u8 = (b: boolean[]): rt.u8 => { return rt.iterFold(rt.iterSlice(b), 0, (acc: rt.u8, _33: boolean): rt.u8 => { - return ((acc << 1) & 0xff) | ((_33 ? 1 : 0)); + return ((acc << 1) & 0xff) | (_33 ? 1 : 0); }); }; const _455: (a0: boolean[]) => rt.u8 = (b3: boolean[]): rt.u8 => { return rt.iterFold(rt.iterSlice(b3), 0, (acc2: rt.u8, _36: boolean): rt.u8 => { - return ((acc2 << 1) & 0xff) | ((_36 ? 1 : 0)); + return ((acc2 << 1) & 0xff) | (_36 ? 1 : 0); }); }; const _588: (a0: boolean[]) => rt.u8 = (b5: boolean[]): rt.u8 => { return rt.iterFold(rt.iterSlice(b5), 0, (acc3: rt.u8, _38: boolean): rt.u8 => { - return ((acc3 << 1) & 0xff) | ((_38 ? 1 : 0)); + return ((acc3 << 1) & 0xff) | (_38 ? 1 : 0); }); }; for (const n of rt.byteSliceView(data)) { @@ -1596,7 +1596,7 @@ export function aimed(data: rt.ByteSlice, out: rt.ByteVec): void { swappedIn$Cell_u8(rt.place(() => cell, (value8) => cell = value8), n, out); lend$Cell_u8(cell, n, out); rt.byteVecPush(out, cell.v); - const _144: rt.u16 = (((n as rt.u16)) << 4) & 0xffff; + const _144: rt.u16 = ((n as rt.u16) << 4) & 0xffff; const wide: rt.u16[] = Array.from({ length: 2 }, (): rt.u16 => { return _144; }); @@ -1703,7 +1703,7 @@ export function aimed(data: rt.ByteSlice, out: rt.ByteVec): void { const scrutinee2 = nest8.inner.maybe as Paired.Paired | undefined; same = [_243, _247, _253, _259, _262]; if (scrutinee2 !== undefined) { - if ((((nest8.inner.maybe as Paired.Paired | undefined) as Paired.Paired)) === other2) { + if (((nest8.inner.maybe as Paired.Paired | undefined) as Paired.Paired) === other2) { _272 = true; break b25; } @@ -1715,7 +1715,7 @@ export function aimed(data: rt.ByteSlice, out: rt.ByteVec): void { const _284: boolean = (nest8.inner.maybe as Paired.Paired | undefined) === nest8.inner.held as Paired.Paired; const _289: boolean = (nest8.inner.maybe as Paired.Paired | undefined) !== nest8.inner.held as Paired.Paired; const pointer11 = other2; - const optional: boolean[] = [_284, _289, (nest8.inner.maybe as Paired.Paired | undefined) === ((pointer11 === rt.NULL ? undefined : pointer11)), (nest8.inner.maybe as Paired.Paired | undefined) === none, none === undefined, (nest8.inner.seen as Paired.Paired) === nest8.inner.at as Paired.Paired, (nest8.inner.seen as Paired.Paired) !== null_, null_ === rt.NULL]; + const optional: boolean[] = [_284, _289, (nest8.inner.maybe as Paired.Paired | undefined) === (pointer11 === rt.NULL ? undefined : pointer11), (nest8.inner.maybe as Paired.Paired | undefined) === none, none === undefined, (nest8.inner.seen as Paired.Paired) === nest8.inner.at as Paired.Paired, (nest8.inner.seen as Paired.Paired) !== null_, null_ === rt.NULL]; rt.iterExtendBytes(out, rt.iterSlice(Uint8Array.of(_322(same), _322(apart), _322(optional))), undefined, true); const other3: rt.ByteSlice = rt.byteSliceFrom(otherBytes); const at10: rt.ByteSlice = rt.byteSliceFrom(bytes); @@ -1862,7 +1862,7 @@ export function aimed(data: rt.ByteSlice, out: rt.ByteVec): void { const scrutinee6 = nest10.inner.maybe as Housed.Housed | undefined; same3 = [_509, _513, _519, _525, _528]; if (scrutinee6 !== undefined) { - if ((((nest10.inner.maybe as Housed.Housed | undefined) as Housed.Housed)) === other4) { + if (((nest10.inner.maybe as Housed.Housed | undefined) as Housed.Housed) === other4) { _538 = true; break b45; } @@ -1874,7 +1874,7 @@ export function aimed(data: rt.ByteSlice, out: rt.ByteVec): void { const _550: boolean = (nest10.inner.maybe as Housed.Housed | undefined) === nest10.inner.held as Housed.Housed; const _555: boolean = (nest10.inner.maybe as Housed.Housed | undefined) !== nest10.inner.held as Housed.Housed; const pointer19 = other4; - const optional3: boolean[] = [_550, _555, (nest10.inner.maybe as Housed.Housed | undefined) === ((pointer19 === rt.NULL ? undefined : pointer19)), (nest10.inner.maybe as Housed.Housed | undefined) === none3, none3 === undefined, (nest10.inner.seen as Housed.Housed) === nest10.inner.at as Housed.Housed, (nest10.inner.seen as Housed.Housed) !== null_3, null_3 === rt.NULL]; + const optional3: boolean[] = [_550, _555, (nest10.inner.maybe as Housed.Housed | undefined) === (pointer19 === rt.NULL ? undefined : pointer19), (nest10.inner.maybe as Housed.Housed | undefined) === none3, none3 === undefined, (nest10.inner.seen as Housed.Housed) === nest10.inner.at as Housed.Housed, (nest10.inner.seen as Housed.Housed) !== null_3, null_3 === rt.NULL]; rt.iterExtendBytes(out, rt.iterSlice(Uint8Array.of(_588(same3), _588(apart3), _588(optional3))), undefined, true); } } @@ -1921,7 +1921,7 @@ export function put$pointers_Aim_Cell_u8(self: rt.Cell, n: rt.u8): void { } export function made$pointers_Aim_array2_u16(n: rt.u8): rt.u16[] { - return [(((n as rt.u16)) << 4) & 0xffff, ((((~n & 0xff) as rt.u16)) << 4) & 0xffff]; + return [((n as rt.u16) << 4) & 0xffff, (((~n & 0xff) as rt.u16) << 4) & 0xffff]; } export function get$pointers_Aim_array2_u16(self: rt.u16[]): rt.u8 { @@ -1929,7 +1929,7 @@ export function get$pointers_Aim_array2_u16(self: rt.u16[]): rt.u8 { } export function put$pointers_Aim_array2_u16(self: rt.u16[], n: rt.u8): void { - const _3: rt.u16 = (((n as rt.u16)) << 4) & 0xffff; + const _3: rt.u16 = ((n as rt.u16) << 4) & 0xffff; const _7: rt.usize = rt.u8Rem(n, 2) as rt.usize; if (!(_7 < 2)) { rt.panic("index out of bounds: the len is " + 2 + " but the index is " + _7); @@ -1952,9 +1952,9 @@ export function through$Cell_u8(nest: Enclosed.Enclosed>, n: rt.u put$pointers_Aim_Cell_u8(at.v, tag); rt.byteVecPush(out, (nest.inner.read as (a0: rt.Place>) => rt.u8)(nest.inner.seen as rt.Place>)); put$pointers_Aim_Cell_u8((nest.inner.at as rt.Place>).v, n); - rt.byteVecPush(out, get$pointers_Aim_Cell_u8(((nest.inner.held as rt.Place>)).v)); + rt.byteVecPush(out, get$pointers_Aim_Cell_u8((nest.inner.held as rt.Place>).v)); if ((nest.inner.maybe as rt.Place> | undefined) !== undefined) { - put$pointers_Aim_Cell_u8((((nest.inner.maybe as rt.Place> | undefined) as rt.Place>)).v, n ^ 3); + put$pointers_Aim_Cell_u8(((nest.inner.maybe as rt.Place> | undefined) as rt.Place>).v, n ^ 3); } const _62: rt.Place> = (nest.inner.tagged as [rt.Place>, rt.u8])[0]; const _34: rt.u8 = rt.u8WrappingAdd(n, (nest.inner.tagged as [rt.Place>, rt.u8])[1]); @@ -1962,13 +1962,13 @@ export function through$Cell_u8(nest: Enclosed.Enclosed>, n: rt.u if (nest.inner.to.tag === "At") { put$pointers_Aim_Cell_u8((nest.inner.to._0 as rt.Place>).v, ~n & 0xff); } - const _43: rt.u8 = ((((nest.inner.maybe as rt.Place> | undefined) !== undefined ? 1 : 0)) << 1) & 0xff; + const _43: rt.u8 = (((nest.inner.maybe as rt.Place> | undefined) !== undefined ? 1 : 0) << 1) & 0xff; if (nest.inner.to.tag === "At") { _50 = true; } else { _50 = false; } - rt.byteVecPush(out, _43 | ((_50 ? 1 : 0))); + rt.byteVecPush(out, _43 | (_50 ? 1 : 0)); if (rt.u8Rem(n, 5) === 0) { (nest.inner.at as rt.Place>).v = made$pointers_Aim_Cell_u8(n); } @@ -1998,13 +1998,13 @@ export function through$array2_u16(nest: Enclosed.Enclosed, n: rt.u8, if (nest.inner.to.tag === "At") { put$pointers_Aim_array2_u16(nest.inner.to._0 as rt.u16[], ~n & 0xff); } - const _43: rt.u8 = ((((nest.inner.maybe as rt.u16[] | undefined) !== undefined ? 1 : 0)) << 1) & 0xff; + const _43: rt.u8 = (((nest.inner.maybe as rt.u16[] | undefined) !== undefined ? 1 : 0) << 1) & 0xff; if (nest.inner.to.tag === "At") { _50 = true; } else { _50 = false; } - rt.byteVecPush(out, _43 | ((_50 ? 1 : 0))); + rt.byteVecPush(out, _43 | (_50 ? 1 : 0)); if (rt.u8Rem(n, 5) === 0) { rt.ptrWrite(nest.inner.at as rt.u16[], copy$array_u16(made$pointers_Aim_array2_u16(n))); } @@ -2035,13 +2035,13 @@ export function through$array4_u8(nest: Enclosed.Enclosed, n: rt.u8, if (nest.inner.to.tag === "At") { put$pointers_Aim_array4_u8(nest.inner.to._0 as rt.ByteSlice, ~n & 0xff); } - const _43: rt.u8 = ((((nest.inner.maybe as rt.ByteSlice | undefined) !== undefined ? 1 : 0)) << 1) & 0xff; + const _43: rt.u8 = (((nest.inner.maybe as rt.ByteSlice | undefined) !== undefined ? 1 : 0) << 1) & 0xff; if (nest.inner.to.tag === "At") { _50 = true; } else { _50 = false; } - rt.byteVecPush(out, _43 | ((_50 ? 1 : 0))); + rt.byteVecPush(out, _43 | (_50 ? 1 : 0)); if (rt.u8Rem(n, 5) === 0) { rt.byteSliceSet(nest.inner.at as rt.ByteSlice, copy$array_u8(made$pointers_Aim_array4_u8(n))); } @@ -2072,13 +2072,13 @@ export function through$pointers_Housed_u8(nest: Enclosed.Enclosed, ~n & 0xff); } - const _43: rt.u8 = ((((nest.inner.maybe as Housed.Housed | undefined) !== undefined ? 1 : 0)) << 1) & 0xff; + const _43: rt.u8 = (((nest.inner.maybe as Housed.Housed | undefined) !== undefined ? 1 : 0) << 1) & 0xff; if (nest.inner.to.tag === "At") { _50 = true; } else { _50 = false; } - rt.byteVecPush(out, _43 | ((_50 ? 1 : 0))); + rt.byteVecPush(out, _43 | (_50 ? 1 : 0)); if (rt.u8Rem(n, 5) === 0) { rt.ptrWrite(nest.inner.at as Housed.Housed, Housed.made$pointers_Aim_u8(n)); } @@ -2100,7 +2100,7 @@ export function through$pointers_Leaning(nest: Enclosed.Enclosed) => rt.u8)(nest.inner.seen as rt.Place)); Leaning.put$pointers_Aim(nest.inner.at as rt.Place, n); - rt.byteVecPush(out, Leaning.get$pointers_Aim(((nest.inner.held as rt.Place)).v)); + rt.byteVecPush(out, Leaning.get$pointers_Aim((nest.inner.held as rt.Place).v)); if ((nest.inner.maybe as rt.Place | undefined) !== undefined) { Leaning.put$pointers_Aim((nest.inner.maybe as rt.Place | undefined) as rt.Place, n ^ 3); } @@ -2108,13 +2108,13 @@ export function through$pointers_Leaning(nest: Enclosed.Enclosed, ~n & 0xff); } - const _43: rt.u8 = ((((nest.inner.maybe as rt.Place | undefined) !== undefined ? 1 : 0)) << 1) & 0xff; + const _43: rt.u8 = (((nest.inner.maybe as rt.Place | undefined) !== undefined ? 1 : 0) << 1) & 0xff; if (nest.inner.to.tag === "At") { _50 = true; } else { _50 = false; } - rt.byteVecPush(out, _43 | ((_50 ? 1 : 0))); + rt.byteVecPush(out, _43 | (_50 ? 1 : 0)); if (rt.u8Rem(n, 5) === 0) { (nest.inner.at as rt.Place).v = Leaning.made$pointers_Aim(n); } @@ -2144,13 +2144,13 @@ export function through$pointers_Paired(nest: Enclosed.Enclosed, if (nest.inner.to.tag === "At") { Paired.put$pointers_Aim(nest.inner.to._0 as Paired.Paired, ~n & 0xff); } - const _43: rt.u8 = ((((nest.inner.maybe as Paired.Paired | undefined) !== undefined ? 1 : 0)) << 1) & 0xff; + const _43: rt.u8 = (((nest.inner.maybe as Paired.Paired | undefined) !== undefined ? 1 : 0) << 1) & 0xff; if (nest.inner.to.tag === "At") { _50 = true; } else { _50 = false; } - rt.byteVecPush(out, _43 | ((_50 ? 1 : 0))); + rt.byteVecPush(out, _43 | (_50 ? 1 : 0)); if (rt.u8Rem(n, 5) === 0) { rt.ptrWrite(nest.inner.at as Paired.Paired, Paired.made$pointers_Aim(n)); } @@ -2172,7 +2172,7 @@ export function through$u8(nest: Enclosed.Enclosed, n: rt.u8, out: rt.Byt put$pointers_Aim_u8(at, tag); rt.byteVecPush(out, (nest.inner.read as (a0: rt.Place) => rt.u8)(nest.inner.seen as rt.Place)); put$pointers_Aim_u8(nest.inner.at as rt.Place, n); - rt.byteVecPush(out, get$pointers_Aim_u8(((nest.inner.held as rt.Place)).v)); + rt.byteVecPush(out, get$pointers_Aim_u8((nest.inner.held as rt.Place).v)); if ((nest.inner.maybe as rt.Place | undefined) !== undefined) { put$pointers_Aim_u8((nest.inner.maybe as rt.Place | undefined) as rt.Place, n ^ 3); } @@ -2180,13 +2180,13 @@ export function through$u8(nest: Enclosed.Enclosed, n: rt.u8, out: rt.Byt if (nest.inner.to.tag === "At") { put$pointers_Aim_u8(nest.inner.to._0 as rt.Place, ~n & 0xff); } - const _43: rt.u8 = ((((nest.inner.maybe as rt.Place | undefined) !== undefined ? 1 : 0)) << 1) & 0xff; + const _43: rt.u8 = (((nest.inner.maybe as rt.Place | undefined) !== undefined ? 1 : 0) << 1) & 0xff; if (nest.inner.to.tag === "At") { _50 = true; } else { _50 = false; } - rt.byteVecPush(out, _43 | ((_50 ? 1 : 0))); + rt.byteVecPush(out, _43 | (_50 ? 1 : 0)); if (rt.u8Rem(n, 5) === 0) { (nest.inner.at as rt.Place).v = made$pointers_Aim_u8(n); } diff --git a/ts/fixtures/lang/refs/expected/refs.ts b/ts/fixtures/lang/refs/expected/refs.ts index d62c3f2c1..749277b09 100644 --- a/ts/fixtures/lang/refs/expected/refs.ts +++ b/ts/fixtures/lang/refs/expected/refs.ts @@ -572,7 +572,7 @@ export function taken(data: rt.ByteSlice, out: rt.ByteVec): void { const old2 = wide; wide = _34; wide = rt.iterToArray(rt.iterMap(rt.iterFilter(rt.iterSlice(old2), (_25: rt.u32): boolean => { - return _25 > ((b4 as rt.u32)); + return _25 > (b4 as rt.u32); }), (x3: rt.u32): rt.u32 => { return rt.u32Div(x3, 2); }), "next", 4, false, 4); @@ -809,7 +809,7 @@ export function elements(data: rt.ByteSlice, out: rt.ByteVec): void { if (_281 === rt.DONE) { break; } - _281[1].v = rt.u32Add(_281[1].v, (((_281[0] as rt.u32)) << 8) >>> 0); + _281[1].v = rt.u32Add(_281[1].v, ((_281[0] as rt.u32) << 8) >>> 0); } let nested = rt.None as rt.u8 | undefined | rt.None; l39: for (const b3 of rt.byteSliceView(data)) { @@ -1261,7 +1261,7 @@ export function toRefs(data: rt.ByteSlice, out: rt.ByteVec): void { } rt.byteVecPush(out, bytes.length & 0xff); let tail2: rt.u32[] = rt.iterToArray(rt.iterMap(rt.iterSlice(rt.byteSliceView(rt.byteSliceRange(data, 1))), (_2: rt.u8): rt.u32 => { - return (((_2 as rt.u32)) << 8) >>> 0; + return ((_2 as rt.u32) << 8) >>> 0; }), undefined, 4, true); while (tail2.length >= 1) { rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.u32ToBeBytes(tail2[0]))); diff --git a/ts/fixtures/lang/returns/expected/returns.ts b/ts/fixtures/lang/returns/expected/returns.ts index cedbd653e..02de99a11 100644 --- a/ts/fixtures/lang/returns/expected/returns.ts +++ b/ts/fixtures/lang/returns/expected/returns.ts @@ -326,7 +326,7 @@ export function wrapped(dataData: Uint8Array, dataStart: number, dataLen: number /** A number alone, past 2^53 from eight bytes. */ export function big(data: rt.ByteSlice): rt.u64 | undefined { if (!(data.length >= 8)) { - if (!((rt.byteSliceFirst(data) === 255))) { + if (!(rt.byteSliceFirst(data) === 255)) { out$u64.err = { tag: "Short", _0: rt.usizeSub(8, data.length) } as returns_Error.Error; return undefined; } @@ -1231,7 +1231,7 @@ export function optLast(dataData: Uint8Array, dataStart: number, dataLen: number export function optRest(dataData: Uint8Array, dataStart: number, dataLen: number): returns_Error.Error | undefined { if (dataLen !== 0) { const b: rt.u8 = dataData[dataStart]; - out$tuple2_Option_u16_ref_slice_u8.p_0 = thenSome$0b23a33(rt.u8Rem(b, 2) === 0, (((b as rt.u16)) << 8) & 0xffff); + out$tuple2_Option_u16_ref_slice_u8.p_0 = thenSome$0b23a33(rt.u8Rem(b, 2) === 0, ((b as rt.u16) << 8) & 0xffff); out$tuple2_Option_u16_ref_slice_u8.p_1Data = dataData; out$tuple2_Option_u16_ref_slice_u8.p_1Start = dataStart + 1; out$tuple2_Option_u16_ref_slice_u8.p_1Len = dataLen - 1; diff --git a/ts/fixtures/lang/rings/expected/rings.ts b/ts/fixtures/lang/rings/expected/rings.ts index b32a05ea5..70b832cda 100644 --- a/ts/fixtures/lang/rings/expected/rings.ts +++ b/ts/fixtures/lang/rings/expected/rings.ts @@ -13,7 +13,7 @@ export function bump$rings_Item_u8(self: rt.Place): void { } export function make$rings_Item_u32(b: rt.u8): rt.u32 { - return (((b as rt.u32)) << 12) >>> 0; + return ((b as rt.u32) << 12) >>> 0; } export function bump$rings_Item_u32(self: rt.Place): void { diff --git a/ts/fixtures/lang/separated/expected/separated.Below.ts b/ts/fixtures/lang/separated/expected/separated.Below.ts index 50ca1923e..f976bf337 100644 --- a/ts/fixtures/lang/separated/expected/separated.Below.ts +++ b/ts/fixtures/lang/separated/expected/separated.Below.ts @@ -23,7 +23,7 @@ export function test(self: Below, b: rt.u8): boolean { const _6: rt.RefCell = rt.refCellBorrowMut(self.log); rt.byteVecPush(_6.value, b); rt.refMutRelease(_6); - return ((b as rt.u16)) < self.bound; + return (b as rt.u16) < self.bound; } export function drop$ops_Drop(self: Below): void { diff --git a/ts/fixtures/lang/separated/expected/separated.ts b/ts/fixtures/lang/separated/expected/separated.ts index 1c574f1ad..41c1f4b23 100644 --- a/ts/fixtures/lang/separated/expected/separated.ts +++ b/ts/fixtures/lang/separated/expected/separated.ts @@ -204,7 +204,7 @@ export function separated(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): voi const _73: rt.RefCell = rt.refCellBorrowMut(log); rt.byteVecPush(_73.value, b4); rt.refMutRelease(_73); - return ((b4 as rt.u16)) < bound; + return (b4 as rt.u16) < bound; }; const testWords: (a0: rt.u16) => boolean = (_29: rt.u16): boolean => { const w: rt.u16 = _29; @@ -217,7 +217,7 @@ export function separated(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): voi const _63: rt.RefCell = rt.refCellBorrowMut(log); rt.byteVecPush(_63.value, p35.a ^ 51); rt.refMutRelease(_63); - return ((p35.a as rt.u16)) < bound; + return (p35.a as rt.u16) < bound; }; const testTexts: (a0: string) => boolean = (s: string): boolean => { const _67: rt.RefCell = rt.refCellBorrowMut(log); @@ -563,7 +563,7 @@ export function separated(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): voi const _610: rt.RefCell = rt.refCellBorrowMut(log); rt.byteVecPush(_610.value, t.data[t.start + 1]); rt.refMutRelease(_610); - return ((t.data[t.start] as rt.u16)) < bound; + return (t.data[t.start] as rt.u16) < bound; }; const iter15: rt.Iter = rt.iterSlice([false, true]); l133: while (true) { diff --git a/ts/fixtures/lang/shapes/expected/fmt.Fault.ts b/ts/fixtures/lang/shapes/expected/fmt.Fault.ts index 291155142..94c8558a9 100644 --- a/ts/fixtures/lang/shapes/expected/fmt.Fault.ts +++ b/ts/fixtures/lang/shapes/expected/fmt.Fault.ts @@ -70,7 +70,7 @@ function new_(data: rt.ByteSlice): Fault { return { tag: "Code", _0: (at(1) << 8) | at(2) } as Fault; } if (_3 === 2) { - return { tag: "TooLarge", size: (((((at(1) as rt.usize)) << 24) >>> 0) | at(2) as rt.usize) >>> 0, max: at(3) as rt.usize } as Fault; + return { tag: "TooLarge", size: ((((at(1) as rt.usize) << 24) >>> 0) | at(2) as rt.usize) >>> 0, max: at(3) as rt.usize } as Fault; } return { tag: "At", _0: { _0: at(1), _1: rt.i64Shl((at(2) << 24) >> 24 as rt.i64, 40) } } as Fault; } diff --git a/ts/fixtures/lang/shapes/expected/fmt.ts b/ts/fixtures/lang/shapes/expected/fmt.ts index a7f3b5ba1..0d0fe9527 100644 --- a/ts/fixtures/lang/shapes/expected/fmt.ts +++ b/ts/fixtures/lang/shapes/expected/fmt.ts @@ -407,7 +407,7 @@ export function written(data: rt.ByteSlice, out: rt.ByteVec): void { const _222: Noted.Noted = { _0: 2 }; const args20: rt.Fmt[] = [(f: rt.Formatter) => Noted.fmt$fmt_Display(_218, f), (f: rt.Formatter) => Noted.fmt$fmt_Display(_222, f)]; put(out, rt.fmtFormat([args20[0], "|", rt.fmtSpec({ align: ">", width: 6 }, args20[1])])); - if (!((data.length === 0))) { + if (!(data.length === 0)) { put(out, logged(log, data.data, data.start, data.length)); } const _241: rt.u8 = at(13); diff --git a/ts/fixtures/lang/shapes/expected/shapes.ts b/ts/fixtures/lang/shapes/expected/shapes.ts index 4a2717d9b..06bcd50eb 100644 --- a/ts/fixtures/lang/shapes/expected/shapes.ts +++ b/ts/fixtures/lang/shapes/expected/shapes.ts @@ -993,7 +993,7 @@ export function returnedNever(b: rt.u8, len: rt.usize): rt.u8 { /** A `return` of a `match` that guards, whose arms fall through to the next. */ export function guardedReturn(dataData: Uint8Array, dataStart: number, dataLen: number): rt.u8 { - if (!((dataLen === 0))) { + if (!(dataLen === 0)) { if (dataLen === 2) { const a: rt.u8 = dataData[dataStart]; const b: rt.u8 = dataData[dataStart + 1]; @@ -1267,7 +1267,7 @@ export function position$u8(itemsData: Uint8Array, itemsStart: number, itemsLen: if (_9 >= itemsLen) { rt.panic("index out of bounds: the len is " + itemsLen + " but the index is " + _9); } - if (!((itemsData[itemsStart + _9] === want))) { + if (!(itemsData[itemsStart + _9] === want)) { i = rt.usizeAdd(i, 1); } else { return i; @@ -1301,7 +1301,7 @@ export function patterns(data: rt.ByteSlice, out: rt.ByteVec): void { if (!(data.length === 1)) { if (!(data.length >= 2)) { rt.unreachable(undefined); - } else if (!((data.data[data.start] === data.data[data.start + (data.length - 1)]))) { + } else if (!(data.data[data.start] === data.data[data.start + (data.length - 1)])) { rt.byteVecPush(out, data.data[data.start] ^ data.data[data.start + 1]); rt.byteVecPush(out, (data.length - 2) & 0xff); } else { @@ -2184,7 +2184,7 @@ export function uninhabited(data: rt.ByteSlice, out: rt.ByteVec): void { rt.byteVecPush(out, calls); const pair: [rt.Result, Partial.Partial] = [counted(rt.place(() => calls, (value9) => calls = value9), a), { tag: "Real", _0: b } as Partial.Partial]; rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(Uint8Array.of((pair[0] as { ok: true; value: rt.u8 }).value, (pair[1] as { tag: "Real"; _0: rt.u8 })._0))); - const held: Parts.Parts = { left: rt.Ok(a), right: thenSome$0ztng9q(rt.u8Rem(b, 2) === 0, rt.Ok((((b as rt.u16)) << 4) & 0xffff)) }; + const held: Parts.Parts = { left: rt.Ok(a), right: thenSome$0ztng9q(rt.u8Rem(b, 2) === 0, rt.Ok(((b as rt.u16) << 4) & 0xffff)) }; const l: rt.u8 = (held.left as { ok: true; value: rt.u8 }).value; const right: rt.Result | undefined = held.right; if (right === undefined) { @@ -2343,7 +2343,7 @@ export function library(data: rt.ByteSlice, out: rt.ByteVec): void { return v.length & 0xff; })); const flag: boolean = rt.u8Rem(x, 3) === 0; - rt.byteVecPush(out, rt.u8Add(rt.u8Add(flag ? 1 : 0, ((flag ? 1 : 0)) & 0xff), ((flag ? 1 : 0)) & 0xff)); + rt.byteVecPush(out, rt.u8Add(rt.u8Add(flag ? 1 : 0, (flag ? 1 : 0) & 0xff), (flag ? 1 : 0) & 0xff)); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.u64ToBeBytes(flag ? 1 : 0))); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.u128ToBeBytes(flag ? 1 : 0))); rt.byteVecExtendFromSlice(out, rt.byteSliceFrom(rt.i64ToBeBytes(flag ? 1 : 0))); diff --git a/ts/fixtures/lang/shares/expected/shares.ts b/ts/fixtures/lang/shares/expected/shares.ts index 5a6b27815..8b0da8f4c 100644 --- a/ts/fixtures/lang/shares/expected/shares.ts +++ b/ts/fixtures/lang/shares/expected/shares.ts @@ -414,7 +414,7 @@ export function copies(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): void { const data2: rt.ByteSlice = rt.byteSliceRange(data, 0, rt.usizeRem(kind >> 3 as rt.usize, rt.usizeAdd(data.length, 1))); const source: [rt.u8, rt.u16][] = rt.iterToArray(rt.iterMap(rt.iterSlice(rt.byteSliceView(data2)), (_2: rt.u8): [rt.u8, rt.u16] => { const b: rt.u8 = _2; - return [b, (((b as rt.u16)) << 4) & 0xffff] as [rt.u8, rt.u16]; + return [b, ((b as rt.u16) << 4) & 0xffff] as [rt.u8, rt.u16]; }), undefined, 4, true); const fromRef: rt.Arc<[rt.u8, rt.u16][]> = new rt.Arc(rt.sliceRange(source, 0).map(copy$tuple2_u8_u16)); const fromVec: rt.Arc<[rt.u8, rt.u16][]> = new rt.Arc(rt.vecExact(source.map(copy$tuple2_u8_u16), 4)); @@ -646,7 +646,7 @@ export function generics(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): void rt.byteVecPush(out, option_unwrapOr$0r2bmpr(Shared.first$u8(bytes), 170)); counts$slice_u8(copy.items as rt.Arc, out); const wide: Shared.Shared = Shared.collected$u16_iter_Map_slice_Iter_u8_shares_generics_closure0(rt.iterMap(rt.iterSlice(rt.byteSliceView(data2)), (_2: rt.u8): rt.u16 => { - return (((_2 as rt.u16)) << 8) & 0xffff; + return ((_2 as rt.u16) << 8) & 0xffff; })); const twin: Shared.Shared = Shared.clone$Clone_u16(wide); counts$slice_u16(wide.items as rt.Arc, out); diff --git a/ts/fixtures/lang/singles/expected/singles.ts b/ts/fixtures/lang/singles/expected/singles.ts index 26ced3cae..97798179f 100644 --- a/ts/fixtures/lang/singles/expected/singles.ts +++ b/ts/fixtures/lang/singles/expected/singles.ts @@ -467,7 +467,7 @@ export function parses(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): void { const iterEnd: rt.i32 = 16; while (iterStart++ < iterEnd) { const x: rt.f32 = rt.f32FromBits((step(rt.place(() => state, (value) => state = value)) & 2147483647) >>> 0); - const half: rt.f64 = (((x as rt.f64)) + ((rt.f32NextUp(x) as rt.f64))) / 2.0; + const half: rt.f64 = ((x as rt.f64) + (rt.f32NextUp(x) as rt.f64)) / 2.0; const p: rt.usize = rt.u32Add(rt.u32Rem(step(rt.place(() => state, (value2) => state = value2)), 30), 8) as rt.usize; const args2: rt.Fmt[] = [(f: rt.Formatter) => rt.f64LowerExp(half, f), rt.fmtCount(p)]; one(rt.fmtFormat([rt.fmtSpec({ precision: rt.fmtCountOf(args2[1]) }, args2[0])]), out); diff --git a/ts/fixtures/lang/splits/expected/splits.ts b/ts/fixtures/lang/splits/expected/splits.ts index 1b090fe00..21812f066 100644 --- a/ts/fixtures/lang/splits/expected/splits.ts +++ b/ts/fixtures/lang/splits/expected/splits.ts @@ -165,7 +165,7 @@ export function splits(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): void { pair_1Len = _81Len; } rt.byteVecPush(out, pair_0Len & 0xff); - if (!((pair_1Len === 0))) { + if (!(pair_1Len === 0)) { const _224Len: number = pair_1Len; if (0 >= _224Len) { rt.panic("index out of bounds: the len is " + _224Len + " but the index is " + 0); diff --git a/ts/fixtures/lang/statics/expected/statics.Lock.ts b/ts/fixtures/lang/statics/expected/statics.Lock.ts index 273672f66..f4d6c7439 100644 --- a/ts/fixtures/lang/statics/expected/statics.Lock.ts +++ b/ts/fixtures/lang/statics/expected/statics.Lock.ts @@ -30,7 +30,7 @@ export function new$tuple2_u8_Rc_unit(): Lock<[rt.u8, rt.Arc]> { export function getOrInit$Rc_unit_statics_onces_closure6(self: Lock>, f: () => rt.Arc): rt.Arc { let _14: boolean = false; _14 = true; - if (!((self.once.v === true))) { + if (!(self.once.v === true)) { const slot: rt.Place> = self.value; _14 = false; const captured = f; @@ -50,7 +50,7 @@ export function getOrInit$Rc_unit_statics_onces_closure6(self: Lock>, f: () => rt.Arc): rt.Arc { let _14: boolean = false; _14 = true; - if (!((self.once.v === true))) { + if (!(self.once.v === true)) { const slot: rt.Place> = self.value; _14 = false; const captured = f; @@ -68,7 +68,7 @@ export function getOrInit$Rc_unit_statics_onces_closure7(self: Lock, f: () => Collector.Collector): Collector.Collector { - if (!((self.once.v === true))) { + if (!(self.once.v === true)) { const slot: Collector.Collector = self.value.v; const captured = f; rt.onceCall(self.once, (): undefined => { @@ -81,7 +81,7 @@ export function getOrInit$statics_Collector_statics_onces_closure5(self: Lock]>, f: () => [rt.u8, rt.Arc]): [rt.u8, rt.Arc] { let _14: boolean = false; _14 = true; - if (!((self.once.v === true))) { + if (!(self.once.v === true)) { const slot: [rt.u8, rt.Arc] = self.value.v; _14 = false; const captured = f; @@ -102,7 +102,7 @@ export function getOrInit$tuple2_u8_Rc_unit_statics_onces_closure8(self: Lock<[r export function getOrInit$tuple2_u8_Rc_unit_statics_onces_closure9(self: Lock<[rt.u8, rt.Arc]>, f: () => [rt.u8, rt.Arc]): [rt.u8, rt.Arc] { let _14: boolean = false; _14 = true; - if (!((self.once.v === true))) { + if (!(self.once.v === true)) { const slot: [rt.u8, rt.Arc] = self.value.v; _14 = false; const captured = f; diff --git a/ts/fixtures/lang/strs/expected/strs.ts b/ts/fixtures/lang/strs/expected/strs.ts index 244912e01..37dc487d7 100644 --- a/ts/fixtures/lang/strs/expected/strs.ts +++ b/ts/fixtures/lang/strs/expected/strs.ts @@ -70,7 +70,7 @@ export function strs(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): void { c = rt.iterToOption(it.nextBack()); } putChar(out, c); - if (!((c === undefined))) { + if (!(c === undefined)) { i = rt.usizeAdd(i, 1); } else { rt.byteVecPush(out, rt.iterCount(rt.strChars(s)) & 0xff); @@ -344,7 +344,7 @@ export function slices(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): void { if (_8 === 3) { const iter3: rt.Iter = rt.iterSuccessors(s, (path: string): string | undefined => { const _73: string = path; - return then$0havnzo(!((path.length === 0)), (): string => { + return then$0havnzo(!(path.length === 0), (): string => { return option_mapOr$147z9gi(rt.strRfind(_73, "/"), "", (slash: rt.usize): string => { return rt.strSlice(_73, 0, slash); }); @@ -412,7 +412,7 @@ export function digit(c: rt.char): boolean { /** `/` separates parts, and `\` escapes a `/` or `\` within one. */ export function unescape(path: string): string[] { - if (!((path.length === 0))) { + if (!(path.length === 0)) { const parts: string[] = []; let part: string = ""; const chars: rt.Iter = rt.strChars(path); @@ -1251,7 +1251,7 @@ export function iters(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): void { const args4: rt.Fmt[] = [(f: rt.Formatter) => rt.fmtPad(f, p4)]; return rt.fmtFormat([args4[0], args4[0]]); }), (p5: string): boolean => { - return !((p5.length === 0)); + return !(p5.length === 0); }))); rt.iterEmpty(); put(out, rt.stringFromStrings(rt.iterEmpty() as rt.Iter)); diff --git a/ts/fixtures/lang/tuples/expected/tuples.ts b/ts/fixtures/lang/tuples/expected/tuples.ts index 4a5214c0b..523a6074d 100644 --- a/ts/fixtures/lang/tuples/expected/tuples.ts +++ b/ts/fixtures/lang/tuples/expected/tuples.ts @@ -72,7 +72,7 @@ export function tuples(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): void { */ export function ones(data: rt.ByteSlice, out: rt.ByteVec): void { rt.iterExtendBytes(out, rt.iterFlatMap(rt.iterSlice(rt.tupleExtendOne([[]] as [rt.u16[]], rt.iterMap(rt.iterSlice(rt.byteSliceView(data)), (_2: rt.u8): [rt.u16] => { - return [(((_2 as rt.u16)) << 4) & 0xffff] as [rt.u16]; + return [((_2 as rt.u16) << 4) & 0xffff] as [rt.u16]; }), (c, items) => rt.iterExtend(c, items, undefined, 2, true))[0]), (n: rt.u16): Uint8Array => { return rt.u16ToBeBytes(n).reverse(); }, (value: Uint8Array) => rt.iterSlice(value), false, 2), undefined, true); @@ -187,7 +187,7 @@ export function pairs(data: rt.ByteSlice, out: rt.ByteVec): void { export function triples(data: rt.ByteSlice, out: rt.ByteVec): void { const _7: rt.Iter<[rt.u8, rt.u16, rt.char]> = rt.iterMap(rt.iterSlice(rt.byteSliceView(data)), (_2: rt.u8): [rt.u8, rt.u16, rt.char] => { const b: rt.u8 = _2; - return [b, (((b as rt.u16)) << 8) & 0xffff, rt.u8Add(97, rt.u8Rem(b, 26)) as rt.char] as [rt.u8, rt.u16, rt.char]; + return [b, ((b as rt.u16) << 8) & 0xffff, rt.u8Add(97, rt.u8Rem(b, 26)) as rt.char] as [rt.u8, rt.u16, rt.char]; }); const _6: [rt.ByteVec, rt.VecDeque, string] = rt.tupleExtend([new rt.ByteVec(), rt.dequeNew(2) as rt.VecDeque, ""] as [rt.ByteVec, rt.VecDeque, string], _7, [rt.byteVecPart(), rt.dequePart(), rt.STRING_CHARS_PART]); const v: rt.ByteVec = _6[0]; @@ -327,13 +327,13 @@ export function extended(data: rt.ByteSlice, out: rt.ByteVec): void { export function borrowed(data: rt.ByteSlice, out: rt.ByteVec): void { const points: Spot.Spot[] = rt.iterToArray(rt.iterMap(rt.iterSlice(rt.byteSliceView(data)), (_2: rt.u8): Spot.Spot => { const b: rt.u8 = _2; - return { x: b, y: (((b as rt.u16)) << 2) & 0xffff }; + return { x: b, y: ((b as rt.u16) << 2) & 0xffff }; }), undefined, 4, true); const t: [rt.ByteVec, Spot.Spot[], rt.HashMap, string] = [new rt.ByteVec(), [], rt.hashNew() as rt.HashMap, ""]; const marks: rt.char[] = [122, 233]; const _10: rt.Iter<[rt.u8, Spot.Spot, [rt.u8, rt.u8], rt.char]> = rt.iterMap(rt.iterZip(rt.iterSlice(rt.byteSliceView(data)), rt.iterSlice(points), [false, false]), (_23: [rt.u8, Spot.Spot]): [rt.u8, Spot.Spot, [rt.u8, rt.u8], rt.char] => { const _54: [rt.u8, rt.u8] = [_23[0], _23[0]]; - const _72: rt.usize = ((_23[0] & 1)) as rt.usize; + const _72: rt.usize = (_23[0] & 1) as rt.usize; if (!(_72 < 2)) { rt.panic("index out of bounds: the len is " + 2 + " but the index is " + _72); } @@ -626,7 +626,7 @@ export function own(data: rt.ByteSlice, out: rt.ByteVec): void { calls(out); const _47: rt.Iter<[rt.u8, rt.u16]> = rt.iterMap(rt.iterSlice(rt.byteSliceView(rt.byteVecSlice(data2))), (_210: rt.u8): [rt.u8, rt.u16] => { const b9: rt.u8 = _210; - return [b9, (((b9 as rt.u16)) << 3) & 0xffff] as [rt.u8, rt.u16]; + return [b9, ((b9 as rt.u16) << 3) & 0xffff] as [rt.u8, rt.u16]; }); const _46: [Tally.Tally, rt.u16[]] = rt.tupleExtend([Tally.default$Default(), []] as [Tally.Tally, rt.u16[]], _47, [rt.ownPart(Tally.extend$iter_Extend_u8_Option_u8 as (a0: Tally.Tally, a1: rt.u8 | undefined) => undefined), rt.vecPart(2)]); const t3: Tally.Tally = _46[0]; diff --git a/ts/fixtures/lang/wrappers/expected/wrappers.ts b/ts/fixtures/lang/wrappers/expected/wrappers.ts index b100dee97..1d5502ad3 100644 --- a/ts/fixtures/lang/wrappers/expected/wrappers.ts +++ b/ts/fixtures/lang/wrappers/expected/wrappers.ts @@ -342,7 +342,7 @@ export function wrappers(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): void rt.byteVecPush(out, rt.btreeLen(rt.btreeExtendKeys(rt.btreeNew(rt.cmp) as rt.BTreeSet, rt.iterBorrow(_166), true, undefined, undefined, 8, true)) & 0xff); bounds$ops_RangeInclusive_u64(out, keyed); const queued: rt.RangeInclusive = new rt.RangeInclusive(lo, hi, rt.u64Step); - rt.byteVecPush(out, ((rt.dequeFromVec(rt.iterToArray(rt.iterBorrow(queued), undefined, 8, true), 8) as rt.VecDeque)).n & 0xff); + rt.byteVecPush(out, (rt.dequeFromVec(rt.iterToArray(rt.iterBorrow(queued), undefined, 8, true), 8) as rt.VecDeque).n & 0xff); bounds$ops_RangeInclusive_u64(out, queued); const hashed: rt.RangeInclusive = new rt.RangeInclusive(lo, hi, rt.u64Step); const _186: rt.RangeInclusive = hashed; diff --git a/ts/fixtures/lang/zeros/expected/zeros.ts b/ts/fixtures/lang/zeros/expected/zeros.ts index c1f3ddf9b..5cbad34a8 100644 --- a/ts/fixtures/lang/zeros/expected/zeros.ts +++ b/ts/fixtures/lang/zeros/expected/zeros.ts @@ -78,7 +78,7 @@ export function zeros(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): void { const _13: Pair.Pair = Pair.clone$Clone(pair()); const _16: Unit.Unit = made$zeros_Unit(); phantom$u8(); - rt.byteVecPush(out, ((Unit.eq$cmp_PartialEq(_11, {}) ? 1 : 0)) | ((((Unit.eq$cmp_PartialEq(_13._0, _16) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (Unit.eq$cmp_PartialEq(_11, {}) ? 1 : 0) | (((Unit.eq$cmp_PartialEq(_13._0, _16) ? 1 : 0) << 1) & 0xff)); const _40: One.One = One.clone$Clone("Only" as One.One); const args2: rt.Fmt[] = [(f: rt.Formatter) => Unit.fmt$fmt_Debug(_11, f), (f: rt.Formatter) => One.fmt$fmt_Debug(_40, f)]; rt.iterExtendBytes(out, rt.strBytes(rt.fmtFormat([args2[0], " ", args2[1]])), undefined, true); @@ -310,10 +310,10 @@ export function impls(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): void { const part2 = _76[1]; const a: Tagged.Tagged = part; const b: Tagged.Tagged = part2; - rt.byteVecPush(out, (Tagged.cmp$cmp_Ord_String(a, b) & 0xff) | ((((Tagged.eq$cmp_PartialEq_String(a, b) ? 1 : 0)) << 2) & 0xff) | ((((Tagged.partialCmp$cmp_PartialOrd_String(a, b) === Tagged.cmp$cmp_Ord_String(a, b) as rt.Ordering | undefined ? 1 : 0)) << 3) & 0xff)); + rt.byteVecPush(out, (Tagged.cmp$cmp_Ord_String(a, b) & 0xff) | (((Tagged.eq$cmp_PartialEq_String(a, b) ? 1 : 0) << 2) & 0xff) | (((Tagged.partialCmp$cmp_PartialOrd_String(a, b) === Tagged.cmp$cmp_Ord_String(a, b) as rt.Ordering | undefined ? 1 : 0) << 3) & 0xff)); rt.byteVecPush(out, Tagged.cmp$cmp_Ord_String(a, b) === 0 === rt.u64Eq(hash$zeros_Tagged_String(a), hash$zeros_Tagged_String(b)) ? 1 : 0); } - rt.byteVecPush(out, ((true ? 1 : 0)) | ((((true ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (true ? 1 : 0) | (((true ? 1 : 0) << 1) & 0xff)); rt.byteVecPush(out, rt.cmpNothing(undefined, undefined) & 0xff); rt.byteVecPush(out, rt.cmpNothing(undefined, undefined) & 0xff); } else if (_7 === 2) { @@ -367,13 +367,13 @@ export function keys(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): void { const tree: rt.BTreeSet = rt.btreeNew(rt.cmpNothing) as rt.BTreeSet; for (const _10 of rt.byteSliceView(data)) { if (!((_10 & 1) === 0)) { - rt.byteVecPush(out, ((rt.hashDelete(hash, undefined) ? 1 : 0)) | ((((rt.btreeDelete(tree, undefined) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (rt.hashDelete(hash, undefined) ? 1 : 0) | (((rt.btreeDelete(tree, undefined) ? 1 : 0) << 1) & 0xff)); } else { - rt.byteVecPush(out, ((rt.hashAdd(hash, undefined) ? 1 : 0)) | ((((rt.btreeAdd(tree, undefined) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (rt.hashAdd(hash, undefined) ? 1 : 0) | (((rt.btreeAdd(tree, undefined) ? 1 : 0) << 1) & 0xff)); } rt.byteVecPush(out, (rt.hashLen(hash) & 0xff) | (((rt.btreeLen(tree) & 0xff) << 4) & 0xff)); } - rt.byteVecPush(out, ((rt.hashContains(hash, undefined) ? 1 : 0)) | ((((rt.btreeContains(tree, undefined) ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (rt.hashContains(hash, undefined) ? 1 : 0) | (((rt.btreeContains(tree, undefined) ? 1 : 0) << 1) & 0xff)); rt.byteVecPush(out, rt.btreeFirstKey(tree, false, rt.None) === rt.btreeFirstKey(tree, true, rt.None) ? 1 : 0); } else if (_4 === 1) { const map: rt.HashMap = rt.hashNew() as rt.HashMap; @@ -484,9 +484,9 @@ export function unread(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): void { const lock: Lock.Lock = Lock.new$u32(option_map$1qp1ym6(rt.byteSliceFirst(data), (_2: rt.u8): rt.u32 => { return _2 as rt.u32; })); - rt.byteVecPush(out, ((((_22: undefined): boolean => { + rt.byteVecPush(out, (((_22: undefined): boolean => { return true; - })(([undefined] as [undefined])[0]) ? 1 : 0)) | ((((true ? 1 : 0)) << 1) & 0xff)); + })(([undefined] as [undefined])[0]) ? 1 : 0) | (((true ? 1 : 0) << 1) & 0xff)); drop$zeros_Lock_u32(lock); rt.iterExtendBytes(out, rt.iterSlice(rt.u32ToBeBytes(rt.atomicLoad(LOG, 0))), undefined, true); } @@ -519,12 +519,12 @@ export function writes(kind: rt.u8, _dataData: Uint8Array, _dataStart: number, d leaked(3); leaked(4); leaked(6); - rt.byteVecPush(out, ((true ? 1 : 0)) | ((n << 1) & 0xff)); + rt.byteVecPush(out, (true ? 1 : 0) | ((n << 1) & 0xff)); } else if (_9 === 1) { rt.byteVecPush(out, true ? 1 : 0); unit(); Unit.default$Default(); - rt.byteVecPush(out, ((Unit.eq$cmp_PartialEq({}, Unit.default$Default()) ? 1 : 0)) | ((n << 1) & 0xff)); + rt.byteVecPush(out, (Unit.eq$cmp_PartialEq({}, Unit.default$Default()) ? 1 : 0) | ((n << 1) & 0xff)); rt.byteVecPush(out, Defaulted.eq$cmp_PartialEq({}, Defaulted.default$Default()) ? 1 : 0); } else if (_9 === 2) { raw(1); @@ -534,7 +534,7 @@ export function writes(kind: rt.u8, _dataData: Uint8Array, _dataStart: number, d const q: Unit.Unit = {}; unit(); const _96: Unit.Unit = {}; - rt.byteVecPush(out, ((Unit.eq$cmp_PartialEq(q, _96) ? 1 : 0)) | ((n << 1) & 0xff)); + rt.byteVecPush(out, (Unit.eq$cmp_PartialEq(q, _96) ? 1 : 0) | ((n << 1) & 0xff)); } else if (_9 === 3) { const _113: rt.Cell = new rt.Cell(undefined); rt.cellReplace(_113, undefined); @@ -552,12 +552,12 @@ export function writes(kind: rt.u8, _dataData: Uint8Array, _dataStart: number, d let o: undefined | rt.None = thenSome$1j8foe9(n > 0, undefined); const old2: undefined | rt.None = o; o = undefined; - rt.byteVecPush(out, ((old2 !== rt.None ? 1 : 0)) | ((((o !== rt.None ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (old2 !== rt.None ? 1 : 0) | (((o !== rt.None ? 1 : 0) << 1) & 0xff)); const taken2: undefined | rt.None = o; o = rt.None; const taken: undefined | rt.None = taken2; o = rt.None; - rt.byteVecPush(out, ((taken !== rt.None ? 1 : 0)) | ((((o !== rt.None ? 1 : 0)) << 1) & 0xff)); + rt.byteVecPush(out, (taken !== rt.None ? 1 : 0) | (((o !== rt.None ? 1 : 0) << 1) & 0xff)); let x: rt.u8 = n; x = 1; x = 0; diff --git a/ts/fixtures/reject/spans.toml b/ts/fixtures/reject/spans.toml new file mode 100644 index 000000000..033dae557 --- /dev/null +++ b/ts/fixtures/reject/spans.toml @@ -0,0 +1,4 @@ +# Rust that translates, which the stand-in `tsc` the test puts on `PATH` fails at each +# `return` and each argument: `spans.txt` holds where each is reported. +package = "reject-fixture" +roots = ["spans::tail", "spans::early", "spans::method", "spans::chained"] diff --git a/ts/fixtures/reject/spans.txt b/ts/fixtures/reject/spans.txt new file mode 100644 index 000000000..859b87e31 --- /dev/null +++ b/ts/fixtures/reject/spans.txt @@ -0,0 +1,37 @@ +fixtures/reject/src/spans.rs:chained+1:2: spans.ts:23:2 doesn't type-check, which is a bug in rust2-ts: error TS2322: a return +fixtures/reject/src/spans.rs:chained+1:4: spans.ts:23:55 doesn't type-check, which is a bug in rust2-ts: error TS2345: an argument, rt.iterSlice(v) +fixtures/reject/src/spans.rs:chained+1:4: spans.ts:23:68 doesn't type-check, which is a bug in rust2-ts: error TS2345: an argument, v +fixtures/reject/src/spans.rs:chained+1:11: spans.ts:23:44 doesn't type-check, which is a bug in rust2-ts: error TS2345: an argument, rt.iterMap(rt.iterSlice(v), (x: rt.u32): rt.u32 => { +fixtures/reject/src/spans.rs:chained+1:11: spans.ts:23:72 doesn't type-check, which is a bug in rust2-ts: error TS2345: an argument, (x: rt.u32): rt.u32 => { +fixtures/reject/src/spans.rs:chained+1:19: spans.ts:24:3 doesn't type-check, which is a bug in rust2-ts: error TS2322: a return +fixtures/reject/src/spans.rs:chained+1:21: spans.ts:24:29 doesn't type-check, which is a bug in rust2-ts: error TS2345: an argument, x +fixtures/reject/src/spans.rs:chained+1:38: spans.ts:23:33 doesn't type-check, which is a bug in rust2-ts: error TS2345: an argument, rt.iterMax(rt.iterMap(rt.iterSlice(v), (x: rt.u32): rt.u32 => { +fixtures/reject/src/spans.rs:chained+1:38: spans.ts:25:6 doesn't type-check, which is a bug in rust2-ts: error TS2345: an argument, rt.lt +fixtures/reject/src/spans.rs:chained+1:44: spans.ts:25:14 doesn't type-check, which is a bug in rust2-ts: error TS2345: an argument, 0 +fixtures/reject/src/spans.rs:early+2:10: spans.ts:15:2 doesn't type-check, which is a bug in rust2-ts: error TS2322: a return +fixtures/reject/src/spans.rs:early+2:12: spans.ts:15:26 doesn't type-check, which is a bug in rust2-ts: error TS2345: an argument, a +fixtures/reject/src/spans.rs:early+2:12: spans.ts:15:29 doesn't type-check, which is a bug in rust2-ts: error TS2345: an argument, 2 +fixtures/reject/src/spans.rs:early+2:12: spans.ts:15:32 doesn't type-check, which is a bug in rust2-ts: error TS2345: an argument, 32 +fixtures/reject/src/spans.rs:early+2:12: spans.ts:15:36 doesn't type-check, which is a bug in rust2-ts: error TS2345: an argument, false +fixtures/reject/src/spans.rs:early+4:2: spans.ts:13:3 doesn't type-check, which is a bug in rust2-ts: error TS2322: a return +fixtures/reject/src/spans.rs:early+4:4: spans.ts:13:26 doesn't type-check, which is a bug in rust2-ts: error TS2345: an argument, a +fixtures/reject/src/spans.rs:early+4:4: spans.ts:13:29 doesn't type-check, which is a bug in rust2-ts: error TS2345: an argument, 32 +fixtures/reject/src/spans.rs:early+4:4: spans.ts:13:33 doesn't type-check, which is a bug in rust2-ts: error TS2345: an argument, false +fixtures/reject/src/spans.rs:impl Meter+2:3: spans.Meter.ts:10:19 doesn't type-check, which is a bug in rust2-ts: error TS2345: an argument, self.reads[rt.idx(self.reads, at)] +fixtures/reject/src/spans.rs:impl Meter+2:3: spans.Meter.ts:10:2 doesn't type-check, which is a bug in rust2-ts: error TS2322: a return +fixtures/reject/src/spans.rs:impl Meter+2:3: spans.Meter.ts:10:37 doesn't type-check, which is a bug in rust2-ts: error TS2345: an argument, self.reads +fixtures/reject/src/spans.rs:impl Meter+2:3: spans.Meter.ts:10:49 doesn't type-check, which is a bug in rust2-ts: error TS2345: an argument, at +fixtures/reject/src/spans.rs:impl Meter+2:3: spans.Meter.ts:10:55 doesn't type-check, which is a bug in rust2-ts: error TS2345: an argument, by +fixtures/reject/src/spans.rs:method+1:2: spans.ts:19:2 doesn't type-check, which is a bug in rust2-ts: error TS2322: a return +fixtures/reject/src/spans.rs:method+1:4: spans.ts:19:22 doesn't type-check, which is a bug in rust2-ts: error TS2345: an argument, m +fixtures/reject/src/spans.rs:method+1:13: spans.ts:19:25 doesn't type-check, which is a bug in rust2-ts: error TS2345: an argument, rt.u32WrappingAdd(a, 1) +fixtures/reject/src/spans.rs:method+1:13: spans.ts:19:43 doesn't type-check, which is a bug in rust2-ts: error TS2345: an argument, a +fixtures/reject/src/spans.rs:method+1:13: spans.ts:19:46 doesn't type-check, which is a bug in rust2-ts: error TS2345: an argument, 1 +fixtures/reject/src/spans.rs:method+1:30: spans.ts:19:50 doesn't type-check, which is a bug in rust2-ts: error TS2345: an argument, rt.usizeSub(m.reads.length, 1) +fixtures/reject/src/spans.rs:method+1:30: spans.ts:19:78 doesn't type-check, which is a bug in rust2-ts: error TS2345: an argument, 1 +fixtures/reject/src/spans.rs:method+1:38: spans.ts:19:62 doesn't type-check, which is a bug in rust2-ts: error TS2345: an argument, m.reads.length +fixtures/reject/src/spans.rs:tail+2:2: spans.ts:8:2 doesn't type-check, which is a bug in rust2-ts: error TS2322: a return +fixtures/reject/src/spans.rs:tail+2:2: spans.ts:8:56 doesn't type-check, which is a bug in rust2-ts: error TS2345: an argument, b +fixtures/reject/src/spans.rs:tail+2:4: spans.ts:8:19 doesn't type-check, which is a bug in rust2-ts: error TS2345: an argument, rt.u32WrappingMul((a ^ b) >>> 0, a) +fixtures/reject/src/spans.rs:tail+2:4: spans.ts:8:37 doesn't type-check, which is a bug in rust2-ts: error TS2345: an argument, (a ^ b) >>> 0 +fixtures/reject/src/spans.rs:tail+2:4: spans.ts:8:52 doesn't type-check, which is a bug in rust2-ts: error TS2345: an argument, a diff --git a/ts/fixtures/reject/src/lib.rs b/ts/fixtures/reject/src/lib.rs index c607cb1e6..cd0bca5ba 100644 --- a/ts/fixtures/reject/src/lib.rs +++ b/ts/fixtures/reject/src/lib.rs @@ -18,6 +18,7 @@ mod parts; mod places; mod pointers; mod rebound; +mod spans; mod statics; mod strs; mod values; diff --git a/ts/fixtures/reject/src/spans.rs b/ts/fixtures/reject/src/spans.rs new file mode 100644 index 000000000..dc61b0630 --- /dev/null +++ b/ts/fixtures/reject/src/spans.rs @@ -0,0 +1,32 @@ +//! Rust that translates, for the stand-in `tsc` of `spans.toml`, which fails each `return` +//! and each argument, to be reported at the Rust each comes from. + +pub struct Meter { + pub reads: Vec, +} + +impl Meter { + pub fn scaled(&self, by: u32, at: usize) -> u32 { + self.reads[at] * by + } +} + +pub fn tail(a: u32, b: u32) -> u32 { + let c = a ^ b; + c.wrapping_mul(a) + b +} + +pub fn early(a: u32) -> u32 { + if a > 3 { + return a.rotate_left(2); + } + a.count_ones() +} + +pub fn method(m: &Meter, a: u32) -> u32 { + m.scaled(a.wrapping_add(1), m.reads.len() - 1) +} + +pub fn chained(v: &[u32]) -> u32 { + v.iter().map(|x| x.leading_zeros()).max().unwrap_or(0) +} diff --git a/ts/fixtures/stock/expected/buf.Pieces.ts b/ts/fixtures/stock/expected/buf.Pieces.ts index 2378ff0b1..d727d988d 100644 --- a/ts/fixtures/stock/expected/buf.Pieces.ts +++ b/ts/fixtures/stock/expected/buf.Pieces.ts @@ -26,7 +26,7 @@ function new_(inputData: Uint8Array, inputStart: number, inputLen: number, cut: } const parts: rt.ByteVec[] = [rt.byteSliceToByteVec(new rt.ByteSlice(inputData, inputStart, cut)), rt.byteSliceToByteVec(new rt.ByteSlice(inputData, inputStart + cut, inputLen - cut))]; rt.vecRetain(parts, (part: rt.ByteVec): boolean => { - return !((part.length === 0)); + return !(part.length === 0); }); return { parts, at: 0 }; } diff --git a/ts/fixtures/stock/expected/buf.ts b/ts/fixtures/stock/expected/buf.ts index 681eed75f..fbce26dfe 100644 --- a/ts/fixtures/stock/expected/buf.ts +++ b/ts/fixtures/stock/expected/buf.ts @@ -91,7 +91,7 @@ export function bytesMut(data: rt.ByteSlice, out: rt.ByteVec): void { } else if (_20 === 14) { rt.bytesMutPutFill(buf, n & 0xff, rt.usizeRem(n, 9)); } else if (_20 === 15) { - if (!((buf.length === 0))) { + if (!(buf.length === 0)) { const at: rt.usize = rt.usizeRem(n, buf.length); const _136: rt.ByteSlice = rt.bytesMutView(buf); rt.idx(_136, at); @@ -461,19 +461,19 @@ export function read$bytes_Bytes(buf: rt.Place, n: rt.usize): rt.u return _3(part4); } if (_4 === 0) { - return ((rt.bytesReadWord(buf, 1, false) as rt.u8)) as rt.u128; + return (rt.bytesReadWord(buf, 1, false) as rt.u8) as rt.u128; } if (_4 === 1) { return rt.u128Cast((rt.bytesReadWord(buf, 1, false) << 24) >> 24 as rt.i8); } if (_4 === 2) { - return ((rt.bytesReadWord(buf, 2, false) as rt.u16)) as rt.u128; + return (rt.bytesReadWord(buf, 2, false) as rt.u16) as rt.u128; } if (_4 === 3) { return rt.u128Cast((rt.bytesReadWord(buf, 2, true) << 16) >> 16 as rt.i16); } if (_4 === 4) { - return ((rt.bytesReadWord(buf, 4, true) as rt.u32)) as rt.u128; + return (rt.bytesReadWord(buf, 4, true) as rt.u32) as rt.u128; } if (_4 === 5) { return rt.u128Cast((rt.bytesReadWord(buf, 4, false) | 0) as rt.i32); @@ -569,19 +569,19 @@ export function read$bytes_BytesMut(buf: rt.BytesMut, n: rt.usize): rt.u128 { return _3(part4); } if (_4 === 0) { - return ((rt.bytesMutReadWord(buf, 1, false) as rt.u8)) as rt.u128; + return (rt.bytesMutReadWord(buf, 1, false) as rt.u8) as rt.u128; } if (_4 === 1) { return rt.u128Cast((rt.bytesMutReadWord(buf, 1, false) << 24) >> 24 as rt.i8); } if (_4 === 2) { - return ((rt.bytesMutReadWord(buf, 2, false) as rt.u16)) as rt.u128; + return (rt.bytesMutReadWord(buf, 2, false) as rt.u16) as rt.u128; } if (_4 === 3) { return rt.u128Cast((rt.bytesMutReadWord(buf, 2, true) << 16) >> 16 as rt.i16); } if (_4 === 4) { - return ((rt.bytesMutReadWord(buf, 4, true) as rt.u32)) as rt.u128; + return (rt.bytesMutReadWord(buf, 4, true) as rt.u32) as rt.u128; } if (_4 === 5) { return rt.u128Cast((rt.bytesMutReadWord(buf, 4, false) | 0) as rt.i32); @@ -1873,19 +1873,19 @@ export function read$ref_slice_u8(buf: rt.Place, n: rt.usize): rt. return _3(part4); } if (_4 === 0) { - return ((rt.bytesReadWord(buf, 1, false) as rt.u8)) as rt.u128; + return (rt.bytesReadWord(buf, 1, false) as rt.u8) as rt.u128; } if (_4 === 1) { return rt.u128Cast((rt.bytesReadWord(buf, 1, false) << 24) >> 24 as rt.i8); } if (_4 === 2) { - return ((rt.bytesReadWord(buf, 2, false) as rt.u16)) as rt.u128; + return (rt.bytesReadWord(buf, 2, false) as rt.u16) as rt.u128; } if (_4 === 3) { return rt.u128Cast((rt.bytesReadWord(buf, 2, true) << 16) >> 16 as rt.i16); } if (_4 === 4) { - return ((rt.bytesReadWord(buf, 4, true) as rt.u32)) as rt.u128; + return (rt.bytesReadWord(buf, 4, true) as rt.u32) as rt.u128; } if (_4 === 5) { return rt.u128Cast((rt.bytesReadWord(buf, 4, false) | 0) as rt.i32); @@ -2414,7 +2414,7 @@ export function writes(dataData: Uint8Array, dataStart: number, dataLen: number, rt.byteVecPush(out, rt.eqBytes(boxedVec, throughVec) ? 1 : 0); rt.byteVecPush(out, rt.byteSliceEq(rt.bytesMutView(boxedBuf), rt.bytesMutView(throughBuf)) ? 1 : 0); rt.byteVecPush(out, rt.byteSliceEq(rt.byteVecSlice(vec), rt.bytesMutView(buf)) ? 1 : 0); - rt.byteVecPush(out, ((0x7fffffff - vec.length as rt.usize)) === 0x7fffffff - buf.length as rt.usize ? 1 : 0); + rt.byteVecPush(out, (0x7fffffff - vec.length as rt.usize) === 0x7fffffff - buf.length as rt.usize ? 1 : 0); rt.byteVecPush(out, buf.length < 0x7fffffff ? 1 : 0); rt.byteVecExtendFromSlice(out, rt.byteVecSlice(vec)); } @@ -2494,7 +2494,7 @@ export function writeAll$Vec_u8(buf: rt.ByteVec, dataData: Uint8Array, dataStart const _65: rt.usize = rt.usizeRem(n2 as rt.usize, 10); rt.byteVecPutInt(buf, rt.u64ToBeBytes(v), _65, true); } else { - rt.byteVecPutBytes(buf, rt.f64ToBeBytes(((n2 as rt.f64)) / 3.0), false); + rt.byteVecPutBytes(buf, rt.f64ToBeBytes((n2 as rt.f64) / 3.0), false); } } const _71: rt.u8 = rt.u8Add(buf.length < 0x7fffffff ? 1 : 0, rt.usizeRem(remainingMut$bytes_BufMut_mut_Vec_u8(buf), 7) & 0xff); @@ -2576,7 +2576,7 @@ export function writeAll$boxed_Box_Vec_u8(buf: rt.Place, dataData: U const _65: rt.usize = rt.usizeRem(n2 as rt.usize, 10); rt.byteVecPutInt(buf.v, rt.u64ToBeBytes(v), _65, true); } else { - rt.byteVecPutBytes(buf.v, rt.f64ToBeBytes(((n2 as rt.f64)) / 3.0), false); + rt.byteVecPutBytes(buf.v, rt.f64ToBeBytes((n2 as rt.f64) / 3.0), false); } } const _71: rt.u8 = rt.u8Add(buf.v.length < 0x7fffffff ? 1 : 0, rt.usizeRem(remainingMut$bytes_BufMut_mut_boxed_Box_Vec_u8(buf), 7) & 0xff); @@ -2658,7 +2658,7 @@ export function writeAll$boxed_Box_bytes_BytesMut(buf: rt.Place, da const _65: rt.usize = rt.usizeRem(n2 as rt.usize, 10); rt.bytesMutPutInt(buf.v, rt.u64ToBeBytes(v), _65, true); } else { - rt.bytesMutPutBytes(buf.v, rt.f64ToBeBytes(((n2 as rt.f64)) / 3.0), false); + rt.bytesMutPutBytes(buf.v, rt.f64ToBeBytes((n2 as rt.f64) / 3.0), false); } } const _71: rt.u8 = rt.u8Add(buf.v.length < 0x7fffffff ? 1 : 0, rt.usizeRem(remainingMut$bytes_BufMut_mut_boxed_Box_bytes_BytesMut(buf), 7) & 0xff); @@ -2740,7 +2740,7 @@ export function writeAll$bytes_BytesMut(buf: rt.BytesMut, dataData: Uint8Array, const _65: rt.usize = rt.usizeRem(n2 as rt.usize, 10); rt.bytesMutPutInt(buf, rt.u64ToBeBytes(v), _65, true); } else { - rt.bytesMutPutBytes(buf, rt.f64ToBeBytes(((n2 as rt.f64)) / 3.0), false); + rt.bytesMutPutBytes(buf, rt.f64ToBeBytes((n2 as rt.f64) / 3.0), false); } } const _71: rt.u8 = rt.u8Add(buf.length < 0x7fffffff ? 1 : 0, rt.usizeRem(remainingMut$bytes_BufMut_mut_bytes_BytesMut(buf), 7) & 0xff); @@ -2822,7 +2822,7 @@ export function writeAll$mut_Vec_u8(buf: rt.Place, dataData: Uint8Ar const _65: rt.usize = rt.usizeRem(n2 as rt.usize, 10); rt.byteVecPutInt(buf.v, rt.u64ToBeBytes(v), _65, true); } else { - rt.byteVecPutBytes(buf.v, rt.f64ToBeBytes(((n2 as rt.f64)) / 3.0), false); + rt.byteVecPutBytes(buf.v, rt.f64ToBeBytes((n2 as rt.f64) / 3.0), false); } } const _71: rt.u8 = rt.u8Add(buf.v.length < 0x7fffffff ? 1 : 0, rt.usizeRem(remainingMut$bytes_BufMut_mut_mut_Vec_u8(buf), 7) & 0xff); @@ -2904,7 +2904,7 @@ export function writeAll$mut_bytes_BytesMut(buf: rt.Place, dataData const _65: rt.usize = rt.usizeRem(n2 as rt.usize, 10); rt.bytesMutPutInt(buf.v, rt.u64ToBeBytes(v), _65, true); } else { - rt.bytesMutPutBytes(buf.v, rt.f64ToBeBytes(((n2 as rt.f64)) / 3.0), false); + rt.bytesMutPutBytes(buf.v, rt.f64ToBeBytes((n2 as rt.f64) / 3.0), false); } } const _71: rt.u8 = rt.u8Add(buf.v.length < 0x7fffffff ? 1 : 0, rt.usizeRem(remainingMut$bytes_BufMut_mut_mut_bytes_BytesMut(buf), 7) & 0xff); diff --git a/ts/fixtures/stock/expected/harness.ts b/ts/fixtures/stock/expected/harness.ts index 858aeb0a9..0913b16f9 100644 --- a/ts/fixtures/stock/expected/harness.ts +++ b/ts/fixtures/stock/expected/harness.ts @@ -239,10 +239,10 @@ export function random(dataData: Uint8Array, dataStart: number, dataLen: number, inRange = rt.i64Le(x6, hi3); } } else if (_10 === 7) { - inRange = ((rt.randRange(0, { end: b }.end, 8, false) as rt.u8)) < b; + inRange = (rt.randRange(0, { end: b }.end, 8, false) as rt.u8) < b; } else if (_10 === 8) { const hi4: rt.u64 = rt.u64Sub({ hi: 0xffffffff, lo: 0xffffffff } as rt.u64, a as rt.u64); - if (!(((rt.randRangeToInclusive({ end: b, inclusive: true }.end, 8) as rt.u8)) <= b)) { + if (!((rt.randRangeToInclusive({ end: b, inclusive: true }.end, 8) as rt.u8) <= b)) { inRange = false; } else { inRange = rt.u64Le(rt.randRangeToInclusive({ end: hi4, inclusive: true }.end, 64) as rt.u64, hi4); diff --git a/ts/fixtures/stock/expected/maps.ts b/ts/fixtures/stock/expected/maps.ts index aa229ebe7..f2f27481b 100644 --- a/ts/fixtures/stock/expected/maps.ts +++ b/ts/fixtures/stock/expected/maps.ts @@ -304,11 +304,11 @@ export function numbers(n: rt.HashTable, kind: rt.u8, op: rt.u8, key: rt captured[Symbol.dispose](); }), rt.drop); put(out, drops.v as rt.usize); - put(out, rt.tableOrInsert(e, (((key as rt.u32)) << 16) >>> 0).v as rt.usize); + put(out, rt.tableOrInsert(e, ((key as rt.u32) << 16) >>> 0).v as rt.usize); } else if (_12 === 1) { const _34: rt.Place | undefined = rt.tableFindMut(n, h, ours); if (_34 === undefined) { - put(out, rt.tableInsertUnique(n, h, (((key as rt.u32)) << 16) >>> 0, rehash).v as rt.usize); + put(out, rt.tableInsertUnique(n, h, ((key as rt.u32) << 16) >>> 0, rehash).v as rt.usize); } else { _34.v = rt.u32Add(_34.v, 2); } @@ -445,9 +445,9 @@ export function capacity(dataData: Uint8Array, dataStart: number, dataLen: numbe rt.hashAdd(s, arg); const v: rt.u32 = arg as rt.u32; const _104: rt.u64 = rt.hashOne(rt.buildHasher(hasher), v, rt.hash32); - if (!((rt.tableFind(t, _104, (_2: rt.u32): boolean => { + if (!(rt.tableFind(t, _104, (_2: rt.u32): boolean => { return _2 === v; - }) === undefined))) { + }) === undefined)) { break b8; } const _110: rt.u64 = rt.hashOne(rt.buildHasher(hasher), v, rt.hash32); diff --git a/ts/fixtures/task/expected/drops.ts b/ts/fixtures/task/expected/drops.ts index b7bdcb61b..e3466276c 100644 --- a/ts/fixtures/task/expected/drops.ts +++ b/ts/fixtures/task/expected/drops.ts @@ -105,7 +105,7 @@ export function run(log: Log.Log, id: rt.u32, arg: rt.u8): void { v2.push(_70); const mutex: rt.Mutex = new rt.Mutex(v2); const boxed: Held.Held = { tag: "Two", _0: guard(6), _1: guard(7) }; - const maybe = (({ tag: "One", _0: guard(8) } as Held.Held)) as Held.Held | undefined; + const maybe = ({ tag: "One", _0: guard(8) } as Held.Held) as Held.Held | undefined; const _94: rt.usize = held.length; const _97: boolean = maybe !== undefined; const args6: rt.Fmt[] = [(f: rt.Formatter) => rt.usizeDisplay(_94, f), (f: rt.Formatter) => rt.fmtBool(_97, f)]; diff --git a/ts/fixtures/task/expected/drops/folds.Pile.ts b/ts/fixtures/task/expected/drops/folds.Pile.ts index 8048fbf64..8cfbbeb1c 100644 --- a/ts/fixtures/task/expected/drops/folds.Pile.ts +++ b/ts/fixtures/task/expected/drops/folds.Pile.ts @@ -75,7 +75,7 @@ export function count$iter_Iterator(self: Pile): rt.usize { export function last$iter_Iterator(self: Pile): Guard.Guard | undefined { Log.note(self.log, "pile last"); - const _0: Guard.Guard | undefined = then$1xpp3sz(!((self.held.length === 0)), (): Guard.Guard => { + const _0: Guard.Guard | undefined = then$1xpp3sz(!(self.held.length === 0), (): Guard.Guard => { return rt.vecRemove(self.held, 0); }); self[Symbol.dispose](); @@ -83,7 +83,7 @@ export function last$iter_Iterator(self: Pile): Guard.Guard | undefined { } export function nextBack$iter_DoubleEndedIterator(self: Pile): Guard.Guard | undefined { - return then$1xpp3sz(!((self.held.length === 0)), (): Guard.Guard => { + return then$1xpp3sz(!(self.held.length === 0), (): Guard.Guard => { return rt.vecRemove(self.held, 0); }); } diff --git a/ts/fixtures/task/expected/drops/inside.ts b/ts/fixtures/task/expected/drops/inside.ts index 9238113f8..fa8f34117 100644 --- a/ts/fixtures/task/expected/drops/inside.ts +++ b/ts/fixtures/task/expected/drops/inside.ts @@ -49,8 +49,8 @@ export function inside(log: Log.Log, id: rt.u32, arg: rt.u8): void { const _50: rt.RangeInclusive = new rt.RangeInclusive(guard(3), guard(4)); rt.dropAll([_50.lo, _50.hi]); new rt.RangeFrom(guard(5)).start[Symbol.dispose](); - (({ end: guard(6) }.end[Symbol.dispose]())); - (({ end: guard(7), inclusive: true }.end[Symbol.dispose]())); + ({ end: guard(6) }.end[Symbol.dispose]()); + ({ end: guard(7), inclusive: true }.end[Symbol.dispose]()); const r: rt.Range = new rt.Range(guard(8), guard(9)); const start: Guard.Guard = r.start; const part20 = Guard.id(start); diff --git a/ts/fixtures/task/expected/drops/objects.ts b/ts/fixtures/task/expected/drops/objects.ts index 5c00faceb..9db9dcbc4 100644 --- a/ts/fixtures/task/expected/drops/objects.ts +++ b/ts/fixtures/task/expected/drops/objects.ts @@ -232,7 +232,7 @@ export function anys(log: Log.Log, id: rt.u32): void { Log.note(log, "dropped"); b[Symbol.dispose](); const _149: Any.Any = slot; - const part5 = ((_149 instanceof of$drops_Held ? _149.v : _149 instanceof ofPlace$drops_Held ? _149.v.v : undefined)) !== undefined; + const part5 = (_149 instanceof of$drops_Held ? _149.v : _149 instanceof ofPlace$drops_Held ? _149.v.v : undefined) !== undefined; const args12: rt.Fmt[] = [(f: rt.Formatter) => rt.fmtBool(part5, f)]; Log.note(log, rt.fmtFormat(["slot ", args12[0]])); rt.drop(slot); diff --git a/ts/fixtures/task/expected/futures.ts b/ts/fixtures/task/expected/futures.ts index e61fd0ae9..5cbdd3e47 100644 --- a/ts/fixtures/task/expected/futures.ts +++ b/ts/fixtures/task/expected/futures.ts @@ -268,7 +268,7 @@ export class wakersFuture { this.#other = new rt.ArcWaker(new rt.Arc(this.#relay(200)), Relay.wake$task_Wake as (a0: rt.Arc) => undefined, (arc3: rt.Arc) => arc3[Symbol.dispose](), Relay.wakeByRef$task_Wake as (a0: rt.Arc) => undefined); this.#plain = new rt.ArcWaker(new rt.Arc(new Plain.Plain(this.#relay(300))), Plain.wake$task_Wake as (a0: rt.Arc) => undefined, (arc4: rt.Arc) => arc4[Symbol.dispose]()); this.#noop = rt.NOOP_WAKER; - this.#checks = [rt.willWake(this.#a, this.#b), ((this.#a.data as rt.Place)) === this.#b.data as rt.Place, rt.willWake(this.#a, this.#other), ((this.#a.data as rt.Place)) === this.#other.data as rt.Place, this.#a.vtable === this.#other.vtable, this.#a.vtable === this.#plain.vtable, rt.willWake(this.#a, this.#noop), rt.willWake(this.#noop, rt.NOOP_WAKER), ((this.#noop.data as rt.Place)) === rt.NULL, rt.NULL === rt.DANGLING_UNIT, rt.DANGLING_UNIT === rt.DANGLING_UNIT, rt.DANGLING_UNIT === rt.DANGLING_UNIT, rt.DANGLING_UNIT === rt.DANGLING_UNIT]; + this.#checks = [rt.willWake(this.#a, this.#b), (this.#a.data as rt.Place) === this.#b.data as rt.Place, rt.willWake(this.#a, this.#other), (this.#a.data as rt.Place) === this.#other.data as rt.Place, this.#a.vtable === this.#other.vtable, this.#a.vtable === this.#plain.vtable, rt.willWake(this.#a, this.#noop), rt.willWake(this.#noop, rt.NOOP_WAKER), (this.#noop.data as rt.Place) === rt.NULL, rt.NULL === rt.DANGLING_UNIT, rt.DANGLING_UNIT === rt.DANGLING_UNIT, rt.DANGLING_UNIT === rt.DANGLING_UNIT, rt.DANGLING_UNIT === rt.DANGLING_UNIT]; put$unit(rt.DANGLING_UNIT, undefined); put$unit(rt.DANGLING_UNIT, undefined); const arg = this.#checks; @@ -690,7 +690,7 @@ export class boxedFuture { i = rt.usizeAdd(i, 1); } } - if (!((captured6.length === 0))) { + if (!(captured6.length === 0)) { return rt.Pending; } return poll_map$1ooj6xj(pollUnsized$dyn_Future_u64(new rt.DynFuture(captured8, Pending.poll$Future_futures_boxed_closure0_closure5), cx), (value7: rt.u64): rt.u64 => { diff --git a/ts/src/lower/mir/mod.rs b/ts/src/lower/mir/mod.rs index fe6b31baa..f0e3c2835 100644 --- a/ts/src/lower/mir/mod.rs +++ b/ts/src/lower/mir/mod.rs @@ -331,6 +331,8 @@ struct Pending { decl: bool, /// Whether reading it again, wherever and however often, reads the same. rereads: bool, + /// The Rust it is made from, which the source map names wherever it folds. + loc: Option, } pub struct Fx<'m, 'b, 'a, 'tcx> { @@ -1901,6 +1903,12 @@ impl<'m, 'b, 'a, 'tcx> Fx<'m, 'b, 'a, 'tcx> { } } + /// Where the MIR statement or terminator being lowered is, for the source map. + fn here(&mut self) -> Option { + let span = self.mir.source_info(self.at).span; + self.b.t.loc(span) + } + /// The value held back for `local`, if it is. fn held(&self, local: Local) -> Option<&Pending> { let name = self.var(local)?; @@ -2081,8 +2089,9 @@ impl<'m, 'b, 'a, 'tcx> Fx<'m, 'b, 'a, 'tcx> { let mut kept = Vec::new(); for (i, p) in pending.into_iter().enumerate() { if fold[i] { + let value = located(p.value, p.loc); for stmt in &mut stmts { - if subst_stmt(stmt, &p.name, &p.value) { + if subst_stmt(stmt, &p.name, &value) { break; } } @@ -2109,8 +2118,8 @@ impl<'m, 'b, 'a, 'tcx> Fx<'m, 'b, 'a, 'tcx> { _ => p.value, }; out.push(match p.decl { - true => StmtKind::decl(false, p.name, None, Some(value)).at(None), - false => StmtKind::Expr(Expr::ident(&p.name).assign(value)).at(None), + true => StmtKind::decl(false, p.name, None, Some(value)).at(p.loc), + false => StmtKind::Expr(Expr::ident(&p.name).assign(value)).at(p.loc), }); } @@ -2179,6 +2188,7 @@ impl<'m, 'b, 'a, 'tcx> Fx<'m, 'b, 'a, 'tcx> { let mut reads = Vec::new(); reads_of(&value, &mut reads); let copy = std::mem::take(&mut self.copy_on_flush); + let loc = self.here(); self.pending.push(Pending { name, value, @@ -2190,6 +2200,7 @@ impl<'m, 'b, 'a, 'tcx> Fx<'m, 'b, 'a, 'tcx> { copy, decl: false, rereads, + loc, }); } @@ -2199,6 +2210,7 @@ impl<'m, 'b, 'a, 'tcx> Fx<'m, 'b, 'a, 'tcx> { self.order += 1; let mut reads = Vec::new(); reads_of(&value, &mut reads); + let loc = self.here(); self.pending.push(Pending { name: flag, value, @@ -2210,6 +2222,7 @@ impl<'m, 'b, 'a, 'tcx> Fx<'m, 'b, 'a, 'tcx> { copy: false, decl: false, rereads: false, + loc, }); } @@ -2264,6 +2277,7 @@ impl<'m, 'b, 'a, 'tcx> Fx<'m, 'b, 'a, 'tcx> { copy: false, decl: true, rereads: false, + loc: p.loc, }, ); held += 1; @@ -2330,12 +2344,13 @@ impl<'m, 'b, 'a, 'tcx> Fx<'m, 'b, 'a, 'tcx> { self.set_stepped(local, value, out); return; } + let loc = self.here(); match self.slots[local].clone() { Slot::Var(name) => { if self.uses[local] == 0 { // Nothing reads it: only its effects run. if effect { - self.emit(vec![StmtKind::Expr(value).at(None)], false, out); + self.emit(vec![StmtKind::Expr(value).at(loc)], false, out); } return; } @@ -2375,7 +2390,7 @@ impl<'m, 'b, 'a, 'tcx> Fx<'m, 'b, 'a, 'tcx> { return; } self.assigned[local] = true; - let stmt = StmtKind::Expr(Expr::ident(&name).assign(value)).at(None); + let stmt = StmtKind::Expr(Expr::ident(&name).assign(value)).at(loc); self.emit(vec![stmt], false, out); // An aggregate assigned once and never changed: its operands, as emitted, // read in place of its fields. @@ -2392,7 +2407,7 @@ impl<'m, 'b, 'a, 'tcx> Fx<'m, 'b, 'a, 'tcx> { } Slot::Unit => { if effect { - self.emit(vec![StmtKind::Expr(value).at(None)], false, out); + self.emit(vec![StmtKind::Expr(value).at(loc)], false, out); } } Slot::Alias(_) | Slot::Discr(_) | Slot::Flag(_) => unreachable!("set by their own assignment"), @@ -2677,6 +2692,11 @@ impl<'m, 'b, 'a, 'tcx> Fx<'m, 'b, 'a, 'tcx> { } TerminatorKind::Return if !self.mir.local_decls[mir::RETURN_PLACE].ty.is_never() => { let ret = self.mir.local_decls[mir::RETURN_PLACE].ty; + // At the tail it returns, if it is held back, rather than the body's end. + let loc = match self.held(mir::RETURN_PLACE) { + Some(p) => p.loc, + None => self.b.t.loc(span), + }; let value = match self.zero_sized(ret) { true => None, false => { @@ -2687,7 +2707,6 @@ impl<'m, 'b, 'a, 'tcx> Fx<'m, 'b, 'a, 'tcx> { Some(value) } }; - let loc = self.b.t.loc(span); self.emit(vec![StmtKind::Return(value).at(loc)], false, out); self.flush(out); Exit::End @@ -3445,6 +3464,15 @@ fn reads_only(name: &str) -> bool { ) } +/// `value` under `loc` if it is a call, which the source map names where it folds, as it +/// does a call with effects where it is made. +fn located(value: Expr, loc: Option) -> Expr { + match (loc, &value) { + (Some(loc), Expr::Call(..) | Expr::New(..)) => Expr::Located(loc, Box::new(value)), + _ => value, + } +} + /// Replace the one read of `name` in `stmt` with `value`; whether it was there. fn subst_stmt(stmt: &mut Stmt, name: &str, value: &Expr) -> bool { match &mut stmt.kind { @@ -4134,11 +4162,13 @@ fn return_assigned(stmts: &mut Vec, returnable: &FxHashSet) -> boo if !moves { return false; } - let StmtKind::Expr(Expr::Assign(_, value)) = stmts.remove(at).kind else { + let assigned = stmts.remove(at); + let StmtKind::Expr(Expr::Assign(_, value)) = assigned.kind else { unreachable!("found above") }; let last = stmts.last_mut().expect("the return"); last.kind = StmtKind::Return(Some(*value)); + last.loc = assigned.loc.or(last.loc); true } diff --git a/ts/src/print.rs b/ts/src/print.rs index b6e47f6f6..0d74e6980 100644 --- a/ts/src/print.rs +++ b/ts/src/print.rs @@ -30,6 +30,7 @@ pub fn module(program: &Program, module: &ModPath, items: &[&Item], path: &Path) col: 0, indent: 0, tokens: Vec::new(), + current: None, uses_rt: false, renames: HashMap::new(), aliases: Vec::new(), @@ -168,6 +169,7 @@ impl Texts { col: 0, indent: 0, tokens: Vec::new(), + current: None, uses_rt: false, renames: HashMap::new(), aliases: Vec::new(), @@ -443,6 +445,9 @@ struct Printer<'p> { col: u32, indent: usize, tokens: Vec<(u32, u32, Loc)>, + /// The Rust the node being printed maps to, which the text after a node inside it + /// maps back to. + current: Option, uses_rt: bool, /// Locals of the function being printed renamed away from the module's bindings. renames: HashMap, @@ -476,9 +481,27 @@ impl Printer<'_> { } } + /// Map what is printed next to `loc`, in place of a mapping already here. fn mark(&mut self, loc: Option) { - if let Some(loc) = loc { - self.tokens.push((self.line, self.col, loc)); + let Some(loc) = loc else { + return; + }; + match self.tokens.last_mut() { + Some(last) if (last.0, last.1) == (self.line, self.col) => last.2 = loc, + _ => self.tokens.push((self.line, self.col, loc)), + } + } + + /// Print with `loc` as the node being printed, and if `back`, map what follows back to + /// the one enclosing it, as the rest of an expression holding a call is. + fn within(&mut self, loc: Option, back: bool, print: impl FnOnce(&mut Self)) { + self.mark(loc); + let outer = self.current; + self.current = loc.or(outer); + print(self); + self.current = outer; + if back && loc.is_some() { + self.mark(outer); } } @@ -655,7 +678,10 @@ impl Printer<'_> { self.renames = self.renames_for(f); self.doc(&f.doc); self.start(); - self.mark(f.loc); + self.within(f.loc, false, |p| p.function_text(f, module)); + } + + fn function_text(&mut self, f: &Function, module: bool) { let name = self.program.syms[f.sym].name.clone(); match (module, &self.program.syms[f.sym].alias) { (true, Some(alias)) => { @@ -737,8 +763,11 @@ impl Printer<'_> { fn stmt(&mut self, stmt: &Stmt) { self.start(); - self.mark(stmt.loc); - match &stmt.kind { + self.within(stmt.loc, false, |p| p.stmt_kind(&stmt.kind)); + } + + fn stmt_kind(&mut self, kind: &StmtKind) { + match kind { StmtKind::Expr(e) => { // A statement can't start with `{`, which would open a block. let prec = match starts_with_object(e) { @@ -960,7 +989,11 @@ impl Printer<'_> { Expr::Unary(op, arg) => { self.write(op); // `- -x` and `!(-x)` read better spaced or grouped. - let nested = matches!(&**arg, Expr::Unary(..)) || matches!(&**arg, Expr::Lit(t) if t.starts_with('-')); + let nested = match arg.unlocated() { + Expr::Unary(..) => true, + Expr::Lit(t) => t.starts_with('-'), + _ => false, + }; match nested { true => { self.write("("); @@ -977,15 +1010,14 @@ impl Printer<'_> { Expr::Binary(l, op, r) => { let p = binary_prec(op); // The type after `as` would read on into `&`, `|`, or `<` as its own. - let left = match &**l { + let left = match l.unlocated() { Expr::As(..) => 21, - Expr::Located(_, e) if matches!(&**e, Expr::As(..)) => 21, _ => p, }; self.operand(l, op, left); self.write(&format!(" {op} ")); // `&&` and `||` are associative, so a chain reads without groups. - let right = match is_logical(op) && matches!(&**r, Expr::Binary(_, inner, _) if inner == op) { + let right = match is_logical(op) && matches!(r.unlocated(), Expr::Binary(_, inner, _) if inner == op) { true => p, false => p + 1, }; @@ -1035,10 +1067,8 @@ impl Printer<'_> { let tys: Vec = tys.iter().map(|ty| self.ty(ty)).collect(); self.write(&format!("<{}>", tys.join(", "))); } - Expr::Located(loc, inner) => { - self.mark(Some(*loc)); - self.expr(inner, min.max(prec)); - } + // Grouped above, if it binds looser than `min`. + Expr::Located(loc, inner) => self.within(Some(*loc), true, |p| p.expr(inner, min.min(prec))), } if parens { self.write(")"); @@ -1061,11 +1091,7 @@ impl Printer<'_> { /// An operand of `op`: grouped where JS precedence holds but a reader would have to /// look it up, such as bitwise operators mixed with each other. fn operand(&mut self, e: &Expr, op: &str, min: u8) { - let inner = match e { - Expr::Located(_, e) => &**e, - e => e, - }; - let confusing = match inner { + let confusing = match e.unlocated() { Expr::Binary(_, inner, _) => { inner != &op && (is_bitwise(op) || is_bitwise(inner) || (is_logical(op) && is_logical(inner))) } diff --git a/ts/tests/fixtures.rs b/ts/tests/fixtures.rs index c7eaf8359..485e0b8f8 100644 --- a/ts/tests/fixtures.rs +++ b/ts/tests/fixtures.rs @@ -30,15 +30,22 @@ fn fixture(name: &str) -> PathBuf { /// Run the driver on a fixture with `config` and `args`, in its own build directory per /// `build`. fn driver(name: &str, config: &Path, args: &[&std::ffi::OsStr], build: &str) -> Output { - Command::new(env!("CARGO_BIN_EXE_rust2-ts")) + driver_command(name, config, args, build) + .output() + .expect("running rust2-ts") +} + +/// The command [`driver`] runs. +fn driver_command(name: &str, config: &Path, args: &[&std::ffi::OsStr], build: &str) -> Command { + let mut command = Command::new(env!("CARGO_BIN_EXE_rust2-ts")); + command .arg("--config") .arg(config) .arg("--manifest-path") .arg(fixture(name).join("Cargo.toml")) .args(args) - .env("CARGO_TARGET_DIR", scratch().join(build)) - .output() - .expect("running rust2-ts") + .env("CARGO_TARGET_DIR", scratch().join(build)); + command } /// Run the driver on a fixture, returning its output directory and what it printed. @@ -541,6 +548,128 @@ fn reject() { rejected(&out, &output, &fixture("reject").join("expected.txt")); } +/// Each error `tsc` finds in translated code is reported at the Rust that made it: a +/// stand-in `tsc` on `PATH` fails each `return` and each call's argument where `tsc` +/// reports them, in output that translates. +#[test] +fn spans() { + let config = fixture("reject").join("spans.toml"); + let out = scratch().join("spans").join("out"); + // A build of its own, which `reject`'s, of the same crate, would race. + let output = driver("reject", &config, &["--out".as_ref(), out.as_ref()], "spans-build"); + assert!( + output.status.success(), + "translating spans failed:\n{}", + String::from_utf8_lossy(&output.stderr) + ); + let mut diagnostics = String::new(); + // The fixture's own modules, not std's it reaches. + for (rel, text) in sources(&out) + .into_iter() + .filter(|(rel, _)| rel.to_string_lossy().starts_with("spans")) + { + for (line, col, what) in failures(&text) { + diagnostics.push_str(&format!("{}({line},{col}): error {what}\n", rel.display())); + } + } + let bin = scratch().join("spans").join("bin"); + std::fs::create_dir_all(&bin).unwrap(); + std::fs::write(bin.join("diagnostics.txt"), diagnostics).unwrap(); + let tsc = bin.join("tsc"); + std::fs::write( + &tsc, + format!( + "#!/bin/sh\ncase \"$1\" in --version) echo 'Version 7.0.0' ;; *) cat {:?}; exit 2 ;; esac\n", + bin.join("diagnostics.txt") + ), + ) + .unwrap(); + std::fs::set_permissions(&tsc, std::os::unix::fs::PermissionsExt::from_mode(0o755)).unwrap(); + let path = + std::env::join_paths(std::iter::once(bin).chain(std::env::split_paths(&std::env::var_os("PATH").unwrap()))) + .unwrap(); + let output = driver_command("reject", &config, &["--out".as_ref(), out.as_ref()], "spans-build") + .env("PATH", path) + .output() + .expect("running rust2-ts"); + rejected(&out, &output, &fixture("reject").join("spans.txt")); +} + +/// Where `tsc` would report a mistyped `return` or argument in the module `text`: each +/// `return`'s keyword, and each argument of a call where it starts, by one-based line and +/// column, with what is there. +fn failures(text: &str) -> Vec<(usize, usize, String)> { + // Each open bracket, and whether it is a call's. + let mut open: Vec = Vec::new(); + let mut found = Vec::new(); + for (i, line) in text.lines().enumerate() { + if ["import", "export function", "function", "//"] + .iter() + .any(|p| line.starts_with(p)) + { + continue; + } + let chars: Vec = line.chars().collect(); + // Where an argument starts, once past the spaces after its `(` or `,`. + let mut argument = false; + let mut at = 0; + while at < chars.len() { + let c = chars[at]; + if argument && c != ' ' { + argument = false; + if c != ')' { + let rest: String = chars[at..].iter().collect(); + found.push((i + 1, at + 1, format!("TS2345: an argument, {}", argument_text(&rest)))); + } + } + let word: String = chars[..at] + .iter() + .rev() + .take_while(|c| c.is_alphanumeric() || **c == '_' || **c == '$') + .collect(); + match c { + '"' => { + at += 1; + while at < chars.len() && chars[at] != '"' { + at += if chars[at] == '\\' { 2 } else { 1 }; + } + } + 'r' if word.is_empty() && chars[at..].starts_with(&['r', 'e', 't', 'u', 'r', 'n', ' ']) => { + found.push((i + 1, at + 1, "TS2322: a return".to_string())); + } + '(' => { + let keyword = ["if", "while", "for", "switch", "return"] + .contains(&word.chars().rev().collect::().as_str()); + let call = !keyword && at > 0 && (!word.is_empty() || matches!(chars[at - 1], ')' | ']')); + open.push(call); + argument = call; + } + '[' | '{' => open.push(false), + ')' | ']' | '}' => _ = open.pop(), + ',' if open.last() == Some(&true) => argument = true, + _ => {} + } + at += 1; + } + } + found +} + +/// The argument at the start of `rest`, up to the `,` or `)` that ends it on its line. +fn argument_text(rest: &str) -> &str { + let mut depth = 0; + for (i, c) in rest.char_indices() { + match c { + '(' | '[' | '{' => depth += 1, + ')' | ']' | '}' if depth == 0 => return &rest[..i], + ')' | ']' | '}' => depth -= 1, + ',' if depth == 0 => return &rest[..i], + _ => {} + } + } + rest +} + /// Bindings stand in for what translation refuses, `bytes::Bytes` and the crate's own /// function and type over raw pointers, and run as native Rust does. `tsc` refuses each /// binding that doesn't match the Rust signature at its item, and the config refuses each From 8afa5f0fe9852d6545ed44ed0afece151b7f5041 Mon Sep 17 00:00:00 2001 From: Luke Curley <432854+kixelated@users.noreply.github.com> Date: Tue, 3 Nov 2026 06:16:19 -0800 Subject: [PATCH 3/3] test(ts): drop the redundant parens of main's new edits case from its snapshot Co-Authored-By: Claude Opus 5.5 --- ts/fixtures/lang/edits/expected/edits.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ts/fixtures/lang/edits/expected/edits.ts b/ts/fixtures/lang/edits/expected/edits.ts index 6b5d4badd..00b662466 100644 --- a/ts/fixtures/lang/edits/expected/edits.ts +++ b/ts/fixtures/lang/edits/expected/edits.ts @@ -1017,7 +1017,7 @@ export function resizes(kind: rt.u8, data: rt.ByteSlice, out: rt.ByteVec): void rt.byteVecExtendFromSlice(out, rt.byteVecSlice(_121.value)); rt.refRelease(_121); const v2: rt.u16[] = rt.iterToArray(rt.iterMap(rt.iterSlice(rt.byteSliceView(data)), (_234: rt.u8): rt.u16 => { - return (((_234 as rt.u16)) << 4) & 0xffff; + return ((_234 as rt.u16) << 4) & 0xffff; }), undefined, 2, true); const _127: rt.u8 = (kind >> 3) & 3; if (_127 === 0) {