diff --git a/quest/m3/README.md b/quest/m3/README.md index fa33b7f98..20dd1cb30 100644 --- a/quest/m3/README.md +++ b/quest/m3/README.md @@ -30,7 +30,6 @@ generic std gap is planned here even when moq never calls it. - [Drop order in std's folds and iterators](/quest/m3/ts-drop-order.md) - the values that drop still refused in std's consumers and collects drop as std's do - [A slice of one value behind any &mut](/quest/m3/ts-slice-of-one.md) - `slice::from_mut` and `array::from_mut` of a `&mut u8`, or of an object no place names, translate - [std's calls of a closure that have no mapping](/quest/m3/ts-closure-calls.md) - `try_fold`, `partition`, `repeat_with`, `sort_by_cached_key`, and `LazyCell::new` translate, dropping what their closures own as std's do -- [A closure that drops given to a string's edit or search](/quest/m3/ts-string-closures.md) - `String::retain` and `str`'s searches by a closure that owns a value that drops translate - [Waiting: a slice object for a mutable part of other values](/quest/m3/ts-slice-object.md) - waits on a moq profile showing the `Proxy` view's traps matter, then decides on an `rt.ByteSlice`-like form - [Port the workflow guard to kixelated/quest](/quest/m3/quest-workflow-guard.md) - quest's environment guard parses YAML as this repository's does - [Folds from the back, and a crate's own folds](/quest/m3/ts-iter-back-folds.md) - `rfold` and `try_rfold` translate, and so does a crate's iterator that overrides `fold` or `nth_back` diff --git a/quest/m3/ts-string-closures.md b/quest/m3/ts-string-closures.md deleted file mode 100644 index 954588891..000000000 --- a/quest/m3/ts-string-closures.md +++ /dev/null @@ -1,18 +0,0 @@ -# [S] A closure that drops given to a string's edit or search - -## Goal - -[rust2-ts](/ts/README.md) translates a closure that owns a value that drops given to -`String::retain`, or to `str`'s searches that map as a `Pattern`, such as `contains` and -`split`, dropping it where std's does, proven by the task fixture's differential tests -against native Rust. - -## Plan - -Found beside [drop order](/quest/m3/ts-drop-order.md) in -[#438](https://github.com/moq-dev/rust2/pull/438). The reject fixture's `string_retained` -and `pattern_closure` reproduce them. `String::retain` borrows the string and drops its -closure as it returns. A search that returns an iterator, such as `split`, holds the -pattern until the iterator drops; one that returns a value drops it before returning. - -Public API: the translator's output. diff --git a/ts/README.md b/ts/README.md index 92dae8c82..ac0ff7939 100644 --- a/ts/README.md +++ b/ts/README.md @@ -308,12 +308,14 @@ iterator as it is made and again each time a clone ends. A `str` is a JS string, which is UTF-16: `chars` steps by code point, and a search by a `char`, a `&str`, a predicate, or an array or slice of chars, as in `rt.strSplit(s, "/")`, takes the text or the -closure, which it calls on each char it reads, in the order std reads them. An offset it +closure, which it calls on each char it reads, in the order std reads them, and drops as it +returns, or with the iterator it returns, as `split` does. An offset it returns, from `rfind` or `match_indices`, counts UTF-8 bytes, as Rust's does, and so does one `&s[a..b]` or `&s[a..=b]` takes, which reads the string up to it and panics as std does inside a char, where `get` gives `None`. A JS string can't change in place, so `String`'s edits, `push_str`, `truncate`, `insert`, `retain`, `replace_range`, and the rest, assign the edited one to the local or -field the `&mut` borrows, taking and checking byte offsets as std does. A `&mut str` is +field the `&mut` borrows, taking and checking byte offsets as std does, and `retain` then +drops its closure. A `&mut str` is the `rt.Place` of its `String` wherever that is, and a part of one, from `&mut s[a..b]`, `get_mut`, or `split_at_mut`, is `rt.strPart(p, a, b)`, a place of its own that writes the whole string anew, checking its offsets as `&s[a..b]` does. `as_bytes_mut`, diff --git a/ts/fixtures/reject/census.md b/ts/fixtures/reject/census.md index 2d4b568ff..44c86885f 100644 --- a/ts/fixtures/reject/census.md +++ b/ts/fixtures/reject/census.md @@ -1,101 +1,100 @@ # Census of `reject-fixture` -- Refusals: 259 -- Function instances: 295 +- Refusals: 257 +- Function instances: 293 - Generic functions no instance reached, lowered over their type parameters: 13 ## By construct | Count | Construct | First | | ---: | --- | --- | -| 50 | a raw pointer to `_` in `_`, which the crate may put another object in place of | fixtures/reject/src/lib.rs:543:10 | -| 23 | a raw pointer to `_` in a variable assigned again while it may point there | fixtures/reject/src/lib.rs:551:10 | +| 50 | a raw pointer to `_` in `_`, which the crate may put another object in place of | fixtures/reject/src/lib.rs:536:10 | +| 23 | a raw pointer to `_` in a variable assigned again while it may point there | fixtures/reject/src/lib.rs:544:10 | | 20 | unsupported call to `_` | fixtures/reject/src/lib.rs:164:8 | -| 15 | a reference through which a raw pointer may be made into `_` in `_`, which the crate may put another object in place of | fixtures/reject/src/lib.rs:1272:33 | -| 15 | a reference to `_`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there | fixtures/reject/src/lib.rs:1590:18 | -| 6 | a cast from a pointer to `_` to one to `_`, which reads the bytes of one type as another | fixtures/reject/src/lib.rs:490:27 | -| 5 | `_` with a mutable reference to a value JS copies, which its mapping would copy | fixtures/reject/src/lib.rs:1170:22 | -| 5 | a raw pointer to `_` in an element, a payload, or a union field, which is not supported yet | fixtures/reject/src/lib.rs:614:10 | -| 5 | memory from `alloc` cast to pointers to `_` and to `_`, which reads the bytes of one type as another | fixtures/reject/src/lib.rs:2281:7 | -| 4 | a variant of `_`, which is not supported: either is the same JS string | fixtures/reject/src/lib.rs:267:2 | +| 15 | a reference through which a raw pointer may be made into `_` in `_`, which the crate may put another object in place of | fixtures/reject/src/lib.rs:1259:33 | +| 15 | a reference to `_`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there | fixtures/reject/src/lib.rs:1577:18 | +| 6 | a cast from a pointer to `_` to one to `_`, which reads the bytes of one type as another | fixtures/reject/src/lib.rs:483:27 | +| 5 | `_` with a mutable reference to a value JS copies, which its mapping would copy | fixtures/reject/src/lib.rs:1157:22 | +| 5 | a raw pointer to `_` in an element, a payload, or a union field, which is not supported yet | fixtures/reject/src/lib.rs:607:10 | +| 5 | memory from `alloc` cast to pointers to `_` and to `_`, which reads the bytes of one type as another | fixtures/reject/src/lib.rs:2268:7 | +| 4 | a variant of `_`, which is not supported: either is the same JS string | fixtures/reject/src/lib.rs:260:2 | | 4 | an assignment through a reference to `_` | fixtures/reject/src/lib.rs:83:2 | | 3 | `_` of `_`, whose `clone_from` is its own, which is not supported yet | fixtures/reject/src/lib.rs:21:4 | -| 3 | a byte of memory from `alloc`, which JS keeps as the values a cast of its pointer types it as | fixtures/reject/src/lib.rs:503:3 | -| 3 | a copy between pointers to `_`, which JS keeps as an object that knows no array it is in | fixtures/reject/src/lib.rs:1645:3 | +| 3 | a byte of memory from `alloc`, which JS keeps as the values a cast of its pointer types it as | fixtures/reject/src/lib.rs:496:3 | +| 3 | a copy between pointers to `_`, which JS keeps as an object that knows no array it is in | fixtures/reject/src/lib.rs:1632:3 | | 3 | a copy of a closure that changes what it captured | fixtures/reject/src/lib.rs:182:14 | -| 3 | a slice or a cell of a mutable reference to `_` that names no place, which a whole write would replace only there | fixtures/reject/src/lib.rs:2201:2 | -| 3 | an offset of a pointer to `_`, which JS keeps as an object that knows no array it is in | fixtures/reject/src/lib.rs:1648:56 | +| 3 | a slice or a cell of a mutable reference to `_` that names no place, which a whole write would replace only there | fixtures/reject/src/lib.rs:2188:2 | +| 3 | an offset of a pointer to `_`, which JS keeps as an object that knows no array it is in | fixtures/reject/src/lib.rs:1635:56 | | 3 | replacing the value behind a reference to `_` | fixtures/reject/src/lib.rs:91:2 | | 3 | unsupported type `_` | fixtures/reject/src/lib.rs:7:14 | | 2 | `_` is not supported: its `None` and `Some` would both be `rt.None` | fixtures/reject/src/lib.rs:16:15 | | 2 | `_` of `_`, whose `None` is `rt.None`, which is not supported yet | fixtures/reject/src/lib.rs:37:4 | | 2 | `_`, a trait object of another crate's trait, which is not supported yet | fixtures/reject/src/lib.rs:11:16 | -| 2 | `_`, a trait object of the generic trait `_`, which is not supported yet | fixtures/reject/src/lib.rs:393:23 | -| 2 | `offset_from` between a pointer into a value in no array and one into a value in no array, which JS keeps in different arrays | fixtures/reject/src/lib.rs:2160:5 | -| 2 | `offset_from` between a pointer into an array of this body's own and one into an array of this body's own, which JS keeps in different arrays | fixtures/reject/src/lib.rs:2162:24 | -| 2 | a pointer reaching past a shared slice JS copies, which JS keeps apart from what holds it in Rust | fixtures/reject/src/lib.rs:2185:18 | -| 2 | a raw or mutable slice of a byte in no array of bytes | fixtures/reject/src/lib.rs:2171:12 | -| 2 | a raw pointer to a place of `()`, which has no address of its own | fixtures/reject/src/lib.rs:663:15 | -| 2 | an upcast from `_` to `_`, which is not supported yet | fixtures/reject/src/lib.rs:461:32 | -| 2 | comparing pointers to `_`, each a place JS makes of its own | fixtures/reject/src/lib.rs:531:2 | +| 2 | `_`, a trait object of the generic trait `_`, which is not supported yet | fixtures/reject/src/lib.rs:386:23 | +| 2 | `offset_from` between a pointer into a value in no array and one into a value in no array, which JS keeps in different arrays | fixtures/reject/src/lib.rs:2147:5 | +| 2 | `offset_from` between a pointer into an array of this body's own and one into an array of this body's own, which JS keeps in different arrays | fixtures/reject/src/lib.rs:2149:24 | +| 2 | a pointer reaching past a shared slice JS copies, which JS keeps apart from what holds it in Rust | fixtures/reject/src/lib.rs:2172:18 | +| 2 | a raw or mutable slice of a byte in no array of bytes | fixtures/reject/src/lib.rs:2158:12 | +| 2 | a raw pointer to a place of `()`, which has no address of its own | fixtures/reject/src/lib.rs:656:15 | +| 2 | an upcast from `_` to `_`, which is not supported yet | fixtures/reject/src/lib.rs:454:32 | +| 2 | comparing pointers to `_`, each a place JS makes of its own | fixtures/reject/src/lib.rs:524:2 | | 2 | overriding `_`, which std's adaptors call in place of `next` or beside it | fixtures/reject/src/lib.rs:125:2 | -| 2 | passing `_`, which drops, to `_`, which is not supported yet | fixtures/reject/src/lib.rs:262:4 | -| 2 | unsupported type `_` from another crate | fixtures/reject/src/lib.rs:374:32 | -| 1 | `Buf::copy_to_bytes` of `_`, a value JS copies, which is not supported | fixtures/reject/src/lib.rs:696:2 | -| 1 | `BufMut::put` of `_` into a `BytesMut`, which advances it by the room left in a capacity that depends on whether the other handles of its storage dropped, which is not supported | fixtures/reject/src/lib.rs:330:2 | -| 1 | `BufMut::put` of `_` into a `BytesMut`, which picks the methods it calls by a capacity that depends on whether the other handles of its storage dropped, which is not supported | fixtures/reject/src/lib.rs:325:2 | -| 1 | `Bytes::from_owner` of `_`, which would drop with the last clone of what it makes, which is not supported | fixtures/reject/src/lib.rs:310:2 | -| 1 | `Extend` of `_` by `_`, whose `_` of `_` is not supported yet | fixtures/reject/src/lib.rs:1207:31 | +| 2 | unsupported type `_` from another crate | fixtures/reject/src/lib.rs:367:32 | +| 1 | `Buf::copy_to_bytes` of `_`, a value JS copies, which is not supported | fixtures/reject/src/lib.rs:689:2 | +| 1 | `BufMut::put` of `_` into a `BytesMut`, which advances it by the room left in a capacity that depends on whether the other handles of its storage dropped, which is not supported | fixtures/reject/src/lib.rs:323:2 | +| 1 | `BufMut::put` of `_` into a `BytesMut`, which picks the methods it calls by a capacity that depends on whether the other handles of its storage dropped, which is not supported | fixtures/reject/src/lib.rs:318:2 | +| 1 | `Bytes::from_owner` of `_`, which would drop with the last clone of what it makes, which is not supported | fixtures/reject/src/lib.rs:303:2 | +| 1 | `Extend` of `_` by `_`, whose `_` of `_` is not supported yet | fixtures/reject/src/lib.rs:1194:31 | | 1 | `Pointer` formatting, as in `{:p}`, is not supported | fixtures/reject/src/lib.rs:49:2 | | 1 | `_` is not supported: its `Pending` and `Ready` would both be `rt.OuterPending` | fixtures/reject/src/lib.rs:72:20 | | 1 | `_` is not supported: its field `_` is `_`, typed `_`, whose `None` would be `rt.None` as `_` | fixtures/reject/src/lib.rs:31:2 | -| 1 | `_` is not supported: its field `_` is `_`, typed `_`, whose `Pending` would be `rt.OuterPending` as `_` | fixtures/reject/src/lib.rs:431:2 | +| 1 | `_` is not supported: its field `_` is `_`, typed `_`, whose `Pending` would be `rt.OuterPending` as `_` | fixtures/reject/src/lib.rs:424:2 | | 1 | `_` of `_` by `_`, which is not supported yet | fixtures/reject/src/lib.rs:211:6 | -| 1 | `_` of `_`, which is not supported yet | fixtures/reject/src/lib.rs:473:4 | -| 1 | `_`, which reads a capacity that depends on whether the other handles of its storage dropped, which is not supported | fixtures/reject/src/lib.rs:319:6 | -| 1 | `clone_from` of `_`, whose items' `clone_from` is their own, which is not supported yet | fixtures/reject/src/lib.rs:2053:4 | -| 1 | `collect` of `_`, which sorts by `_`'s own `Ord`, of entries that drop, which is not supported yet | fixtures/reject/src/lib.rs:890:22 | +| 1 | `_` of `_`, which is not supported yet | fixtures/reject/src/lib.rs:466:4 | +| 1 | `_`, which reads a capacity that depends on whether the other handles of its storage dropped, which is not supported | fixtures/reject/src/lib.rs:312:6 | +| 1 | `clone_from` of `_`, whose items' `clone_from` is their own, which is not supported yet | fixtures/reject/src/lib.rs:2040:4 | +| 1 | `collect` of `_`, which sorts by `_`'s own `Ord`, of entries that drop, which is not supported yet | fixtures/reject/src/lib.rs:877:22 | | 1 | `fmt::Arguments` with a placeholder, or not made in place, written to `_`'s own `fmt::Write`, which is not supported yet: std splits what a placeholder writes into `write_str` calls the runtime does not make | fixtures/reject/src/lib.rs:55:10 | -| 1 | `offset_from` between a pointer into a shared slice JS copies and one into a value in no array, which JS keeps in different arrays | fixtures/reject/src/lib.rs:2165:21 | -| 1 | `offset_from` between a pointer into a shared slice JS copies and one into an array of this body's own, which JS keeps in different arrays | fixtures/reject/src/lib.rs:2164:20 | -| 1 | `offset_from` of pointers to `()`, which has no bytes | fixtures/reject/src/lib.rs:2107:13 | -| 1 | `offset_from` of pointers to `_`, which JS keeps as an object that knows no array it is in | fixtures/reject/src/lib.rs:2100:36 | +| 1 | `offset_from` between a pointer into a shared slice JS copies and one into a value in no array, which JS keeps in different arrays | fixtures/reject/src/lib.rs:2152:21 | +| 1 | `offset_from` between a pointer into a shared slice JS copies and one into an array of this body's own, which JS keeps in different arrays | fixtures/reject/src/lib.rs:2151:20 | +| 1 | `offset_from` of pointers to `()`, which has no bytes | fixtures/reject/src/lib.rs:2094:13 | +| 1 | `offset_from` of pointers to `_`, which JS keeps as an object that knows no array it is in | fixtures/reject/src/lib.rs:2087:36 | | 1 | a cast from `_` to `_` | fixtures/reject/src/lib.rs:68:2 | -| 1 | a coercion of `_` to `_`, which is not supported yet | fixtures/reject/src/lib.rs:2401:40 | +| 1 | a coercion of `_` to `_`, which is not supported yet | fixtures/reject/src/lib.rs:2388:40 | | 1 | a coercion to `_` | fixtures/reject/src/lib.rs:234:2 | -| 1 | a coercion to `_`, which is not supported yet | fixtures/reject/src/lib.rs:420:30 | -| 1 | a constant of type `_` | fixtures/reject/src/lib.rs:2301:34 | -| 1 | a constant of type `_`, a pointer into memory translation can't name | fixtures/reject/src/lib.rs:713:3 | -| 1 | a copy reaching past a shared slice JS copies, which JS keeps apart from what holds it in Rust | fixtures/reject/src/lib.rs:2183:3 | -| 1 | a dangling pointer to `_`, a value of no bytes made of more than structs and tuples | fixtures/reject/src/lib.rs:672:11 | +| 1 | a coercion to `_`, which is not supported yet | fixtures/reject/src/lib.rs:413:30 | +| 1 | a constant of type `_` | fixtures/reject/src/lib.rs:2288:34 | +| 1 | a constant of type `_`, a pointer into memory translation can't name | fixtures/reject/src/lib.rs:706:3 | +| 1 | a copy reaching past a shared slice JS copies, which JS keeps apart from what holds it in Rust | fixtures/reject/src/lib.rs:2170:3 | +| 1 | a dangling pointer to `_`, a value of no bytes made of more than structs and tuples | fixtures/reject/src/lib.rs:665:11 | | 1 | a future of `_`, which can be `rt.Pending`, as the future's own `Pending` is | fixtures/reject/src/lib.rs:77:34 | -| 1 | a mapped guard of `_`, which JS can't write in place | fixtures/reject/src/lib.rs:2087:10 | -| 1 | a mutable reference into a `Result`'s payload, passed on or kept | fixtures/reject/src/lib.rs:298:12 | +| 1 | a mapped guard of `_`, which JS can't write in place | fixtures/reject/src/lib.rs:2074:10 | +| 1 | a mutable reference into a `Result`'s payload, passed on or kept | fixtures/reject/src/lib.rs:291:12 | | 1 | a mutable static, which any code may write | fixtures/reject/src/lib.rs:61:11 | -| 1 | a pointer into `_`, which JS keeps as an object that knows no array it is in | fixtures/reject/src/lib.rs:2094:12 | -| 1 | a pointer into an array of `_`, which JS keeps as an object that knows no array it is in | fixtures/reject/src/lib.rs:2099:30 | -| 1 | a pointer reaching past a value in no array, which JS keeps apart from what holds it in Rust | fixtures/reject/src/lib.rs:2187:27 | -| 1 | a pointer's address, which JS has no counterpart of | fixtures/reject/src/lib.rs:495:17 | +| 1 | a pointer into `_`, which JS keeps as an object that knows no array it is in | fixtures/reject/src/lib.rs:2081:12 | +| 1 | a pointer into an array of `_`, which JS keeps as an object that knows no array it is in | fixtures/reject/src/lib.rs:2086:30 | +| 1 | a pointer reaching past a value in no array, which JS keeps apart from what holds it in Rust | fixtures/reject/src/lib.rs:2174:27 | +| 1 | a pointer's address, which JS has no counterpart of | fixtures/reject/src/lib.rs:488:17 | | 1 | a printable type must implement `Display` or `Debug` | fixtures/reject/src/lib.rs:64:1 | -| 1 | a raw pointer to `_` behind a reference, which is the object and not where it is kept | fixtures/reject/src/lib.rs:512:10 | -| 1 | a reference through which a raw pointer may be made into `_` in an element, a payload, or a union field, which is not supported yet | fixtures/reject/src/lib.rs:1299:11 | +| 1 | a raw pointer to `_` behind a reference, which is the object and not where it is kept | fixtures/reject/src/lib.rs:505:10 | +| 1 | a reference through which a raw pointer may be made into `_` in an element, a payload, or a union field, which is not supported yet | fixtures/reject/src/lib.rs:1286:11 | | 1 | a scalar constant of type `_` | fixtures/reject/src/lib.rs:8:2 | -| 1 | a slice from a pointer to `_`, which JS keeps as an object that knows no array it is in | fixtures/reject/src/lib.rs:2098:11 | -| 1 | a slice of `()`, which has no bytes, from a pointer | fixtures/reject/src/lib.rs:2107:39 | -| 1 | a slice of one byte's place, which a byte slice can view only in an array of bytes | fixtures/reject/src/lib.rs:2195:2 | -| 1 | a slice reaching past a value in no array, which JS keeps apart from what holds it in Rust | fixtures/reject/src/lib.rs:2186:6 | -| 1 | a trait object of `_`, which is not supported yet | fixtures/reject/src/lib.rs:410:26 | +| 1 | a slice from a pointer to `_`, which JS keeps as an object that knows no array it is in | fixtures/reject/src/lib.rs:2085:11 | +| 1 | a slice of `()`, which has no bytes, from a pointer | fixtures/reject/src/lib.rs:2094:39 | +| 1 | a slice of one byte's place, which a byte slice can view only in an array of bytes | fixtures/reject/src/lib.rs:2182:2 | +| 1 | a slice reaching past a value in no array, which JS keeps apart from what holds it in Rust | fixtures/reject/src/lib.rs:2173:6 | +| 1 | a trait object of `_`, which is not supported yet | fixtures/reject/src/lib.rs:403:26 | | 1 | arithmetic on `_` | fixtures/reject/src/lib.rs:8:2 | -| 1 | comparing `_` | fixtures/reject/src/lib.rs:1647:41 | +| 1 | comparing `_` | fixtures/reject/src/lib.rs:1634:41 | | 1 | comparing `_` as a key, which is not supported yet | fixtures/reject/src/lib.rs:193:75 | -| 1 | comparing pointers to `_` in an atomic, which JS has no address of | fixtures/reject/src/lib.rs:712:15 | -| 1 | comparing pointers to `_`, which has no bytes and so no address of its own | fixtures/reject/src/lib.rs:663:70 | -| 1 | const generic types are not supported: `_` | fixtures/reject/src/lib.rs:2032:1 | -| 1 | constructing `_` | fixtures/reject/src/lib.rs:285:53 | +| 1 | comparing pointers to `_` in an atomic, which JS has no address of | fixtures/reject/src/lib.rs:705:15 | +| 1 | comparing pointers to `_`, which has no bytes and so no address of its own | fixtures/reject/src/lib.rs:656:70 | +| 1 | const generic types are not supported: `_` | fixtures/reject/src/lib.rs:2019:1 | +| 1 | constructing `_` | fixtures/reject/src/lib.rs:278:53 | | 1 | hashing `_` as a key, which is not supported yet | fixtures/reject/src/lib.rs:193:75 | -| 1 | hashing `_` by its address, which JS has no counterpart of | fixtures/reject/src/lib.rs:1651:5 | +| 1 | hashing `_` by its address, which JS has no counterpart of | fixtures/reject/src/lib.rs:1638:5 | | 1 | hashing `_` through `_`'s own `Hash::hash_slice`, which is not supported yet | fixtures/reject/src/lib.rs:253:16 | -| 1 | union `_`, whose fields overlap in `_` and `f64`, which JS keeps apart | fixtures/reject/src/lib.rs:517:1 | +| 1 | union `_`, whose fields overlap in `_` and `f64`, which JS keeps apart | fixtures/reject/src/lib.rs:510:1 | ## By API @@ -103,438 +102,434 @@ The type or module each refused type or path belongs to. | Count | API | First | | ---: | --- | --- | -| 39 | `std::cell::UnsafeCell` | fixtures/reject/src/lib.rs:622:15 | -| 27 | `(u32, u32)` | fixtures/reject/src/lib.rs:543:10 | -| 15 | `u32` | fixtures/reject/src/lib.rs:490:27 | -| 11 | `(u8, u8)` | fixtures/reject/src/lib.rs:1207:31 | -| 9 | `[u8; 4]` | fixtures/reject/src/lib.rs:410:26 | +| 39 | `std::cell::UnsafeCell` | fixtures/reject/src/lib.rs:615:15 | +| 27 | `(u32, u32)` | fixtures/reject/src/lib.rs:536:10 | +| 15 | `u32` | fixtures/reject/src/lib.rs:483:27 | +| 11 | `(u8, u8)` | fixtures/reject/src/lib.rs:1194:31 | +| 9 | `[u8; 4]` | fixtures/reject/src/lib.rs:403:26 | | 8 | `u8` | fixtures/reject/src/lib.rs:211:6 | | 6 | `f16` | fixtures/reject/src/lib.rs:7:14 | -| 6 | `std::borrow::Cow` | fixtures/reject/src/lib.rs:267:2 | -| 5 | `Gap` | fixtures/reject/src/lib.rs:843:10 | +| 6 | `std::borrow::Cow` | fixtures/reject/src/lib.rs:260:2 | +| 5 | `Gap` | fixtures/reject/src/lib.rs:830:10 | | 5 | `Option` | fixtures/reject/src/lib.rs:16:15 | -| 5 | `i32` | fixtures/reject/src/lib.rs:2281:7 | +| 5 | `i32` | fixtures/reject/src/lib.rs:2268:7 | | 4 | `std::pin::Pin` | fixtures/reject/src/lib.rs:91:2 | -| 4 | `std::str` | fixtures/reject/src/lib.rs:375:4 | +| 4 | `std::str` | fixtures/reject/src/lib.rs:368:4 | | 3 | `Iterator` | fixtures/reject/src/lib.rs:37:4 | -| 3 | `Mid` | fixtures/reject/src/lib.rs:1290:34 | -| 3 | `Outer` | fixtures/reject/src/lib.rs:1290:34 | +| 3 | `Mid` | fixtures/reject/src/lib.rs:1277:34 | +| 3 | `Outer` | fixtures/reject/src/lib.rs:1277:34 | | 3 | `Reused` | fixtures/reject/src/lib.rs:21:4 | -| 3 | `dyn std::any::Any` | fixtures/reject/src/lib.rs:461:32 | -| 3 | `std::mem::ManuallyDrop` | fixtures/reject/src/lib.rs:2301:2 | +| 3 | `dyn std::any::Any` | fixtures/reject/src/lib.rs:454:32 | +| 3 | `std::mem::ManuallyDrop` | fixtures/reject/src/lib.rs:2288:2 | | 3 | `std::vec::Vec` | fixtures/reject/src/lib.rs:253:16 | -| 3 | `{closure}` | fixtures/reject/src/lib.rs:262:4 | -| 2 | `(u16, u16)` | fixtures/reject/src/lib.rs:1111:31 | -| 2 | `Counted` | fixtures/reject/src/lib.rs:325:2 | -| 2 | `InArray` | fixtures/reject/src/lib.rs:1237:9 | -| 2 | `InPayload` | fixtures/reject/src/lib.rs:1249:9 | -| 2 | `InTuple` | fixtures/reject/src/lib.rs:1241:9 | -| 2 | `InWritten` | fixtures/reject/src/lib.rs:1261:9 | -| 2 | `Inside` | fixtures/reject/src/lib.rs:1780:20 | +| 2 | `(u16, u16)` | fixtures/reject/src/lib.rs:1098:31 | +| 2 | `Counted` | fixtures/reject/src/lib.rs:318:2 | +| 2 | `InArray` | fixtures/reject/src/lib.rs:1224:9 | +| 2 | `InPayload` | fixtures/reject/src/lib.rs:1236:9 | +| 2 | `InTuple` | fixtures/reject/src/lib.rs:1228:9 | +| 2 | `InWritten` | fixtures/reject/src/lib.rs:1248:9 | +| 2 | `Inside` | fixtures/reject/src/lib.rs:1767:20 | | 2 | `Poll` | fixtures/reject/src/lib.rs:72:20 | -| 2 | `Scaled` | fixtures/reject/src/lib.rs:393:23 | -| 2 | `[u32; 3]` | fixtures/reject/src/lib.rs:2125:10 | -| 2 | `[u8; 2]` | fixtures/reject/src/lib.rs:1661:37 | -| 2 | `[u8; 3]` | fixtures/reject/src/lib.rs:1661:15 | -| 2 | `dyn Keyed` | fixtures/reject/src/lib.rs:461:32 | -| 2 | `dyn Scaled` | fixtures/reject/src/lib.rs:393:23 | +| 2 | `Scaled` | fixtures/reject/src/lib.rs:386:23 | +| 2 | `[u32; 3]` | fixtures/reject/src/lib.rs:2112:10 | +| 2 | `[u8; 2]` | fixtures/reject/src/lib.rs:1648:37 | +| 2 | `[u8; 3]` | fixtures/reject/src/lib.rs:1648:15 | +| 2 | `dyn Keyed` | fixtures/reject/src/lib.rs:454:32 | +| 2 | `dyn Scaled` | fixtures/reject/src/lib.rs:386:23 | | 2 | `dyn std::hash::Hasher` | fixtures/reject/src/lib.rs:11:16 | | 2 | `slice` | fixtures/reject/src/lib.rs:21:4 | -| 2 | `std::any::TypeId` | fixtures/reject/src/lib.rs:473:2 | +| 2 | `std::any::TypeId` | fixtures/reject/src/lib.rs:466:2 | | 2 | `std::collections::BTreeSet` | fixtures/reject/src/lib.rs:193:75 | -| 2 | `std::collections::LinkedList` | fixtures/reject/src/lib.rs:2052:4 | -| 2 | `std::mem::MaybeUninit` | fixtures/reject/src/lib.rs:857:19 | +| 2 | `std::collections::LinkedList` | fixtures/reject/src/lib.rs:2039:4 | +| 2 | `std::mem::MaybeUninit` | fixtures/reject/src/lib.rs:844:19 | | 2 | `std::ops::Range` | fixtures/reject/src/lib.rs:164:8 | -| 2 | `std::option::Option` | fixtures/reject/src/lib.rs:305:2 | +| 2 | `std::option::Option` | fixtures/reject/src/lib.rs:298:2 | | 2 | `std::sync::Arc` | fixtures/reject/src/lib.rs:234:2 | | 2 | `std::sync::MutexGuard` | fixtures/reject/src/lib.rs:83:2 | -| 2 | `std::vec::IntoIter` | fixtures/reject/src/lib.rs:370:17 | -| 1 | `(Dropped, (u8, u8))` | fixtures/reject/src/lib.rs:2346:2 | -| 1 | `([Cloned; 2], (u8, u8))` | fixtures/reject/src/lib.rs:2330:2 | -| 1 | `([Greatest; 2], (u8, u8))` | fixtures/reject/src/lib.rs:2364:13 | -| 1 | `([Touched; 2], (u8, u8))` | fixtures/reject/src/lib.rs:2395:2 | -| 1 | `(std::vec::Vec, Tens)` | fixtures/reject/src/lib.rs:1207:31 | -| 1 | `(u16, ByKeyReplace)` | fixtures/reject/src/lib.rs:1556:55 | -| 1 | `(u16, ByKeySet)` | fixtures/reject/src/lib.rs:1548:51 | -| 1 | `(u16, ByKeyTake)` | fixtures/reject/src/lib.rs:1563:52 | -| 1 | `(u16, ByRefReplace)` | fixtures/reject/src/lib.rs:1532:32 | -| 1 | `(u16, ByRefTake)` | fixtures/reject/src/lib.rs:1540:32 | -| 1 | `(u16, InTuple)` | fixtures/reject/src/lib.rs:1281:33 | -| 1 | `*const [u8; 4]` | fixtures/reject/src/lib.rs:1651:5 | -| 1 | `*mut [u8; 4]` | fixtures/reject/src/lib.rs:1647:41 | -| 1 | `*mut dyn std::iter::Iterator` | fixtures/reject/src/lib.rs:2401:40 | -| 1 | `*mut std::ops::Range` | fixtures/reject/src/lib.rs:2401:40 | -| 1 | `Aliased` | fixtures/reject/src/lib.rs:1055:29 | -| 1 | `Assigned` | fixtures/reject/src/lib.rs:1947:20 | -| 1 | `Bare` | fixtures/reject/src/lib.rs:663:70 | +| 2 | `std::vec::IntoIter` | fixtures/reject/src/lib.rs:363:17 | +| 1 | `(Dropped, (u8, u8))` | fixtures/reject/src/lib.rs:2333:2 | +| 1 | `([Cloned; 2], (u8, u8))` | fixtures/reject/src/lib.rs:2317:2 | +| 1 | `([Greatest; 2], (u8, u8))` | fixtures/reject/src/lib.rs:2351:13 | +| 1 | `([Touched; 2], (u8, u8))` | fixtures/reject/src/lib.rs:2382:2 | +| 1 | `(std::vec::Vec, Tens)` | fixtures/reject/src/lib.rs:1194:31 | +| 1 | `(u16, ByKeyReplace)` | fixtures/reject/src/lib.rs:1543:55 | +| 1 | `(u16, ByKeySet)` | fixtures/reject/src/lib.rs:1535:51 | +| 1 | `(u16, ByKeyTake)` | fixtures/reject/src/lib.rs:1550:52 | +| 1 | `(u16, ByRefReplace)` | fixtures/reject/src/lib.rs:1519:32 | +| 1 | `(u16, ByRefTake)` | fixtures/reject/src/lib.rs:1527:32 | +| 1 | `(u16, InTuple)` | fixtures/reject/src/lib.rs:1268:33 | +| 1 | `*const [u8; 4]` | fixtures/reject/src/lib.rs:1638:5 | +| 1 | `*mut [u8; 4]` | fixtures/reject/src/lib.rs:1634:41 | +| 1 | `*mut dyn std::iter::Iterator` | fixtures/reject/src/lib.rs:2388:40 | +| 1 | `*mut std::ops::Range` | fixtures/reject/src/lib.rs:2388:40 | +| 1 | `Aliased` | fixtures/reject/src/lib.rs:1042:29 | +| 1 | `Assigned` | fixtures/reject/src/lib.rs:1934:20 | +| 1 | `Bare` | fixtures/reject/src/lib.rs:656:70 | | 1 | `Batched` | fixtures/reject/src/lib.rs:253:16 | -| 1 | `Behind` | fixtures/reject/src/lib.rs:1686:22 | -| 1 | `Bits` | fixtures/reject/src/lib.rs:517:1 | -| 1 | `Blank` | fixtures/reject/src/lib.rs:696:2 | -| 1 | `Block` | fixtures/reject/src/lib.rs:2032:1 | -| 1 | `ByBox` | fixtures/reject/src/lib.rs:1439:35 | -| 1 | `ByClosure` | fixtures/reject/src/lib.rs:1454:35 | -| 1 | `ByExchanged` | fixtures/reject/src/lib.rs:1500:30 | -| 1 | `ByInstance` | fixtures/reject/src/lib.rs:1480:35 | -| 1 | `ByKeyReplace` | fixtures/reject/src/lib.rs:1556:55 | -| 1 | `ByKeySet` | fixtures/reject/src/lib.rs:1548:51 | -| 1 | `ByKeyTake` | fixtures/reject/src/lib.rs:1563:52 | -| 1 | `ByObject` | fixtures/reject/src/lib.rs:1467:35 | -| 1 | `ByRead` | fixtures/reject/src/lib.rs:1390:35 | -| 1 | `ByRefReplace` | fixtures/reject/src/lib.rs:1532:32 | -| 1 | `ByRefTake` | fixtures/reject/src/lib.rs:1540:32 | -| 1 | `ByReplace` | fixtures/reject/src/lib.rs:1428:35 | -| 1 | `BySwap` | fixtures/reject/src/lib.rs:1416:35 | -| 1 | `BySwapped` | fixtures/reject/src/lib.rs:1489:76 | -| 1 | `ByWrite` | fixtures/reject/src/lib.rs:1403:35 | -| 1 | `BytesMut` | fixtures/reject/src/lib.rs:319:6 | -| 1 | `Called` | fixtures/reject/src/lib.rs:1021:28 | -| 1 | `Chosen` | fixtures/reject/src/lib.rs:1841:17 | -| 1 | `Clone` | fixtures/reject/src/lib.rs:2206:4 | -| 1 | `Closed` | fixtures/reject/src/lib.rs:2013:15 | -| 1 | `Compared` | fixtures/reject/src/lib.rs:1808:22 | -| 1 | `Copied` | fixtures/reject/src/lib.rs:1111:31 | -| 1 | `Deep` | fixtures/reject/src/lib.rs:1722:18 | -| 1 | `Deeper` | fixtures/reject/src/lib.rs:1973:22 | +| 1 | `Behind` | fixtures/reject/src/lib.rs:1673:22 | +| 1 | `Bits` | fixtures/reject/src/lib.rs:510:1 | +| 1 | `Blank` | fixtures/reject/src/lib.rs:689:2 | +| 1 | `Block` | fixtures/reject/src/lib.rs:2019:1 | +| 1 | `ByBox` | fixtures/reject/src/lib.rs:1426:35 | +| 1 | `ByClosure` | fixtures/reject/src/lib.rs:1441:35 | +| 1 | `ByExchanged` | fixtures/reject/src/lib.rs:1487:30 | +| 1 | `ByInstance` | fixtures/reject/src/lib.rs:1467:35 | +| 1 | `ByKeyReplace` | fixtures/reject/src/lib.rs:1543:55 | +| 1 | `ByKeySet` | fixtures/reject/src/lib.rs:1535:51 | +| 1 | `ByKeyTake` | fixtures/reject/src/lib.rs:1550:52 | +| 1 | `ByObject` | fixtures/reject/src/lib.rs:1454:35 | +| 1 | `ByRead` | fixtures/reject/src/lib.rs:1377:35 | +| 1 | `ByRefReplace` | fixtures/reject/src/lib.rs:1519:32 | +| 1 | `ByRefTake` | fixtures/reject/src/lib.rs:1527:32 | +| 1 | `ByReplace` | fixtures/reject/src/lib.rs:1415:35 | +| 1 | `BySwap` | fixtures/reject/src/lib.rs:1403:35 | +| 1 | `BySwapped` | fixtures/reject/src/lib.rs:1476:76 | +| 1 | `ByWrite` | fixtures/reject/src/lib.rs:1390:35 | +| 1 | `BytesMut` | fixtures/reject/src/lib.rs:312:6 | +| 1 | `Called` | fixtures/reject/src/lib.rs:1008:28 | +| 1 | `Chosen` | fixtures/reject/src/lib.rs:1828:17 | +| 1 | `Clone` | fixtures/reject/src/lib.rs:2193:4 | +| 1 | `Closed` | fixtures/reject/src/lib.rs:2000:15 | +| 1 | `Compared` | fixtures/reject/src/lib.rs:1795:22 | +| 1 | `Copied` | fixtures/reject/src/lib.rs:1098:31 | +| 1 | `Deep` | fixtures/reject/src/lib.rs:1709:18 | +| 1 | `Deeper` | fixtures/reject/src/lib.rs:1960:22 | | 1 | `DoubleEndedIterator` | fixtures/reject/src/lib.rs:150:2 | -| 1 | `Dynamic` | fixtures/reject/src/lib.rs:1997:20 | -| 1 | `Enclosing` | fixtures/reject/src/lib.rs:1825:22 | -| 1 | `Escaped` | fixtures/reject/src/lib.rs:1007:43 | -| 1 | `Halves` | fixtures/reject/src/lib.rs:2268:16 | +| 1 | `Dynamic` | fixtures/reject/src/lib.rs:1984:20 | +| 1 | `Enclosing` | fixtures/reject/src/lib.rs:1812:22 | +| 1 | `Escaped` | fixtures/reject/src/lib.rs:994:43 | +| 1 | `Halves` | fixtures/reject/src/lib.rs:2255:16 | | 1 | `HashMap` | fixtures/reject/src/lib.rs:211:6 | -| 1 | `Hits` | fixtures/reject/src/lib.rs:655:21 | -| 1 | `InField` | fixtures/reject/src/lib.rs:1253:9 | -| 1 | `InGeneric` | fixtures/reject/src/lib.rs:1257:9 | -| 1 | `InNested` | fixtures/reject/src/lib.rs:1245:9 | -| 1 | `Lane` | fixtures/reject/src/lib.rs:807:19 | -| 1 | `Lanes` | fixtures/reject/src/lib.rs:2127:10 | -| 1 | `Loaded` | fixtures/reject/src/lib.rs:1077:29 | -| 1 | `Looped` | fixtures/reject/src/lib.rs:1045:26 | -| 1 | `Mapped` | fixtures/reject/src/lib.rs:1122:39 | +| 1 | `Hits` | fixtures/reject/src/lib.rs:648:21 | +| 1 | `InField` | fixtures/reject/src/lib.rs:1240:9 | +| 1 | `InGeneric` | fixtures/reject/src/lib.rs:1244:9 | +| 1 | `InNested` | fixtures/reject/src/lib.rs:1232:9 | +| 1 | `Lane` | fixtures/reject/src/lib.rs:794:19 | +| 1 | `Lanes` | fixtures/reject/src/lib.rs:2114:10 | +| 1 | `Loaded` | fixtures/reject/src/lib.rs:1064:29 | +| 1 | `Looped` | fixtures/reject/src/lib.rs:1032:26 | +| 1 | `Mapped` | fixtures/reject/src/lib.rs:1109:39 | | 1 | `Maybe` | fixtures/reject/src/lib.rs:31:2 | -| 1 | `Onced` | fixtures/reject/src/lib.rs:1168:46 | -| 1 | `Only` | fixtures/reject/src/lib.rs:672:11 | -| 1 | `Parked` | fixtures/reject/src/lib.rs:2072:20 | -| 1 | `Parking` | fixtures/reject/src/lib.rs:2072:20 | -| 1 | `Plain` | fixtures/reject/src/lib.rs:761:10 | -| 1 | `Pushed` | fixtures/reject/src/lib.rs:1183:22 | -| 1 | `Repeated` | fixtures/reject/src/lib.rs:1156:18 | -| 1 | `Replaced` | fixtures/reject/src/lib.rs:1892:20 | -| 1 | `Rewritten` | fixtures/reject/src/lib.rs:1065:47 | -| 1 | `Shared` | fixtures/reject/src/lib.rs:1763:20 | +| 1 | `Onced` | fixtures/reject/src/lib.rs:1155:46 | +| 1 | `Only` | fixtures/reject/src/lib.rs:665:11 | +| 1 | `Parked` | fixtures/reject/src/lib.rs:2059:20 | +| 1 | `Parking` | fixtures/reject/src/lib.rs:2059:20 | +| 1 | `Plain` | fixtures/reject/src/lib.rs:748:10 | +| 1 | `Pushed` | fixtures/reject/src/lib.rs:1170:22 | +| 1 | `Repeated` | fixtures/reject/src/lib.rs:1143:18 | +| 1 | `Replaced` | fixtures/reject/src/lib.rs:1879:20 | +| 1 | `Rewritten` | fixtures/reject/src/lib.rs:1052:47 | +| 1 | `Shared` | fixtures/reject/src/lib.rs:1750:20 | | 1 | `Sink` | fixtures/reject/src/lib.rs:55:10 | -| 1 | `Slotted` | fixtures/reject/src/lib.rs:1744:21 | -| 1 | `Span2` | fixtures/reject/src/lib.rs:543:10 | -| 1 | `String` | fixtures/reject/src/lib.rs:719:4 | -| 1 | `Swapped` | fixtures/reject/src/lib.rs:1910:20 | +| 1 | `Slotted` | fixtures/reject/src/lib.rs:1731:21 | +| 1 | `Span2` | fixtures/reject/src/lib.rs:536:10 | +| 1 | `Swapped` | fixtures/reject/src/lib.rs:1897:20 | | 1 | `T \| undefined` | fixtures/reject/src/lib.rs:31:2 | -| 1 | `Tail` | fixtures/reject/src/lib.rs:420:30 | -| 1 | `Taken` | fixtures/reject/src/lib.rs:1928:20 | -| 1 | `Target` | fixtures/reject/src/lib.rs:1604:10 | -| 1 | `Tens` | fixtures/reject/src/lib.rs:1207:31 | -| 1 | `Track` | fixtures/reject/src/lib.rs:787:19 | -| 1 | `Unboxed` | fixtures/reject/src/lib.rs:1701:16 | -| 1 | `Waiting` | fixtures/reject/src/lib.rs:431:2 | -| 1 | `Window` | fixtures/reject/src/lib.rs:604:2 | -| 1 | `Wrapped` | fixtures/reject/src/lib.rs:1869:21 | -| 1 | `[InArray; 2]` | fixtures/reject/src/lib.rs:1272:33 | -| 1 | `[InWritten; 1]` | fixtures/reject/src/lib.rs:1333:35 | -| 1 | `[std::cell::UnsafeCell; 2]` | fixtures/reject/src/lib.rs:2026:20 | -| 1 | `[u32; 2]` | fixtures/reject/src/lib.rs:2112:13 | -| 1 | `poll` | fixtures/reject/src/lib.rs:431:2 | -| 1 | `rt.Poll` | fixtures/reject/src/lib.rs:431:2 | -| 1 | `std::any::Any` | fixtures/reject/src/lib.rs:473:4 | -| 1 | `std::cell::Cell` | fixtures/reject/src/lib.rs:890:22 | -| 1 | `std::cell::LazyCell` | fixtures/reject/src/lib.rs:2243:3 | -| 1 | `std::collections::BTreeMap` | fixtures/reject/src/lib.rs:890:22 | +| 1 | `Tail` | fixtures/reject/src/lib.rs:413:30 | +| 1 | `Taken` | fixtures/reject/src/lib.rs:1915:20 | +| 1 | `Target` | fixtures/reject/src/lib.rs:1591:10 | +| 1 | `Tens` | fixtures/reject/src/lib.rs:1194:31 | +| 1 | `Track` | fixtures/reject/src/lib.rs:774:19 | +| 1 | `Unboxed` | fixtures/reject/src/lib.rs:1688:16 | +| 1 | `Waiting` | fixtures/reject/src/lib.rs:424:2 | +| 1 | `Window` | fixtures/reject/src/lib.rs:597:2 | +| 1 | `Wrapped` | fixtures/reject/src/lib.rs:1856:21 | +| 1 | `[InArray; 2]` | fixtures/reject/src/lib.rs:1259:33 | +| 1 | `[InWritten; 1]` | fixtures/reject/src/lib.rs:1320:35 | +| 1 | `[std::cell::UnsafeCell; 2]` | fixtures/reject/src/lib.rs:2013:20 | +| 1 | `[u32; 2]` | fixtures/reject/src/lib.rs:2099:13 | +| 1 | `poll` | fixtures/reject/src/lib.rs:424:2 | +| 1 | `rt.Poll` | fixtures/reject/src/lib.rs:424:2 | +| 1 | `std::any::Any` | fixtures/reject/src/lib.rs:466:4 | +| 1 | `std::cell::Cell` | fixtures/reject/src/lib.rs:877:22 | +| 1 | `std::cell::LazyCell` | fixtures/reject/src/lib.rs:2230:3 | +| 1 | `std::collections::BTreeMap` | fixtures/reject/src/lib.rs:877:22 | | 1 | `std::collections::HashMap` | fixtures/reject/src/lib.rs:211:6 | -| 1 | `std::default::Default` | fixtures/reject/src/lib.rs:2054:2 | -| 1 | `std::iter` | fixtures/reject/src/lib.rs:1170:22 | -| 1 | `std::mem` | fixtures/reject/src/lib.rs:2211:2 | -| 1 | `std::net::AddrParseError` | fixtures/reject/src/lib.rs:374:32 | -| 1 | `std::net::Ipv4Addr` | fixtures/reject/src/lib.rs:374:32 | -| 1 | `std::num` | fixtures/reject/src/lib.rs:1212:4 | -| 1 | `std::ops::RangeFrom` | fixtures/reject/src/lib.rs:919:32 | -| 1 | `std::ops::RangeTo` | fixtures/reject/src/lib.rs:919:11 | -| 1 | `std::ptr` | fixtures/reject/src/lib.rs:1647:14 | -| 1 | `std::slice::IterMut` | fixtures/reject/src/lib.rs:701:15 | -| 1 | `std::std` | fixtures/reject/src/lib.rs:2295:13 | -| 1 | `std::sync::LazyLock` | fixtures/reject/src/lib.rs:2248:2 | +| 1 | `std::default::Default` | fixtures/reject/src/lib.rs:2041:2 | +| 1 | `std::iter` | fixtures/reject/src/lib.rs:1157:22 | +| 1 | `std::mem` | fixtures/reject/src/lib.rs:2198:2 | +| 1 | `std::net::AddrParseError` | fixtures/reject/src/lib.rs:367:32 | +| 1 | `std::net::Ipv4Addr` | fixtures/reject/src/lib.rs:367:32 | +| 1 | `std::num` | fixtures/reject/src/lib.rs:1199:4 | +| 1 | `std::ops::RangeFrom` | fixtures/reject/src/lib.rs:906:32 | +| 1 | `std::ops::RangeTo` | fixtures/reject/src/lib.rs:906:11 | +| 1 | `std::ptr` | fixtures/reject/src/lib.rs:1634:14 | +| 1 | `std::slice::IterMut` | fixtures/reject/src/lib.rs:694:15 | +| 1 | `std::std` | fixtures/reject/src/lib.rs:2282:13 | +| 1 | `std::sync::LazyLock` | fixtures/reject/src/lib.rs:2235:2 | | 1 | `std::task::Poll` | fixtures/reject/src/lib.rs:77:34 | -| 1 | `std::thread::LocalKey` | fixtures/reject/src/lib.rs:2254:2 | -| 1 | `str` | fixtures/reject/src/lib.rs:262:4 | +| 1 | `std::thread::LocalKey` | fixtures/reject/src/lib.rs:2241:2 | | 1 | `u64` | fixtures/reject/src/lib.rs:68:2 | | 1 | `value` | fixtures/reject/src/lib.rs:31:2 | +| 1 | `{closure}` | fixtures/reject/src/lib.rs:2074:10 | ## By type or path | Count | Construct | Type or path | First | | ---: | --- | --- | --- | -| 17 | a raw pointer to `_` in a variable assigned again while it may point there | `(u32, u32)` | fixtures/reject/src/lib.rs:551:10 | -| 4 | a variant of `_`, which is not supported: either is the same JS string | `std::borrow::Cow` | fixtures/reject/src/lib.rs:267:2 | -| 3 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `(u32, u32)`, `Gap` | fixtures/reject/src/lib.rs:843:10 | -| 3 | a reference through which a raw pointer may be made into `_` in `_`, which the crate may put another object in place of | `Mid`, `Outer` | fixtures/reject/src/lib.rs:1290:34 | -| 3 | memory from `alloc` cast to pointers to `_` and to `_`, which reads the bytes of one type as another | `i32`, `u32` | fixtures/reject/src/lib.rs:2282:11 | +| 17 | a raw pointer to `_` in a variable assigned again while it may point there | `(u32, u32)` | fixtures/reject/src/lib.rs:544:10 | +| 4 | a variant of `_`, which is not supported: either is the same JS string | `std::borrow::Cow` | fixtures/reject/src/lib.rs:260:2 | +| 3 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `(u32, u32)`, `Gap` | fixtures/reject/src/lib.rs:830:10 | +| 3 | a reference through which a raw pointer may be made into `_` in `_`, which the crate may put another object in place of | `Mid`, `Outer` | fixtures/reject/src/lib.rs:1277:34 | +| 3 | memory from `alloc` cast to pointers to `_` and to `_`, which reads the bytes of one type as another | `i32`, `u32` | fixtures/reject/src/lib.rs:2269:11 | | 3 | unsupported type `_` | `f16` | fixtures/reject/src/lib.rs:7:14 | | 2 | `_` is not supported: its `None` and `Some` would both be `rt.None` | `Option` | fixtures/reject/src/lib.rs:16:15 | | 2 | `_` of `_`, whose `None` is `rt.None`, which is not supported yet | `Iterator::scan`, `Option` | fixtures/reject/src/lib.rs:37:4 | | 2 | `_`, a trait object of another crate's trait, which is not supported yet | `dyn std::hash::Hasher` | fixtures/reject/src/lib.rs:11:16 | -| 2 | `_`, a trait object of the generic trait `_`, which is not supported yet | `dyn Scaled`, `Scaled` | fixtures/reject/src/lib.rs:393:23 | -| 2 | a cast from a pointer to `_` to one to `_`, which reads the bytes of one type as another | `u32`, `u8` | fixtures/reject/src/lib.rs:490:27 | -| 2 | a cast from a pointer to `_` to one to `_`, which reads the bytes of one type as another | `u8`, `u32` | fixtures/reject/src/lib.rs:2267:15 | -| 2 | a copy between pointers to `_`, which JS keeps as an object that knows no array it is in | `[u8; 4]` | fixtures/reject/src/lib.rs:1645:3 | -| 2 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::mem::MaybeUninit`, `Gap` | fixtures/reject/src/lib.rs:857:19 | -| 2 | a raw pointer to `_` in a variable assigned again while it may point there | `[u8; 4]` | fixtures/reject/src/lib.rs:1668:26 | -| 2 | a raw pointer to `_` in a variable assigned again while it may point there | `std::cell::UnsafeCell` | fixtures/reject/src/lib.rs:631:15 | -| 2 | a raw pointer to `_` in an element, a payload, or a union field, which is not supported yet | `[u8; 2]` | fixtures/reject/src/lib.rs:1661:37 | -| 2 | a raw pointer to `_` in an element, a payload, or a union field, which is not supported yet | `[u8; 3]` | fixtures/reject/src/lib.rs:1661:15 | -| 2 | a reference to `_`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there | `Inside` | fixtures/reject/src/lib.rs:1780:20 | -| 2 | a reference to `_`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there | `[u8; 4]` | fixtures/reject/src/lib.rs:1668:26 | +| 2 | `_`, a trait object of the generic trait `_`, which is not supported yet | `dyn Scaled`, `Scaled` | fixtures/reject/src/lib.rs:386:23 | +| 2 | a cast from a pointer to `_` to one to `_`, which reads the bytes of one type as another | `u32`, `u8` | fixtures/reject/src/lib.rs:483:27 | +| 2 | a cast from a pointer to `_` to one to `_`, which reads the bytes of one type as another | `u8`, `u32` | fixtures/reject/src/lib.rs:2254:15 | +| 2 | a copy between pointers to `_`, which JS keeps as an object that knows no array it is in | `[u8; 4]` | fixtures/reject/src/lib.rs:1632:3 | +| 2 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::mem::MaybeUninit`, `Gap` | fixtures/reject/src/lib.rs:844:19 | +| 2 | a raw pointer to `_` in a variable assigned again while it may point there | `[u8; 4]` | fixtures/reject/src/lib.rs:1655:26 | +| 2 | a raw pointer to `_` in a variable assigned again while it may point there | `std::cell::UnsafeCell` | fixtures/reject/src/lib.rs:624:15 | +| 2 | a raw pointer to `_` in an element, a payload, or a union field, which is not supported yet | `[u8; 2]` | fixtures/reject/src/lib.rs:1648:37 | +| 2 | a raw pointer to `_` in an element, a payload, or a union field, which is not supported yet | `[u8; 3]` | fixtures/reject/src/lib.rs:1648:15 | +| 2 | a reference to `_`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there | `Inside` | fixtures/reject/src/lib.rs:1767:20 | +| 2 | a reference to `_`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there | `[u8; 4]` | fixtures/reject/src/lib.rs:1655:26 | | 2 | an assignment through a reference to `_` | `std::pin::Pin` | fixtures/reject/src/lib.rs:107:2 | -| 2 | an offset of a pointer to `_`, which JS keeps as an object that knows no array it is in | `[u8; 4]` | fixtures/reject/src/lib.rs:1648:56 | -| 2 | an upcast from `_` to `_`, which is not supported yet | `dyn Keyed`, `dyn std::any::Any` | fixtures/reject/src/lib.rs:461:32 | -| 2 | comparing pointers to `_`, each a place JS makes of its own | `u32` | fixtures/reject/src/lib.rs:531:2 | -| 2 | memory from `alloc` cast to pointers to `_` and to `_`, which reads the bytes of one type as another | `u32`, `i32` | fixtures/reject/src/lib.rs:2281:7 | +| 2 | an offset of a pointer to `_`, which JS keeps as an object that knows no array it is in | `[u8; 4]` | fixtures/reject/src/lib.rs:1635:56 | +| 2 | an upcast from `_` to `_`, which is not supported yet | `dyn Keyed`, `dyn std::any::Any` | fixtures/reject/src/lib.rs:454:32 | +| 2 | comparing pointers to `_`, each a place JS makes of its own | `u32` | fixtures/reject/src/lib.rs:524:2 | +| 2 | memory from `alloc` cast to pointers to `_` and to `_`, which reads the bytes of one type as another | `u32`, `i32` | fixtures/reject/src/lib.rs:2268:7 | | 2 | replacing the value behind a reference to `_` | `std::pin::Pin` | fixtures/reject/src/lib.rs:91:2 | -| 2 | unsupported call to `_` | `::sum` | fixtures/reject/src/lib.rs:370:17 | -| 1 | `Buf::copy_to_bytes` of `_`, a value JS copies, which is not supported | `Blank` | fixtures/reject/src/lib.rs:696:2 | -| 1 | `BufMut::put` of `_` into a `BytesMut`, which advances it by the room left in a capacity that depends on whether the other handles of its storage dropped, which is not supported | `Counted` | fixtures/reject/src/lib.rs:330:2 | -| 1 | `BufMut::put` of `_` into a `BytesMut`, which picks the methods it calls by a capacity that depends on whether the other handles of its storage dropped, which is not supported | `Counted` | fixtures/reject/src/lib.rs:325:2 | -| 1 | `Bytes::from_owner` of `_`, which would drop with the last clone of what it makes, which is not supported | `std::sync::Arc` | fixtures/reject/src/lib.rs:310:2 | -| 1 | `Extend` of `_` by `_`, whose `_` of `_` is not supported yet | `(std::vec::Vec, Tens)`, `(u8, u8)`, `Tens`, `u8` | fixtures/reject/src/lib.rs:1207:31 | +| 2 | unsupported call to `_` | `::sum` | fixtures/reject/src/lib.rs:363:17 | +| 1 | `Buf::copy_to_bytes` of `_`, a value JS copies, which is not supported | `Blank` | fixtures/reject/src/lib.rs:689:2 | +| 1 | `BufMut::put` of `_` into a `BytesMut`, which advances it by the room left in a capacity that depends on whether the other handles of its storage dropped, which is not supported | `Counted` | fixtures/reject/src/lib.rs:323:2 | +| 1 | `BufMut::put` of `_` into a `BytesMut`, which picks the methods it calls by a capacity that depends on whether the other handles of its storage dropped, which is not supported | `Counted` | fixtures/reject/src/lib.rs:318:2 | +| 1 | `Bytes::from_owner` of `_`, which would drop with the last clone of what it makes, which is not supported | `std::sync::Arc` | fixtures/reject/src/lib.rs:303:2 | +| 1 | `Extend` of `_` by `_`, whose `_` of `_` is not supported yet | `(std::vec::Vec, Tens)`, `(u8, u8)`, `Tens`, `u8` | fixtures/reject/src/lib.rs:1194:31 | | 1 | `_` is not supported: its `Pending` and `Ready` would both be `rt.OuterPending` | `Poll` | fixtures/reject/src/lib.rs:72:20 | | 1 | `_` is not supported: its field `_` is `_`, typed `_`, whose `None` would be `rt.None` as `_` | `Maybe`, `value`, `Option`, `T \| undefined`, `Option` | fixtures/reject/src/lib.rs:31:2 | -| 1 | `_` is not supported: its field `_` is `_`, typed `_`, whose `Pending` would be `rt.OuterPending` as `_` | `Waiting`, `poll`, `Poll`, `rt.Poll`, `Poll` | fixtures/reject/src/lib.rs:431:2 | +| 1 | `_` is not supported: its field `_` is `_`, typed `_`, whose `Pending` would be `rt.OuterPending` as `_` | `Waiting`, `poll`, `Poll`, `rt.Poll`, `Poll` | fixtures/reject/src/lib.rs:424:2 | | 1 | `_` of `_` by `_`, which is not supported yet | `HashMap::contains_key`, `std::collections::HashMap`, `u8` | fixtures/reject/src/lib.rs:211:6 | -| 1 | `_` of `_`, which is not supported yet | `std::any::Any::type_id`, `dyn std::any::Any` | fixtures/reject/src/lib.rs:473:4 | -| 1 | `_` of `_`, whose `clone_from` is its own, which is not supported yet | `Clone::clone_from`, `std::vec::Vec` | fixtures/reject/src/lib.rs:2206:4 | +| 1 | `_` of `_`, which is not supported yet | `std::any::Any::type_id`, `dyn std::any::Any` | fixtures/reject/src/lib.rs:466:4 | +| 1 | `_` of `_`, whose `clone_from` is its own, which is not supported yet | `Clone::clone_from`, `std::vec::Vec` | fixtures/reject/src/lib.rs:2193:4 | | 1 | `_` of `_`, whose `clone_from` is its own, which is not supported yet | `slice::clone_from_slice`, `Reused` | fixtures/reject/src/lib.rs:229:4 | | 1 | `_` of `_`, whose `clone_from` is its own, which is not supported yet | `slice::fill`, `Reused` | fixtures/reject/src/lib.rs:21:4 | -| 1 | `_` with a mutable reference to a value JS copies, which its mapping would copy | `std::collections::LinkedList::retain` | fixtures/reject/src/lib.rs:2052:4 | -| 1 | `_` with a mutable reference to a value JS copies, which its mapping would copy | `std::default::Default::default` | fixtures/reject/src/lib.rs:2054:2 | -| 1 | `_` with a mutable reference to a value JS copies, which its mapping would copy | `std::iter::once` | fixtures/reject/src/lib.rs:1170:22 | -| 1 | `_` with a mutable reference to a value JS copies, which its mapping would copy | `std::str::from_utf8_mut` | fixtures/reject/src/lib.rs:1577:20 | -| 1 | `_` with a mutable reference to a value JS copies, which its mapping would copy | `std::str::get_unchecked_mut` | fixtures/reject/src/lib.rs:1572:13 | -| 1 | `_`, which reads a capacity that depends on whether the other handles of its storage dropped, which is not supported | `BytesMut::capacity` | fixtures/reject/src/lib.rs:319:6 | -| 1 | `clone_from` of `_`, whose items' `clone_from` is their own, which is not supported yet | `std::collections::LinkedList` | fixtures/reject/src/lib.rs:2053:4 | -| 1 | `collect` of `_`, which sorts by `_`'s own `Ord`, of entries that drop, which is not supported yet | `std::collections::BTreeMap`, `std::cell::Cell` | fixtures/reject/src/lib.rs:890:22 | +| 1 | `_` with a mutable reference to a value JS copies, which its mapping would copy | `std::collections::LinkedList::retain` | fixtures/reject/src/lib.rs:2039:4 | +| 1 | `_` with a mutable reference to a value JS copies, which its mapping would copy | `std::default::Default::default` | fixtures/reject/src/lib.rs:2041:2 | +| 1 | `_` with a mutable reference to a value JS copies, which its mapping would copy | `std::iter::once` | fixtures/reject/src/lib.rs:1157:22 | +| 1 | `_` with a mutable reference to a value JS copies, which its mapping would copy | `std::str::from_utf8_mut` | fixtures/reject/src/lib.rs:1564:20 | +| 1 | `_` with a mutable reference to a value JS copies, which its mapping would copy | `std::str::get_unchecked_mut` | fixtures/reject/src/lib.rs:1559:13 | +| 1 | `_`, which reads a capacity that depends on whether the other handles of its storage dropped, which is not supported | `BytesMut::capacity` | fixtures/reject/src/lib.rs:312:6 | +| 1 | `clone_from` of `_`, whose items' `clone_from` is their own, which is not supported yet | `std::collections::LinkedList` | fixtures/reject/src/lib.rs:2040:4 | +| 1 | `collect` of `_`, which sorts by `_`'s own `Ord`, of entries that drop, which is not supported yet | `std::collections::BTreeMap`, `std::cell::Cell` | fixtures/reject/src/lib.rs:877:22 | | 1 | `fmt::Arguments` with a placeholder, or not made in place, written to `_`'s own `fmt::Write`, which is not supported yet: std splits what a placeholder writes into `write_str` calls the runtime does not make | `Sink` | fixtures/reject/src/lib.rs:55:10 | -| 1 | `offset_from` of pointers to `_`, which JS keeps as an object that knows no array it is in | `(u8, u8)` | fixtures/reject/src/lib.rs:2100:36 | +| 1 | `offset_from` of pointers to `_`, which JS keeps as an object that knows no array it is in | `(u8, u8)` | fixtures/reject/src/lib.rs:2087:36 | | 1 | a cast from `_` to `_` | `u64`, `f16` | fixtures/reject/src/lib.rs:68:2 | -| 1 | a cast from a pointer to `_` to one to `_`, which reads the bytes of one type as another | `u32`, `[u32; 2]` | fixtures/reject/src/lib.rs:2112:13 | -| 1 | a cast from a pointer to `_` to one to `_`, which reads the bytes of one type as another | `u8`, `Halves` | fixtures/reject/src/lib.rs:2268:16 | -| 1 | a coercion of `_` to `_`, which is not supported yet | `*mut std::ops::Range`, `*mut dyn std::iter::Iterator` | fixtures/reject/src/lib.rs:2401:40 | +| 1 | a cast from a pointer to `_` to one to `_`, which reads the bytes of one type as another | `u32`, `[u32; 2]` | fixtures/reject/src/lib.rs:2099:13 | +| 1 | a cast from a pointer to `_` to one to `_`, which reads the bytes of one type as another | `u8`, `Halves` | fixtures/reject/src/lib.rs:2255:16 | +| 1 | a coercion of `_` to `_`, which is not supported yet | `*mut std::ops::Range`, `*mut dyn std::iter::Iterator` | fixtures/reject/src/lib.rs:2388:40 | | 1 | a coercion to `_` | `std::sync::Arc` | fixtures/reject/src/lib.rs:234:2 | -| 1 | a coercion to `_`, which is not supported yet | `&Tail` | fixtures/reject/src/lib.rs:420:30 | -| 1 | a constant of type `_` | `std::mem::ManuallyDrop` | fixtures/reject/src/lib.rs:2301:34 | -| 1 | a constant of type `_`, a pointer into memory translation can't name | `&u32` | fixtures/reject/src/lib.rs:713:3 | -| 1 | a copy between pointers to `_`, which JS keeps as an object that knows no array it is in | `(u8, u8)` | fixtures/reject/src/lib.rs:2097:3 | -| 1 | a dangling pointer to `_`, a value of no bytes made of more than structs and tuples | `Only` | fixtures/reject/src/lib.rs:672:11 | +| 1 | a coercion to `_`, which is not supported yet | `&Tail` | fixtures/reject/src/lib.rs:413:30 | +| 1 | a constant of type `_` | `std::mem::ManuallyDrop` | fixtures/reject/src/lib.rs:2288:34 | +| 1 | a constant of type `_`, a pointer into memory translation can't name | `&u32` | fixtures/reject/src/lib.rs:706:3 | +| 1 | a copy between pointers to `_`, which JS keeps as an object that knows no array it is in | `(u8, u8)` | fixtures/reject/src/lib.rs:2084:3 | +| 1 | a dangling pointer to `_`, a value of no bytes made of more than structs and tuples | `Only` | fixtures/reject/src/lib.rs:665:11 | | 1 | a future of `_`, which can be `rt.Pending`, as the future's own `Pending` is | `std::task::Poll` | fixtures/reject/src/lib.rs:77:34 | -| 1 | a mapped guard of `_`, which JS can't write in place | `{closure}` | fixtures/reject/src/lib.rs:2087:10 | -| 1 | a pointer into `_`, which JS keeps as an object that knows no array it is in | `(u8, u8)` | fixtures/reject/src/lib.rs:2094:12 | -| 1 | a pointer into an array of `_`, which JS keeps as an object that knows no array it is in | `(u8, u8)` | fixtures/reject/src/lib.rs:2099:30 | -| 1 | a raw pointer to `_` behind a reference, which is the object and not where it is kept | `std::vec::Vec` | fixtures/reject/src/lib.rs:512:10 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `(u16, u16)`, `Copied` | fixtures/reject/src/lib.rs:1111:31 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `(u16, u16)`, `Pushed` | fixtures/reject/src/lib.rs:1183:22 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `(u32, u32)`, `Lane` | fixtures/reject/src/lib.rs:807:19 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `(u32, u32)`, `Plain` | fixtures/reject/src/lib.rs:761:10 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `(u32, u32)`, `Span2` | fixtures/reject/src/lib.rs:543:10 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `(u32, u32)`, `Track` | fixtures/reject/src/lib.rs:787:19 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `(u32, u32)`, `Window` | fixtures/reject/src/lib.rs:604:2 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `(u32, u32)`, `std::cell::UnsafeCell` | fixtures/reject/src/lib.rs:622:15 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `(u8, u8)`, `(Dropped, (u8, u8))` | fixtures/reject/src/lib.rs:2346:2 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `(u8, u8)`, `([Cloned; 2], (u8, u8))` | fixtures/reject/src/lib.rs:2330:2 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `(u8, u8)`, `([Greatest; 2], (u8, u8))` | fixtures/reject/src/lib.rs:2364:13 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `(u8, u8)`, `([Touched; 2], (u8, u8))` | fixtures/reject/src/lib.rs:2395:2 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `ByKeyReplace`, `(u16, ByKeyReplace)` | fixtures/reject/src/lib.rs:1556:55 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `ByKeySet`, `(u16, ByKeySet)` | fixtures/reject/src/lib.rs:1548:51 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `ByKeyTake`, `(u16, ByKeyTake)` | fixtures/reject/src/lib.rs:1563:52 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `ByRefReplace`, `(u16, ByRefReplace)` | fixtures/reject/src/lib.rs:1532:32 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `ByRefTake`, `(u16, ByRefTake)` | fixtures/reject/src/lib.rs:1540:32 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `[u32; 3]`, `Lanes` | fixtures/reject/src/lib.rs:2127:10 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `Aliased` | fixtures/reject/src/lib.rs:1055:29 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `ByBox` | fixtures/reject/src/lib.rs:1439:35 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `ByClosure` | fixtures/reject/src/lib.rs:1454:35 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `ByExchanged` | fixtures/reject/src/lib.rs:1500:30 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `ByInstance` | fixtures/reject/src/lib.rs:1480:35 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `ByObject` | fixtures/reject/src/lib.rs:1467:35 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `ByRead` | fixtures/reject/src/lib.rs:1390:35 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `ByReplace` | fixtures/reject/src/lib.rs:1428:35 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `BySwap` | fixtures/reject/src/lib.rs:1416:35 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `BySwapped` | fixtures/reject/src/lib.rs:1489:76 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `ByWrite` | fixtures/reject/src/lib.rs:1403:35 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `Called` | fixtures/reject/src/lib.rs:1021:28 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `Escaped` | fixtures/reject/src/lib.rs:1007:43 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `Hits` | fixtures/reject/src/lib.rs:655:21 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `InArray` | fixtures/reject/src/lib.rs:1237:9 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `InField` | fixtures/reject/src/lib.rs:1253:9 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `InGeneric` | fixtures/reject/src/lib.rs:1257:9 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `InNested` | fixtures/reject/src/lib.rs:1245:9 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `InPayload` | fixtures/reject/src/lib.rs:1249:9 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `InTuple` | fixtures/reject/src/lib.rs:1241:9 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `InWritten` | fixtures/reject/src/lib.rs:1261:9 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `Loaded` | fixtures/reject/src/lib.rs:1077:29 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `Looped` | fixtures/reject/src/lib.rs:1045:26 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `Mapped` | fixtures/reject/src/lib.rs:1122:39 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `Onced` | fixtures/reject/src/lib.rs:1168:46 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `Repeated` | fixtures/reject/src/lib.rs:1156:18 | -| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `Rewritten` | fixtures/reject/src/lib.rs:1065:47 | -| 1 | a raw pointer to `_` in a variable assigned again while it may point there | `Target` | fixtures/reject/src/lib.rs:1604:10 | -| 1 | a raw pointer to `_` in a variable assigned again while it may point there | `[u32; 3]` | fixtures/reject/src/lib.rs:2125:10 | -| 1 | a raw pointer to `_` in an element, a payload, or a union field, which is not supported yet | `(u32, u32)` | fixtures/reject/src/lib.rs:614:10 | -| 1 | a reference through which a raw pointer may be made into `_` in `_`, which the crate may put another object in place of | `InArray`, `[InArray; 2]` | fixtures/reject/src/lib.rs:1272:33 | -| 1 | a reference through which a raw pointer may be made into `_` in `_`, which the crate may put another object in place of | `InTuple`, `(u16, InTuple)` | fixtures/reject/src/lib.rs:1281:33 | -| 1 | a reference through which a raw pointer may be made into `_` in `_`, which the crate may put another object in place of | `InWritten`, `[InWritten; 1]` | fixtures/reject/src/lib.rs:1333:35 | -| 1 | a reference through which a raw pointer may be made into `_` in `_`, which the crate may put another object in place of | `Parked`, `Parking` | fixtures/reject/src/lib.rs:2072:20 | -| 1 | a reference through which a raw pointer may be made into `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `Assigned` | fixtures/reject/src/lib.rs:1947:20 | -| 1 | a reference through which a raw pointer may be made into `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `Closed` | fixtures/reject/src/lib.rs:2013:15 | -| 1 | a reference through which a raw pointer may be made into `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `Deeper` | fixtures/reject/src/lib.rs:1973:22 | -| 1 | a reference through which a raw pointer may be made into `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `Dynamic` | fixtures/reject/src/lib.rs:1997:20 | -| 1 | a reference through which a raw pointer may be made into `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `Replaced` | fixtures/reject/src/lib.rs:1892:20 | -| 1 | a reference through which a raw pointer may be made into `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `Swapped` | fixtures/reject/src/lib.rs:1910:20 | -| 1 | a reference through which a raw pointer may be made into `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `Taken` | fixtures/reject/src/lib.rs:1928:20 | -| 1 | a reference through which a raw pointer may be made into `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `[std::cell::UnsafeCell; 2]` | fixtures/reject/src/lib.rs:2026:20 | -| 1 | a reference through which a raw pointer may be made into `_` in an element, a payload, or a union field, which is not supported yet | `InPayload` | fixtures/reject/src/lib.rs:1299:11 | -| 1 | a reference to `_`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there | `Behind` | fixtures/reject/src/lib.rs:1686:22 | -| 1 | a reference to `_`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there | `Chosen` | fixtures/reject/src/lib.rs:1841:17 | -| 1 | a reference to `_`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there | `Compared` | fixtures/reject/src/lib.rs:1808:22 | -| 1 | a reference to `_`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there | `Deep` | fixtures/reject/src/lib.rs:1722:18 | -| 1 | a reference to `_`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there | `Enclosing` | fixtures/reject/src/lib.rs:1825:22 | -| 1 | a reference to `_`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there | `Shared` | fixtures/reject/src/lib.rs:1763:20 | -| 1 | a reference to `_`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there | `Slotted` | fixtures/reject/src/lib.rs:1744:21 | -| 1 | a reference to `_`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there | `Unboxed` | fixtures/reject/src/lib.rs:1701:16 | -| 1 | a reference to `_`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there | `Wrapped` | fixtures/reject/src/lib.rs:1869:21 | -| 1 | a reference to `_`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there | `std::cell::UnsafeCell` | fixtures/reject/src/lib.rs:1590:18 | -| 1 | a reference to `_`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there | `std::option::Option` | fixtures/reject/src/lib.rs:2043:13 | +| 1 | a mapped guard of `_`, which JS can't write in place | `{closure}` | fixtures/reject/src/lib.rs:2074:10 | +| 1 | a pointer into `_`, which JS keeps as an object that knows no array it is in | `(u8, u8)` | fixtures/reject/src/lib.rs:2081:12 | +| 1 | a pointer into an array of `_`, which JS keeps as an object that knows no array it is in | `(u8, u8)` | fixtures/reject/src/lib.rs:2086:30 | +| 1 | a raw pointer to `_` behind a reference, which is the object and not where it is kept | `std::vec::Vec` | fixtures/reject/src/lib.rs:505:10 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `(u16, u16)`, `Copied` | fixtures/reject/src/lib.rs:1098:31 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `(u16, u16)`, `Pushed` | fixtures/reject/src/lib.rs:1170:22 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `(u32, u32)`, `Lane` | fixtures/reject/src/lib.rs:794:19 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `(u32, u32)`, `Plain` | fixtures/reject/src/lib.rs:748:10 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `(u32, u32)`, `Span2` | fixtures/reject/src/lib.rs:536:10 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `(u32, u32)`, `Track` | fixtures/reject/src/lib.rs:774:19 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `(u32, u32)`, `Window` | fixtures/reject/src/lib.rs:597:2 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `(u32, u32)`, `std::cell::UnsafeCell` | fixtures/reject/src/lib.rs:615:15 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `(u8, u8)`, `(Dropped, (u8, u8))` | fixtures/reject/src/lib.rs:2333:2 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `(u8, u8)`, `([Cloned; 2], (u8, u8))` | fixtures/reject/src/lib.rs:2317:2 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `(u8, u8)`, `([Greatest; 2], (u8, u8))` | fixtures/reject/src/lib.rs:2351:13 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `(u8, u8)`, `([Touched; 2], (u8, u8))` | fixtures/reject/src/lib.rs:2382:2 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `ByKeyReplace`, `(u16, ByKeyReplace)` | fixtures/reject/src/lib.rs:1543:55 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `ByKeySet`, `(u16, ByKeySet)` | fixtures/reject/src/lib.rs:1535:51 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `ByKeyTake`, `(u16, ByKeyTake)` | fixtures/reject/src/lib.rs:1550:52 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `ByRefReplace`, `(u16, ByRefReplace)` | fixtures/reject/src/lib.rs:1519:32 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `ByRefTake`, `(u16, ByRefTake)` | fixtures/reject/src/lib.rs:1527:32 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `[u32; 3]`, `Lanes` | fixtures/reject/src/lib.rs:2114:10 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `Aliased` | fixtures/reject/src/lib.rs:1042:29 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `ByBox` | fixtures/reject/src/lib.rs:1426:35 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `ByClosure` | fixtures/reject/src/lib.rs:1441:35 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `ByExchanged` | fixtures/reject/src/lib.rs:1487:30 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `ByInstance` | fixtures/reject/src/lib.rs:1467:35 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `ByObject` | fixtures/reject/src/lib.rs:1454:35 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `ByRead` | fixtures/reject/src/lib.rs:1377:35 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `ByReplace` | fixtures/reject/src/lib.rs:1415:35 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `BySwap` | fixtures/reject/src/lib.rs:1403:35 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `BySwapped` | fixtures/reject/src/lib.rs:1476:76 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `ByWrite` | fixtures/reject/src/lib.rs:1390:35 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `Called` | fixtures/reject/src/lib.rs:1008:28 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `Escaped` | fixtures/reject/src/lib.rs:994:43 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `Hits` | fixtures/reject/src/lib.rs:648:21 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `InArray` | fixtures/reject/src/lib.rs:1224:9 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `InField` | fixtures/reject/src/lib.rs:1240:9 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `InGeneric` | fixtures/reject/src/lib.rs:1244:9 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `InNested` | fixtures/reject/src/lib.rs:1232:9 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `InPayload` | fixtures/reject/src/lib.rs:1236:9 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `InTuple` | fixtures/reject/src/lib.rs:1228:9 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `InWritten` | fixtures/reject/src/lib.rs:1248:9 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `Loaded` | fixtures/reject/src/lib.rs:1064:29 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `Looped` | fixtures/reject/src/lib.rs:1032:26 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `Mapped` | fixtures/reject/src/lib.rs:1109:39 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `Onced` | fixtures/reject/src/lib.rs:1155:46 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `Repeated` | fixtures/reject/src/lib.rs:1143:18 | +| 1 | a raw pointer to `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `Rewritten` | fixtures/reject/src/lib.rs:1052:47 | +| 1 | a raw pointer to `_` in a variable assigned again while it may point there | `Target` | fixtures/reject/src/lib.rs:1591:10 | +| 1 | a raw pointer to `_` in a variable assigned again while it may point there | `[u32; 3]` | fixtures/reject/src/lib.rs:2112:10 | +| 1 | a raw pointer to `_` in an element, a payload, or a union field, which is not supported yet | `(u32, u32)` | fixtures/reject/src/lib.rs:607:10 | +| 1 | a reference through which a raw pointer may be made into `_` in `_`, which the crate may put another object in place of | `InArray`, `[InArray; 2]` | fixtures/reject/src/lib.rs:1259:33 | +| 1 | a reference through which a raw pointer may be made into `_` in `_`, which the crate may put another object in place of | `InTuple`, `(u16, InTuple)` | fixtures/reject/src/lib.rs:1268:33 | +| 1 | a reference through which a raw pointer may be made into `_` in `_`, which the crate may put another object in place of | `InWritten`, `[InWritten; 1]` | fixtures/reject/src/lib.rs:1320:35 | +| 1 | a reference through which a raw pointer may be made into `_` in `_`, which the crate may put another object in place of | `Parked`, `Parking` | fixtures/reject/src/lib.rs:2059:20 | +| 1 | a reference through which a raw pointer may be made into `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `Assigned` | fixtures/reject/src/lib.rs:1934:20 | +| 1 | a reference through which a raw pointer may be made into `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `Closed` | fixtures/reject/src/lib.rs:2000:15 | +| 1 | a reference through which a raw pointer may be made into `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `Deeper` | fixtures/reject/src/lib.rs:1960:22 | +| 1 | a reference through which a raw pointer may be made into `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `Dynamic` | fixtures/reject/src/lib.rs:1984:20 | +| 1 | a reference through which a raw pointer may be made into `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `Replaced` | fixtures/reject/src/lib.rs:1879:20 | +| 1 | a reference through which a raw pointer may be made into `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `Swapped` | fixtures/reject/src/lib.rs:1897:20 | +| 1 | a reference through which a raw pointer may be made into `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `Taken` | fixtures/reject/src/lib.rs:1915:20 | +| 1 | a reference through which a raw pointer may be made into `_` in `_`, which the crate may put another object in place of | `std::cell::UnsafeCell`, `[std::cell::UnsafeCell; 2]` | fixtures/reject/src/lib.rs:2013:20 | +| 1 | a reference through which a raw pointer may be made into `_` in an element, a payload, or a union field, which is not supported yet | `InPayload` | fixtures/reject/src/lib.rs:1286:11 | +| 1 | a reference to `_`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there | `Behind` | fixtures/reject/src/lib.rs:1673:22 | +| 1 | a reference to `_`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there | `Chosen` | fixtures/reject/src/lib.rs:1828:17 | +| 1 | a reference to `_`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there | `Compared` | fixtures/reject/src/lib.rs:1795:22 | +| 1 | a reference to `_`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there | `Deep` | fixtures/reject/src/lib.rs:1709:18 | +| 1 | a reference to `_`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there | `Enclosing` | fixtures/reject/src/lib.rs:1812:22 | +| 1 | a reference to `_`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there | `Shared` | fixtures/reject/src/lib.rs:1750:20 | +| 1 | a reference to `_`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there | `Slotted` | fixtures/reject/src/lib.rs:1731:21 | +| 1 | a reference to `_`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there | `Unboxed` | fixtures/reject/src/lib.rs:1688:16 | +| 1 | a reference to `_`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there | `Wrapped` | fixtures/reject/src/lib.rs:1856:21 | +| 1 | a reference to `_`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there | `std::cell::UnsafeCell` | fixtures/reject/src/lib.rs:1577:18 | +| 1 | a reference to `_`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there | `std::option::Option` | fixtures/reject/src/lib.rs:2030:13 | | 1 | a scalar constant of type `_` | `f16` | fixtures/reject/src/lib.rs:8:2 | -| 1 | a slice from a pointer to `_`, which JS keeps as an object that knows no array it is in | `(u8, u8)` | fixtures/reject/src/lib.rs:2098:11 | -| 1 | a slice or a cell of a mutable reference to `_` that names no place, which a whole write would replace only there | `Reused` | fixtures/reject/src/lib.rs:2201:2 | -| 1 | a slice or a cell of a mutable reference to `_` that names no place, which a whole write would replace only there | `std::cell::LazyCell` | fixtures/reject/src/lib.rs:2243:3 | -| 1 | a slice or a cell of a mutable reference to `_` that names no place, which a whole write would replace only there | `std::thread::LocalKey` | fixtures/reject/src/lib.rs:2254:2 | -| 1 | a trait object of `_`, which is not supported yet | `[u8; 4]` | fixtures/reject/src/lib.rs:410:26 | -| 1 | an assignment through a reference to `_` | `std::sync::LazyLock` | fixtures/reject/src/lib.rs:2248:2 | +| 1 | a slice from a pointer to `_`, which JS keeps as an object that knows no array it is in | `(u8, u8)` | fixtures/reject/src/lib.rs:2085:11 | +| 1 | a slice or a cell of a mutable reference to `_` that names no place, which a whole write would replace only there | `Reused` | fixtures/reject/src/lib.rs:2188:2 | +| 1 | a slice or a cell of a mutable reference to `_` that names no place, which a whole write would replace only there | `std::cell::LazyCell` | fixtures/reject/src/lib.rs:2230:3 | +| 1 | a slice or a cell of a mutable reference to `_` that names no place, which a whole write would replace only there | `std::thread::LocalKey` | fixtures/reject/src/lib.rs:2241:2 | +| 1 | a trait object of `_`, which is not supported yet | `[u8; 4]` | fixtures/reject/src/lib.rs:403:26 | +| 1 | an assignment through a reference to `_` | `std::sync::LazyLock` | fixtures/reject/src/lib.rs:2235:2 | | 1 | an assignment through a reference to `_` | `std::sync::MutexGuard` | fixtures/reject/src/lib.rs:83:2 | -| 1 | an offset of a pointer to `_`, which JS keeps as an object that knows no array it is in | `(u8, u8)` | fixtures/reject/src/lib.rs:2096:13 | +| 1 | an offset of a pointer to `_`, which JS keeps as an object that knows no array it is in | `(u8, u8)` | fixtures/reject/src/lib.rs:2083:13 | | 1 | arithmetic on `_` | `f16` | fixtures/reject/src/lib.rs:8:2 | -| 1 | comparing `_` | `*mut [u8; 4]` | fixtures/reject/src/lib.rs:1647:41 | +| 1 | comparing `_` | `*mut [u8; 4]` | fixtures/reject/src/lib.rs:1634:41 | | 1 | comparing `_` as a key, which is not supported yet | `std::collections::BTreeSet` | fixtures/reject/src/lib.rs:193:75 | -| 1 | comparing pointers to `_` in an atomic, which JS has no address of | `u32` | fixtures/reject/src/lib.rs:712:15 | -| 1 | comparing pointers to `_`, which has no bytes and so no address of its own | `Bare` | fixtures/reject/src/lib.rs:663:70 | -| 1 | const generic types are not supported: `_` | `Block` | fixtures/reject/src/lib.rs:2032:1 | -| 1 | constructing `_` | `std::borrow::Cow` | fixtures/reject/src/lib.rs:285:53 | +| 1 | comparing pointers to `_` in an atomic, which JS has no address of | `u32` | fixtures/reject/src/lib.rs:705:15 | +| 1 | comparing pointers to `_`, which has no bytes and so no address of its own | `Bare` | fixtures/reject/src/lib.rs:656:70 | +| 1 | const generic types are not supported: `_` | `Block` | fixtures/reject/src/lib.rs:2019:1 | +| 1 | constructing `_` | `std::borrow::Cow` | fixtures/reject/src/lib.rs:278:53 | | 1 | hashing `_` as a key, which is not supported yet | `std::collections::BTreeSet` | fixtures/reject/src/lib.rs:193:75 | -| 1 | hashing `_` by its address, which JS has no counterpart of | `*const [u8; 4]` | fixtures/reject/src/lib.rs:1651:5 | +| 1 | hashing `_` by its address, which JS has no counterpart of | `*const [u8; 4]` | fixtures/reject/src/lib.rs:1638:5 | | 1 | hashing `_` through `_`'s own `Hash::hash_slice`, which is not supported yet | `std::vec::Vec`, `Batched` | fixtures/reject/src/lib.rs:253:16 | | 1 | overriding `_`, which std's adaptors call in place of `next` or beside it | `DoubleEndedIterator::nth_back` | fixtures/reject/src/lib.rs:150:2 | | 1 | overriding `_`, which std's adaptors call in place of `next` or beside it | `Iterator::fold` | fixtures/reject/src/lib.rs:125:2 | -| 1 | passing `_`, which drops, to `_`, which is not supported yet | `{closure}`, `String::retain` | fixtures/reject/src/lib.rs:719:4 | -| 1 | passing `_`, which drops, to `_`, which is not supported yet | `{closure}`, `str::contains` | fixtures/reject/src/lib.rs:262:4 | | 1 | replacing the value behind a reference to `_` | `std::sync::MutexGuard` | fixtures/reject/src/lib.rs:112:2 | -| 1 | union `_`, whose fields overlap in `_` and `f64`, which JS keeps apart | `Bits`, `u32` | fixtures/reject/src/lib.rs:517:1 | -| 1 | unsupported call to `_` | `::eq` | fixtures/reject/src/lib.rs:473:2 | -| 1 | unsupported call to `_` | `::eq` | fixtures/reject/src/lib.rs:2301:25 | -| 1 | unsupported call to `_` | `::fmt` | fixtures/reject/src/lib.rs:2301:2 | -| 1 | unsupported call to `_` | `::contains` | fixtures/reject/src/lib.rs:919:32 | -| 1 | unsupported call to `_` | `::eq` | fixtures/reject/src/lib.rs:305:2 | -| 1 | unsupported call to `_` | `::is_sorted` | fixtures/reject/src/lib.rs:701:15 | +| 1 | union `_`, whose fields overlap in `_` and `f64`, which JS keeps apart | `Bits`, `u32` | fixtures/reject/src/lib.rs:510:1 | +| 1 | unsupported call to `_` | `::eq` | fixtures/reject/src/lib.rs:466:2 | +| 1 | unsupported call to `_` | `::eq` | fixtures/reject/src/lib.rs:2288:25 | +| 1 | unsupported call to `_` | `::fmt` | fixtures/reject/src/lib.rs:2288:2 | +| 1 | unsupported call to `_` | `::contains` | fixtures/reject/src/lib.rs:906:32 | +| 1 | unsupported call to `_` | `::eq` | fixtures/reject/src/lib.rs:298:2 | +| 1 | unsupported call to `_` | `::is_sorted` | fixtures/reject/src/lib.rs:694:15 | | 1 | unsupported call to `_` | `::hash` | fixtures/reject/src/lib.rs:244:10 | -| 1 | unsupported call to `_` | `std::any::TypeId::of` | fixtures/reject/src/lib.rs:473:17 | -| 1 | unsupported call to `_` | `std::borrow::Cow::is_borrowed` | fixtures/reject/src/lib.rs:279:2 | -| 1 | unsupported call to `_` | `std::mem::size_of_val` | fixtures/reject/src/lib.rs:2211:2 | -| 1 | unsupported call to `_` | `std::num::is_ascii_octdigit` | fixtures/reject/src/lib.rs:1212:4 | +| 1 | unsupported call to `_` | `std::any::TypeId::of` | fixtures/reject/src/lib.rs:466:17 | +| 1 | unsupported call to `_` | `std::borrow::Cow::is_borrowed` | fixtures/reject/src/lib.rs:272:2 | +| 1 | unsupported call to `_` | `std::mem::size_of_val` | fixtures/reject/src/lib.rs:2198:2 | +| 1 | unsupported call to `_` | `std::num::is_ascii_octdigit` | fixtures/reject/src/lib.rs:1199:4 | | 1 | unsupported call to `_` | `std::ops::Range::contains` | fixtures/reject/src/lib.rs:164:8 | -| 1 | unsupported call to `_` | `std::ops::Range::is_empty` | fixtures/reject/src/lib.rs:924:9 | -| 1 | unsupported call to `_` | `std::ops::RangeTo::contains` | fixtures/reject/src/lib.rs:919:11 | -| 1 | unsupported call to `_` | `std::ptr::addr_eq` | fixtures/reject/src/lib.rs:1647:14 | -| 1 | unsupported call to `_` | `std::std::alloc_zeroed` | fixtures/reject/src/lib.rs:2295:13 | -| 1 | unsupported call to `_` | `std::str::as_bytes_mut` | fixtures/reject/src/lib.rs:1571:13 | -| 1 | unsupported call to `_` | `std::str::parse` | fixtures/reject/src/lib.rs:375:4 | -| 1 | unsupported type `_` from another crate | `std::net::AddrParseError` | fixtures/reject/src/lib.rs:374:32 | -| 1 | unsupported type `_` from another crate | `std::net::Ipv4Addr` | fixtures/reject/src/lib.rs:374:32 | +| 1 | unsupported call to `_` | `std::ops::Range::is_empty` | fixtures/reject/src/lib.rs:911:9 | +| 1 | unsupported call to `_` | `std::ops::RangeTo::contains` | fixtures/reject/src/lib.rs:906:11 | +| 1 | unsupported call to `_` | `std::ptr::addr_eq` | fixtures/reject/src/lib.rs:1634:14 | +| 1 | unsupported call to `_` | `std::std::alloc_zeroed` | fixtures/reject/src/lib.rs:2282:13 | +| 1 | unsupported call to `_` | `std::str::as_bytes_mut` | fixtures/reject/src/lib.rs:1558:13 | +| 1 | unsupported call to `_` | `std::str::parse` | fixtures/reject/src/lib.rs:368:4 | +| 1 | unsupported type `_` from another crate | `std::net::AddrParseError` | fixtures/reject/src/lib.rs:367:32 | +| 1 | unsupported type `_` from another crate | `std::net::Ipv4Addr` | fixtures/reject/src/lib.rs:367:32 | ## Spans
a raw pointer to `_` in `_`, which the crate may put another object in place of (50) -- fixtures/reject/src/lib.rs:543:10: a raw pointer to `(u32, u32)` in `Span2`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:604:2: a raw pointer to `(u32, u32)` in `Window`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:622:15: a raw pointer to `(u32, u32)` in `std::cell::UnsafeCell<(u32, u32)>`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:655:21: a raw pointer to `std::cell::UnsafeCell` in `Hits`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:761:10: a raw pointer to `(u32, u32)` in `Plain`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:787:19: a raw pointer to `(u32, u32)` in `Track`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:807:19: a raw pointer to `(u32, u32)` in `Lane`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:843:10: a raw pointer to `(u32, u32)` in `Gap`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:844:10: a raw pointer to `(u32, u32)` in `Gap`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:845:58: a raw pointer to `(u32, u32)` in `Gap`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:857:19: a raw pointer to `std::mem::MaybeUninit<(u32, u32)>` in `Gap`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:858:19: a raw pointer to `std::mem::MaybeUninit<(u32, u32)>` in `Gap`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1007:43: a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Escaped`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1021:28: a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Called`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1045:26: a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Looped`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1055:29: a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Aliased`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1065:47: a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Rewritten`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1077:29: a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Loaded`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1111:31: a raw pointer to `(u16, u16)` in `Copied`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1122:39: a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Mapped`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1156:18: a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Repeated`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1168:46: a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Onced`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1183:22: a raw pointer to `(u16, u16)` in `Pushed`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1237:9: a raw pointer to `std::cell::UnsafeCell` in `InArray`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1241:9: a raw pointer to `std::cell::UnsafeCell` in `InTuple`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1245:9: a raw pointer to `std::cell::UnsafeCell` in `InNested`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1249:9: a raw pointer to `std::cell::UnsafeCell` in `InPayload`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1253:9: a raw pointer to `std::cell::UnsafeCell` in `InField`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1257:9: a raw pointer to `std::cell::UnsafeCell` in `InGeneric`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1261:9: a raw pointer to `std::cell::UnsafeCell` in `InWritten`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1390:35: a raw pointer to `std::cell::UnsafeCell` in `ByRead`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1403:35: a raw pointer to `std::cell::UnsafeCell` in `ByWrite`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1416:35: a raw pointer to `std::cell::UnsafeCell` in `BySwap`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1428:35: a raw pointer to `std::cell::UnsafeCell` in `ByReplace`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1439:35: a raw pointer to `std::cell::UnsafeCell` in `ByBox`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1454:35: a raw pointer to `std::cell::UnsafeCell` in `ByClosure`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1467:35: a raw pointer to `std::cell::UnsafeCell` in `ByObject`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1480:35: a raw pointer to `std::cell::UnsafeCell` in `ByInstance`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1489:76: a raw pointer to `std::cell::UnsafeCell` in `BySwapped`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1500:30: a raw pointer to `std::cell::UnsafeCell` in `ByExchanged`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1532:32: a raw pointer to `ByRefReplace` in `(u16, ByRefReplace)`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1540:32: a raw pointer to `ByRefTake` in `(u16, ByRefTake)`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1548:51: a raw pointer to `ByKeySet` in `(u16, ByKeySet)`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1556:55: a raw pointer to `ByKeyReplace` in `(u16, ByKeyReplace)`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1563:52: a raw pointer to `ByKeyTake` in `(u16, ByKeyTake)`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:2127:10: a raw pointer to `[u32; 3]` in `Lanes`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:2330:2: a raw pointer to `(u8, u8)` in `([Cloned; 2], (u8, u8))`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:2346:2: a raw pointer to `(u8, u8)` in `(Dropped, (u8, u8))`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:2364:13: a raw pointer to `(u8, u8)` in `([Greatest; 2], (u8, u8))`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:2395:2: a raw pointer to `(u8, u8)` in `([Touched; 2], (u8, u8))`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:536:10: a raw pointer to `(u32, u32)` in `Span2`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:597:2: a raw pointer to `(u32, u32)` in `Window`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:615:15: a raw pointer to `(u32, u32)` in `std::cell::UnsafeCell<(u32, u32)>`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:648:21: a raw pointer to `std::cell::UnsafeCell` in `Hits`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:748:10: a raw pointer to `(u32, u32)` in `Plain`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:774:19: a raw pointer to `(u32, u32)` in `Track`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:794:19: a raw pointer to `(u32, u32)` in `Lane`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:830:10: a raw pointer to `(u32, u32)` in `Gap`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:831:10: a raw pointer to `(u32, u32)` in `Gap`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:832:58: a raw pointer to `(u32, u32)` in `Gap`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:844:19: a raw pointer to `std::mem::MaybeUninit<(u32, u32)>` in `Gap`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:845:19: a raw pointer to `std::mem::MaybeUninit<(u32, u32)>` in `Gap`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:994:43: a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Escaped`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1008:28: a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Called`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1032:26: a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Looped`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1042:29: a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Aliased`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1052:47: a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Rewritten`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1064:29: a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Loaded`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1098:31: a raw pointer to `(u16, u16)` in `Copied`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1109:39: a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Mapped`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1143:18: a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Repeated`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1155:46: a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Onced`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1170:22: a raw pointer to `(u16, u16)` in `Pushed`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1224:9: a raw pointer to `std::cell::UnsafeCell` in `InArray`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1228:9: a raw pointer to `std::cell::UnsafeCell` in `InTuple`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1232:9: a raw pointer to `std::cell::UnsafeCell` in `InNested`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1236:9: a raw pointer to `std::cell::UnsafeCell` in `InPayload`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1240:9: a raw pointer to `std::cell::UnsafeCell` in `InField`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1244:9: a raw pointer to `std::cell::UnsafeCell` in `InGeneric`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1248:9: a raw pointer to `std::cell::UnsafeCell` in `InWritten`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1377:35: a raw pointer to `std::cell::UnsafeCell` in `ByRead`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1390:35: a raw pointer to `std::cell::UnsafeCell` in `ByWrite`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1403:35: a raw pointer to `std::cell::UnsafeCell` in `BySwap`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1415:35: a raw pointer to `std::cell::UnsafeCell` in `ByReplace`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1426:35: a raw pointer to `std::cell::UnsafeCell` in `ByBox`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1441:35: a raw pointer to `std::cell::UnsafeCell` in `ByClosure`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1454:35: a raw pointer to `std::cell::UnsafeCell` in `ByObject`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1467:35: a raw pointer to `std::cell::UnsafeCell` in `ByInstance`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1476:76: a raw pointer to `std::cell::UnsafeCell` in `BySwapped`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1487:30: a raw pointer to `std::cell::UnsafeCell` in `ByExchanged`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1519:32: a raw pointer to `ByRefReplace` in `(u16, ByRefReplace)`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1527:32: a raw pointer to `ByRefTake` in `(u16, ByRefTake)`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1535:51: a raw pointer to `ByKeySet` in `(u16, ByKeySet)`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1543:55: a raw pointer to `ByKeyReplace` in `(u16, ByKeyReplace)`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1550:52: a raw pointer to `ByKeyTake` in `(u16, ByKeyTake)`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:2114:10: a raw pointer to `[u32; 3]` in `Lanes`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:2317:2: a raw pointer to `(u8, u8)` in `([Cloned; 2], (u8, u8))`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:2333:2: a raw pointer to `(u8, u8)` in `(Dropped, (u8, u8))`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:2351:13: a raw pointer to `(u8, u8)` in `([Greatest; 2], (u8, u8))`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:2382:2: a raw pointer to `(u8, u8)` in `([Touched; 2], (u8, u8))`, which the crate may put another object in place of
a raw pointer to `_` in a variable assigned again while it may point there (23) -- fixtures/reject/src/lib.rs:551:10: a raw pointer to `(u32, u32)` in a variable assigned again while it may point there -- fixtures/reject/src/lib.rs:559:10: a raw pointer to `(u32, u32)` in a variable assigned again while it may point there -- fixtures/reject/src/lib.rs:568:10: a raw pointer to `(u32, u32)` in a variable assigned again while it may point there -- fixtures/reject/src/lib.rs:576:10: a raw pointer to `(u32, u32)` in a variable assigned again while it may point there -- fixtures/reject/src/lib.rs:585:10: a raw pointer to `(u32, u32)` in a variable assigned again while it may point there -- fixtures/reject/src/lib.rs:593:10: a raw pointer to `(u32, u32)` in a variable assigned again while it may point there -- fixtures/reject/src/lib.rs:631:15: a raw pointer to `std::cell::UnsafeCell` in a variable assigned again while it may point there -- fixtures/reject/src/lib.rs:644:15: a raw pointer to `std::cell::UnsafeCell` in a variable assigned again while it may point there -- fixtures/reject/src/lib.rs:936:26: a raw pointer to `(u32, u32)` in a variable assigned again while it may point there -- fixtures/reject/src/lib.rs:949:22: a raw pointer to `(u32, u32)` in a variable assigned again while it may point there -- fixtures/reject/src/lib.rs:959:12: a raw pointer to `(u32, u32)` in a variable assigned again while it may point there -- fixtures/reject/src/lib.rs:968:10: a raw pointer to `(u32, u32)` in a variable assigned again while it may point there -- fixtures/reject/src/lib.rs:978:17: a raw pointer to `(u32, u32)` in a variable assigned again while it may point there -- fixtures/reject/src/lib.rs:983:10: a raw pointer to `(u32, u32)` in a variable assigned again while it may point there -- fixtures/reject/src/lib.rs:1604:10: a raw pointer to `Target` in a variable assigned again while it may point there -- fixtures/reject/src/lib.rs:1617:10: a raw pointer to `(u32, u32)` in a variable assigned again while it may point there -- fixtures/reject/src/lib.rs:1632:10: a raw pointer to `(u32, u32)` in a variable assigned again while it may point there -- fixtures/reject/src/lib.rs:1668:26: a raw pointer to `[u8; 4]` in a variable assigned again while it may point there -- fixtures/reject/src/lib.rs:1669:10: a raw pointer to `[u8; 4]` in a variable assigned again while it may point there -- fixtures/reject/src/lib.rs:2125:10: a raw pointer to `[u32; 3]` in a variable assigned again while it may point there -- fixtures/reject/src/lib.rs:2217:10: a raw pointer to `(u32, u32)` in a variable assigned again while it may point there -- fixtures/reject/src/lib.rs:2225:10: a raw pointer to `(u32, u32)` in a variable assigned again while it may point there -- fixtures/reject/src/lib.rs:2233:10: a raw pointer to `(u32, u32)` in a variable assigned again while it may point there +- fixtures/reject/src/lib.rs:544:10: a raw pointer to `(u32, u32)` in a variable assigned again while it may point there +- fixtures/reject/src/lib.rs:552:10: a raw pointer to `(u32, u32)` in a variable assigned again while it may point there +- fixtures/reject/src/lib.rs:561:10: a raw pointer to `(u32, u32)` in a variable assigned again while it may point there +- fixtures/reject/src/lib.rs:569:10: a raw pointer to `(u32, u32)` in a variable assigned again while it may point there +- fixtures/reject/src/lib.rs:578:10: a raw pointer to `(u32, u32)` in a variable assigned again while it may point there +- fixtures/reject/src/lib.rs:586:10: a raw pointer to `(u32, u32)` in a variable assigned again while it may point there +- fixtures/reject/src/lib.rs:624:15: a raw pointer to `std::cell::UnsafeCell` in a variable assigned again while it may point there +- fixtures/reject/src/lib.rs:637:15: a raw pointer to `std::cell::UnsafeCell` in a variable assigned again while it may point there +- fixtures/reject/src/lib.rs:923:26: a raw pointer to `(u32, u32)` in a variable assigned again while it may point there +- fixtures/reject/src/lib.rs:936:22: a raw pointer to `(u32, u32)` in a variable assigned again while it may point there +- fixtures/reject/src/lib.rs:946:12: a raw pointer to `(u32, u32)` in a variable assigned again while it may point there +- fixtures/reject/src/lib.rs:955:10: a raw pointer to `(u32, u32)` in a variable assigned again while it may point there +- fixtures/reject/src/lib.rs:965:17: a raw pointer to `(u32, u32)` in a variable assigned again while it may point there +- fixtures/reject/src/lib.rs:970:10: a raw pointer to `(u32, u32)` in a variable assigned again while it may point there +- fixtures/reject/src/lib.rs:1591:10: a raw pointer to `Target` in a variable assigned again while it may point there +- fixtures/reject/src/lib.rs:1604:10: a raw pointer to `(u32, u32)` in a variable assigned again while it may point there +- fixtures/reject/src/lib.rs:1619:10: a raw pointer to `(u32, u32)` in a variable assigned again while it may point there +- fixtures/reject/src/lib.rs:1655:26: a raw pointer to `[u8; 4]` in a variable assigned again while it may point there +- fixtures/reject/src/lib.rs:1656:10: a raw pointer to `[u8; 4]` in a variable assigned again while it may point there +- fixtures/reject/src/lib.rs:2112:10: a raw pointer to `[u32; 3]` in a variable assigned again while it may point there +- fixtures/reject/src/lib.rs:2204:10: a raw pointer to `(u32, u32)` in a variable assigned again while it may point there +- fixtures/reject/src/lib.rs:2212:10: a raw pointer to `(u32, u32)` in a variable assigned again while it may point there +- fixtures/reject/src/lib.rs:2220:10: a raw pointer to `(u32, u32)` in a variable assigned again while it may point there
@@ -542,114 +537,114 @@ The type or module each refused type or path belongs to. - fixtures/reject/src/lib.rs:164:8: unsupported call to `std::ops::Range::::contains::` - fixtures/reject/src/lib.rs:244:10: unsupported call to `::hash::` -- fixtures/reject/src/lib.rs:279:2: unsupported call to `std::borrow::Cow::<'_, [u8]>::is_borrowed` -- fixtures/reject/src/lib.rs:305:2: unsupported call to ` as std::cmp::PartialEq>::eq` -- fixtures/reject/src/lib.rs:370:17: unsupported call to ` as std::iter::Iterator>::sum::` -- fixtures/reject/src/lib.rs:370:38: unsupported call to ` as std::iter::Iterator>::sum::` -- fixtures/reject/src/lib.rs:375:4: unsupported call to `core::str::::parse::` -- fixtures/reject/src/lib.rs:473:2: unsupported call to `::eq` -- fixtures/reject/src/lib.rs:473:17: unsupported call to `std::any::TypeId::of::` -- fixtures/reject/src/lib.rs:701:15: unsupported call to ` as std::iter::Iterator>::is_sorted` -- fixtures/reject/src/lib.rs:919:11: unsupported call to `std::ops::RangeTo::::contains::` -- fixtures/reject/src/lib.rs:919:32: unsupported call to ` as std::ops::RangeBounds>::contains::` -- fixtures/reject/src/lib.rs:924:9: unsupported call to `std::ops::Range::<&mut u8>::is_empty` -- fixtures/reject/src/lib.rs:1212:4: unsupported call to `core::num::::is_ascii_octdigit` -- fixtures/reject/src/lib.rs:1571:13: unsupported call to `core::str::::as_bytes_mut` -- fixtures/reject/src/lib.rs:1647:14: unsupported call to `std::ptr::addr_eq::<[u8; 4], [u8; 4]>` -- fixtures/reject/src/lib.rs:2211:2: unsupported call to `std::mem::size_of_val::` -- fixtures/reject/src/lib.rs:2295:13: unsupported call to `std::alloc::alloc_zeroed` -- fixtures/reject/src/lib.rs:2301:2: unsupported call to ` as std::fmt::Debug>::fmt` -- fixtures/reject/src/lib.rs:2301:25: unsupported call to ` as std::cmp::PartialEq>::eq` +- fixtures/reject/src/lib.rs:272:2: unsupported call to `std::borrow::Cow::<'_, [u8]>::is_borrowed` +- fixtures/reject/src/lib.rs:298:2: unsupported call to ` as std::cmp::PartialEq>::eq` +- fixtures/reject/src/lib.rs:363:17: unsupported call to ` as std::iter::Iterator>::sum::` +- fixtures/reject/src/lib.rs:363:38: unsupported call to ` as std::iter::Iterator>::sum::` +- fixtures/reject/src/lib.rs:368:4: unsupported call to `core::str::::parse::` +- fixtures/reject/src/lib.rs:466:2: unsupported call to `::eq` +- fixtures/reject/src/lib.rs:466:17: unsupported call to `std::any::TypeId::of::` +- fixtures/reject/src/lib.rs:694:15: unsupported call to ` as std::iter::Iterator>::is_sorted` +- fixtures/reject/src/lib.rs:906:11: unsupported call to `std::ops::RangeTo::::contains::` +- fixtures/reject/src/lib.rs:906:32: unsupported call to ` as std::ops::RangeBounds>::contains::` +- fixtures/reject/src/lib.rs:911:9: unsupported call to `std::ops::Range::<&mut u8>::is_empty` +- fixtures/reject/src/lib.rs:1199:4: unsupported call to `core::num::::is_ascii_octdigit` +- fixtures/reject/src/lib.rs:1558:13: unsupported call to `core::str::::as_bytes_mut` +- fixtures/reject/src/lib.rs:1634:14: unsupported call to `std::ptr::addr_eq::<[u8; 4], [u8; 4]>` +- fixtures/reject/src/lib.rs:2198:2: unsupported call to `std::mem::size_of_val::` +- fixtures/reject/src/lib.rs:2282:13: unsupported call to `std::alloc::alloc_zeroed` +- fixtures/reject/src/lib.rs:2288:2: unsupported call to ` as std::fmt::Debug>::fmt` +- fixtures/reject/src/lib.rs:2288:25: unsupported call to ` as std::cmp::PartialEq>::eq`
a reference through which a raw pointer may be made into `_` in `_`, which the crate may put another object in place of (15) -- fixtures/reject/src/lib.rs:1272:33: a reference through which a raw pointer may be made into `InArray` in `[InArray; 2]`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1281:33: a reference through which a raw pointer may be made into `InTuple` in `(u16, InTuple)`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1290:34: a reference through which a raw pointer may be made into `Mid` in `Outer`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1311:33: a reference through which a raw pointer may be made into `Mid` in `Outer`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1324:35: a reference through which a raw pointer may be made into `Mid` in `Outer`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1333:35: a reference through which a raw pointer may be made into `InWritten` in `[InWritten; 1]`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1892:20: a reference through which a raw pointer may be made into `std::cell::UnsafeCell` in `Replaced`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1910:20: a reference through which a raw pointer may be made into `std::cell::UnsafeCell` in `Swapped`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1928:20: a reference through which a raw pointer may be made into `std::cell::UnsafeCell` in `Taken`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1947:20: a reference through which a raw pointer may be made into `std::cell::UnsafeCell` in `Assigned`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1973:22: a reference through which a raw pointer may be made into `std::cell::UnsafeCell` in `Deeper`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:1997:20: a reference through which a raw pointer may be made into `std::cell::UnsafeCell` in `Dynamic`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:2013:15: a reference through which a raw pointer may be made into `std::cell::UnsafeCell` in `Closed`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:2026:20: a reference through which a raw pointer may be made into `std::cell::UnsafeCell` in `[std::cell::UnsafeCell; 2]`, which the crate may put another object in place of -- fixtures/reject/src/lib.rs:2072:20: a reference through which a raw pointer may be made into `Parked` in `Parking`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1259:33: a reference through which a raw pointer may be made into `InArray` in `[InArray; 2]`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1268:33: a reference through which a raw pointer may be made into `InTuple` in `(u16, InTuple)`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1277:34: a reference through which a raw pointer may be made into `Mid` in `Outer`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1298:33: a reference through which a raw pointer may be made into `Mid` in `Outer`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1311:35: a reference through which a raw pointer may be made into `Mid` in `Outer`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1320:35: a reference through which a raw pointer may be made into `InWritten` in `[InWritten; 1]`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1879:20: a reference through which a raw pointer may be made into `std::cell::UnsafeCell` in `Replaced`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1897:20: a reference through which a raw pointer may be made into `std::cell::UnsafeCell` in `Swapped`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1915:20: a reference through which a raw pointer may be made into `std::cell::UnsafeCell` in `Taken`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1934:20: a reference through which a raw pointer may be made into `std::cell::UnsafeCell` in `Assigned`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1960:22: a reference through which a raw pointer may be made into `std::cell::UnsafeCell` in `Deeper`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:1984:20: a reference through which a raw pointer may be made into `std::cell::UnsafeCell` in `Dynamic`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:2000:15: a reference through which a raw pointer may be made into `std::cell::UnsafeCell` in `Closed`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:2013:20: a reference through which a raw pointer may be made into `std::cell::UnsafeCell` in `[std::cell::UnsafeCell; 2]`, which the crate may put another object in place of +- fixtures/reject/src/lib.rs:2059:20: a reference through which a raw pointer may be made into `Parked` in `Parking`, which the crate may put another object in place of
a reference to `_`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there (15) -- fixtures/reject/src/lib.rs:1590:18: a reference to `std::cell::UnsafeCell`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there -- fixtures/reject/src/lib.rs:1668:26: a reference to `[u8; 4]`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there -- fixtures/reject/src/lib.rs:1686:22: a reference to `Behind`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there -- fixtures/reject/src/lib.rs:1701:16: a reference to `Unboxed`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there -- fixtures/reject/src/lib.rs:1722:18: a reference to `Deep`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there -- fixtures/reject/src/lib.rs:1744:21: a reference to `Slotted`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there -- fixtures/reject/src/lib.rs:1763:20: a reference to `Shared`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there -- fixtures/reject/src/lib.rs:1780:20: a reference to `Inside`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there -- fixtures/reject/src/lib.rs:1793:26: a reference to `Inside`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there -- fixtures/reject/src/lib.rs:1808:22: a reference to `Compared`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there -- fixtures/reject/src/lib.rs:1825:22: a reference to `Enclosing`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there -- fixtures/reject/src/lib.rs:1841:17: a reference to `Chosen`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there -- fixtures/reject/src/lib.rs:1854:19: a reference to `[u8; 4]`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there -- fixtures/reject/src/lib.rs:1869:21: a reference to `Wrapped>`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there -- fixtures/reject/src/lib.rs:2043:13: a reference to `std::option::Option>`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there +- fixtures/reject/src/lib.rs:1577:18: a reference to `std::cell::UnsafeCell`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there +- fixtures/reject/src/lib.rs:1655:26: a reference to `[u8; 4]`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there +- fixtures/reject/src/lib.rs:1673:22: a reference to `Behind`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there +- fixtures/reject/src/lib.rs:1688:16: a reference to `Unboxed`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there +- fixtures/reject/src/lib.rs:1709:18: a reference to `Deep`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there +- fixtures/reject/src/lib.rs:1731:21: a reference to `Slotted`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there +- fixtures/reject/src/lib.rs:1750:20: a reference to `Shared`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there +- fixtures/reject/src/lib.rs:1767:20: a reference to `Inside`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there +- fixtures/reject/src/lib.rs:1780:26: a reference to `Inside`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there +- fixtures/reject/src/lib.rs:1795:22: a reference to `Compared`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there +- fixtures/reject/src/lib.rs:1812:22: a reference to `Enclosing`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there +- fixtures/reject/src/lib.rs:1828:17: a reference to `Chosen`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there +- fixtures/reject/src/lib.rs:1841:19: a reference to `[u8; 4]`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there +- fixtures/reject/src/lib.rs:1856:21: a reference to `Wrapped>`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there +- fixtures/reject/src/lib.rs:2030:13: a reference to `std::option::Option>`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there
a cast from a pointer to `_` to one to `_`, which reads the bytes of one type as another (6) -- fixtures/reject/src/lib.rs:490:27: a cast from a pointer to `u32` to one to `u8`, which reads the bytes of one type as another -- fixtures/reject/src/lib.rs:2112:13: a cast from a pointer to `u32` to one to `[u32; 2]`, which reads the bytes of one type as another -- fixtures/reject/src/lib.rs:2267:15: a cast from a pointer to `u8` to one to `u32`, which reads the bytes of one type as another -- fixtures/reject/src/lib.rs:2268:16: a cast from a pointer to `u8` to one to `Halves`, which reads the bytes of one type as another -- fixtures/reject/src/lib.rs:2270:15: a cast from a pointer to `u32` to one to `u8`, which reads the bytes of one type as another -- fixtures/reject/src/lib.rs:2295:12: a cast from a pointer to `u8` to one to `u32`, which reads the bytes of one type as another +- fixtures/reject/src/lib.rs:483:27: a cast from a pointer to `u32` to one to `u8`, which reads the bytes of one type as another +- fixtures/reject/src/lib.rs:2099:13: a cast from a pointer to `u32` to one to `[u32; 2]`, which reads the bytes of one type as another +- fixtures/reject/src/lib.rs:2254:15: a cast from a pointer to `u8` to one to `u32`, which reads the bytes of one type as another +- fixtures/reject/src/lib.rs:2255:16: a cast from a pointer to `u8` to one to `Halves`, which reads the bytes of one type as another +- fixtures/reject/src/lib.rs:2257:15: a cast from a pointer to `u32` to one to `u8`, which reads the bytes of one type as another +- fixtures/reject/src/lib.rs:2282:12: a cast from a pointer to `u8` to one to `u32`, which reads the bytes of one type as another
`_` with a mutable reference to a value JS copies, which its mapping would copy (5) -- fixtures/reject/src/lib.rs:1170:22: `std::iter::once` with a mutable reference to a value JS copies, which its mapping would copy -- fixtures/reject/src/lib.rs:1572:13: `core::str::::get_unchecked_mut` with a mutable reference to a value JS copies, which its mapping would copy -- fixtures/reject/src/lib.rs:1577:20: `std::str::from_utf8_mut` with a mutable reference to a value JS copies, which its mapping would copy -- fixtures/reject/src/lib.rs:2052:4: `std::collections::LinkedList::::retain` with a mutable reference to a value JS copies, which its mapping would copy -- fixtures/reject/src/lib.rs:2054:2: `std::default::Default::default` with a mutable reference to a value JS copies, which its mapping would copy +- fixtures/reject/src/lib.rs:1157:22: `std::iter::once` with a mutable reference to a value JS copies, which its mapping would copy +- fixtures/reject/src/lib.rs:1559:13: `core::str::::get_unchecked_mut` with a mutable reference to a value JS copies, which its mapping would copy +- fixtures/reject/src/lib.rs:1564:20: `std::str::from_utf8_mut` with a mutable reference to a value JS copies, which its mapping would copy +- fixtures/reject/src/lib.rs:2039:4: `std::collections::LinkedList::::retain` with a mutable reference to a value JS copies, which its mapping would copy +- fixtures/reject/src/lib.rs:2041:2: `std::default::Default::default` with a mutable reference to a value JS copies, which its mapping would copy
a raw pointer to `_` in an element, a payload, or a union field, which is not supported yet (5) -- fixtures/reject/src/lib.rs:614:10: a raw pointer to `(u32, u32)` in an element, a payload, or a union field, which is not supported yet -- fixtures/reject/src/lib.rs:1661:15: a raw pointer to `[u8; 3]` in an element, a payload, or a union field, which is not supported yet -- fixtures/reject/src/lib.rs:1661:18: a raw pointer to `[u8; 3]` in an element, a payload, or a union field, which is not supported yet -- fixtures/reject/src/lib.rs:1661:37: a raw pointer to `[u8; 2]` in an element, a payload, or a union field, which is not supported yet -- fixtures/reject/src/lib.rs:1661:44: a raw pointer to `[u8; 2]` in an element, a payload, or a union field, which is not supported yet +- fixtures/reject/src/lib.rs:607:10: a raw pointer to `(u32, u32)` in an element, a payload, or a union field, which is not supported yet +- fixtures/reject/src/lib.rs:1648:15: a raw pointer to `[u8; 3]` in an element, a payload, or a union field, which is not supported yet +- fixtures/reject/src/lib.rs:1648:18: a raw pointer to `[u8; 3]` in an element, a payload, or a union field, which is not supported yet +- fixtures/reject/src/lib.rs:1648:37: a raw pointer to `[u8; 2]` in an element, a payload, or a union field, which is not supported yet +- fixtures/reject/src/lib.rs:1648:44: a raw pointer to `[u8; 2]` in an element, a payload, or a union field, which is not supported yet
memory from `alloc` cast to pointers to `_` and to `_`, which reads the bytes of one type as another (5) -- fixtures/reject/src/lib.rs:2281:7: memory from `alloc` cast to pointers to `u32` and to `i32`, which reads the bytes of one type as another -- fixtures/reject/src/lib.rs:2282:11: memory from `alloc` cast to pointers to `i32` and to `u32`, which reads the bytes of one type as another -- fixtures/reject/src/lib.rs:2284:17: memory from `alloc` cast to pointers to `i32` and to `u32`, which reads the bytes of one type as another -- fixtures/reject/src/lib.rs:2285:21: memory from `alloc` cast to pointers to `u32` and to `i32`, which reads the bytes of one type as another -- fixtures/reject/src/lib.rs:2287:17: memory from `alloc` cast to pointers to `i32` and to `u32`, which reads the bytes of one type as another +- fixtures/reject/src/lib.rs:2268:7: memory from `alloc` cast to pointers to `u32` and to `i32`, which reads the bytes of one type as another +- fixtures/reject/src/lib.rs:2269:11: memory from `alloc` cast to pointers to `i32` and to `u32`, which reads the bytes of one type as another +- fixtures/reject/src/lib.rs:2271:17: memory from `alloc` cast to pointers to `i32` and to `u32`, which reads the bytes of one type as another +- fixtures/reject/src/lib.rs:2272:21: memory from `alloc` cast to pointers to `u32` and to `i32`, which reads the bytes of one type as another +- fixtures/reject/src/lib.rs:2274:17: memory from `alloc` cast to pointers to `i32` and to `u32`, which reads the bytes of one type as another
a variant of `_`, which is not supported: either is the same JS string (4) +- fixtures/reject/src/lib.rs:260:2: a variant of `std::borrow::Cow<'_, str>`, which is not supported: either is the same JS string +- fixtures/reject/src/lib.rs:261:30: a variant of `std::borrow::Cow<'_, str>`, which is not supported: either is the same JS string +- fixtures/reject/src/lib.rs:262:27: a variant of `std::borrow::Cow<'_, str>`, which is not supported: either is the same JS string - fixtures/reject/src/lib.rs:267:2: a variant of `std::borrow::Cow<'_, str>`, which is not supported: either is the same JS string -- fixtures/reject/src/lib.rs:268:30: a variant of `std::borrow::Cow<'_, str>`, which is not supported: either is the same JS string -- fixtures/reject/src/lib.rs:269:27: a variant of `std::borrow::Cow<'_, str>`, which is not supported: either is the same JS string -- fixtures/reject/src/lib.rs:274:2: a variant of `std::borrow::Cow<'_, str>`, which is not supported: either is the same JS string
@@ -658,7 +653,7 @@ The type or module each refused type or path belongs to. - fixtures/reject/src/lib.rs:83:2: an assignment through a reference to `std::sync::MutexGuard<'_, u8>` - fixtures/reject/src/lib.rs:107:2: an assignment through a reference to `std::pin::Pin>>` - fixtures/reject/src/lib.rs:172:2: an assignment through a reference to `std::pin::Pin<&mut Noisy>` -- fixtures/reject/src/lib.rs:2248:2: an assignment through a reference to `std::sync::LazyLock` +- fixtures/reject/src/lib.rs:2235:2: an assignment through a reference to `std::sync::LazyLock` @@ -666,47 +661,47 @@ The type or module each refused type or path belongs to. - fixtures/reject/src/lib.rs:21:4: `slice::fill` of `Reused`, whose `clone_from` is its own, which is not supported yet - fixtures/reject/src/lib.rs:229:4: `slice::clone_from_slice` of `Reused`, whose `clone_from` is its own, which is not supported yet -- fixtures/reject/src/lib.rs:2206:4: `Clone::clone_from` of `std::vec::Vec`, whose `clone_from` is its own, which is not supported yet +- fixtures/reject/src/lib.rs:2193:4: `Clone::clone_from` of `std::vec::Vec`, whose `clone_from` is its own, which is not supported yet
a byte of memory from `alloc`, which JS keeps as the values a cast of its pointer types it as (3) -- fixtures/reject/src/lib.rs:503:3: a byte of memory from `alloc`, which JS keeps as the values a cast of its pointer types it as -- fixtures/reject/src/lib.rs:504:11: a byte of memory from `alloc`, which JS keeps as the values a cast of its pointer types it as -- fixtures/reject/src/lib.rs:2266:3: a byte of memory from `alloc`, which JS keeps as the values a cast of its pointer types it as +- fixtures/reject/src/lib.rs:496:3: a byte of memory from `alloc`, which JS keeps as the values a cast of its pointer types it as +- fixtures/reject/src/lib.rs:497:11: a byte of memory from `alloc`, which JS keeps as the values a cast of its pointer types it as +- fixtures/reject/src/lib.rs:2253:3: a byte of memory from `alloc`, which JS keeps as the values a cast of its pointer types it as
a copy between pointers to `_`, which JS keeps as an object that knows no array it is in (3) -- fixtures/reject/src/lib.rs:1645:3: a copy between pointers to `[u8; 4]`, which JS keeps as an object that knows no array it is in -- fixtures/reject/src/lib.rs:1646:3: a copy between pointers to `[u8; 4]`, which JS keeps as an object that knows no array it is in -- fixtures/reject/src/lib.rs:2097:3: a copy between pointers to `(u8, u8)`, which JS keeps as an object that knows no array it is in +- fixtures/reject/src/lib.rs:1632:3: a copy between pointers to `[u8; 4]`, which JS keeps as an object that knows no array it is in +- fixtures/reject/src/lib.rs:1633:3: a copy between pointers to `[u8; 4]`, which JS keeps as an object that knows no array it is in +- fixtures/reject/src/lib.rs:2084:3: a copy between pointers to `(u8, u8)`, which JS keeps as an object that knows no array it is in
a copy of a closure that changes what it captured (3) - fixtures/reject/src/lib.rs:182:14: a copy of a closure that changes what it captured -- fixtures/reject/src/lib.rs:443:14: a copy of a closure that changes what it captured -- fixtures/reject/src/lib.rs:444:14: a copy of a closure that changes what it captured +- fixtures/reject/src/lib.rs:436:14: a copy of a closure that changes what it captured +- fixtures/reject/src/lib.rs:437:14: a copy of a closure that changes what it captured
a slice or a cell of a mutable reference to `_` that names no place, which a whole write would replace only there (3) -- fixtures/reject/src/lib.rs:2201:2: a slice or a cell of a mutable reference to `Reused` that names no place, which a whole write would replace only there -- fixtures/reject/src/lib.rs:2243:3: a slice or a cell of a mutable reference to `std::cell::LazyCell` that names no place, which a whole write would replace only there -- fixtures/reject/src/lib.rs:2254:2: a slice or a cell of a mutable reference to `std::thread::LocalKey` that names no place, which a whole write would replace only there +- fixtures/reject/src/lib.rs:2188:2: a slice or a cell of a mutable reference to `Reused` that names no place, which a whole write would replace only there +- fixtures/reject/src/lib.rs:2230:3: a slice or a cell of a mutable reference to `std::cell::LazyCell` that names no place, which a whole write would replace only there +- fixtures/reject/src/lib.rs:2241:2: a slice or a cell of a mutable reference to `std::thread::LocalKey` that names no place, which a whole write would replace only there
an offset of a pointer to `_`, which JS keeps as an object that knows no array it is in (3) -- fixtures/reject/src/lib.rs:1648:56: an offset of a pointer to `[u8; 4]`, which JS keeps as an object that knows no array it is in -- fixtures/reject/src/lib.rs:1648:73: an offset of a pointer to `[u8; 4]`, which JS keeps as an object that knows no array it is in -- fixtures/reject/src/lib.rs:2096:13: an offset of a pointer to `(u8, u8)`, which JS keeps as an object that knows no array it is in +- fixtures/reject/src/lib.rs:1635:56: an offset of a pointer to `[u8; 4]`, which JS keeps as an object that knows no array it is in +- fixtures/reject/src/lib.rs:1635:73: an offset of a pointer to `[u8; 4]`, which JS keeps as an object that knows no array it is in +- fixtures/reject/src/lib.rs:2083:13: an offset of a pointer to `(u8, u8)`, which JS keeps as an object that knows no array it is in
@@ -749,57 +744,57 @@ The type or module each refused type or path belongs to.
`_`, a trait object of the generic trait `_`, which is not supported yet (2) -- fixtures/reject/src/lib.rs:393:23: `dyn Scaled`, a trait object of the generic trait `Scaled`, which is not supported yet -- fixtures/reject/src/lib.rs:394:4: `dyn Scaled`, a trait object of the generic trait `Scaled`, which is not supported yet +- fixtures/reject/src/lib.rs:386:23: `dyn Scaled`, a trait object of the generic trait `Scaled`, which is not supported yet +- fixtures/reject/src/lib.rs:387:4: `dyn Scaled`, a trait object of the generic trait `Scaled`, which is not supported yet
`offset_from` between a pointer into a value in no array and one into a value in no array, which JS keeps in different arrays (2) -- fixtures/reject/src/lib.rs:2160:5: `offset_from` between a pointer into a value in no array and one into a value in no array, which JS keeps in different arrays -- fixtures/reject/src/lib.rs:2161:26: `offset_from` between a pointer into a value in no array and one into a value in no array, which JS keeps in different arrays +- fixtures/reject/src/lib.rs:2147:5: `offset_from` between a pointer into a value in no array and one into a value in no array, which JS keeps in different arrays +- fixtures/reject/src/lib.rs:2148:26: `offset_from` between a pointer into a value in no array and one into a value in no array, which JS keeps in different arrays
`offset_from` between a pointer into an array of this body's own and one into an array of this body's own, which JS keeps in different arrays (2) -- fixtures/reject/src/lib.rs:2162:24: `offset_from` between a pointer into an array of this body's own and one into an array of this body's own, which JS keeps in different arrays -- fixtures/reject/src/lib.rs:2163:23: `offset_from` between a pointer into an array of this body's own and one into an array of this body's own, which JS keeps in different arrays +- fixtures/reject/src/lib.rs:2149:24: `offset_from` between a pointer into an array of this body's own and one into an array of this body's own, which JS keeps in different arrays +- fixtures/reject/src/lib.rs:2150:23: `offset_from` between a pointer into an array of this body's own and one into an array of this body's own, which JS keeps in different arrays
a pointer reaching past a shared slice JS copies, which JS keeps apart from what holds it in Rust (2) -- fixtures/reject/src/lib.rs:2185:18: a pointer reaching past a shared slice JS copies, which JS keeps apart from what holds it in Rust -- fixtures/reject/src/lib.rs:2188:21: a pointer reaching past a shared slice JS copies, which JS keeps apart from what holds it in Rust +- fixtures/reject/src/lib.rs:2172:18: a pointer reaching past a shared slice JS copies, which JS keeps apart from what holds it in Rust +- fixtures/reject/src/lib.rs:2175:21: a pointer reaching past a shared slice JS copies, which JS keeps apart from what holds it in Rust
a raw or mutable slice of a byte in no array of bytes (2) -- fixtures/reject/src/lib.rs:2171:12: a raw or mutable slice of a byte in no array of bytes -- fixtures/reject/src/lib.rs:2172:19: a raw or mutable slice of a byte in no array of bytes +- fixtures/reject/src/lib.rs:2158:12: a raw or mutable slice of a byte in no array of bytes +- fixtures/reject/src/lib.rs:2159:19: a raw or mutable slice of a byte in no array of bytes
a raw pointer to a place of `()`, which has no address of its own (2) -- fixtures/reject/src/lib.rs:663:15: a raw pointer to a place of `()`, which has no address of its own -- fixtures/reject/src/lib.rs:663:29: a raw pointer to a place of `()`, which has no address of its own +- fixtures/reject/src/lib.rs:656:15: a raw pointer to a place of `()`, which has no address of its own +- fixtures/reject/src/lib.rs:656:29: a raw pointer to a place of `()`, which has no address of its own
an upcast from `_` to `_`, which is not supported yet (2) -- fixtures/reject/src/lib.rs:461:32: an upcast from `dyn Keyed` to `dyn std::any::Any`, which is not supported yet -- fixtures/reject/src/lib.rs:467:46: an upcast from `dyn Keyed` to `dyn std::any::Any`, which is not supported yet +- fixtures/reject/src/lib.rs:454:32: an upcast from `dyn Keyed` to `dyn std::any::Any`, which is not supported yet +- fixtures/reject/src/lib.rs:460:46: an upcast from `dyn Keyed` to `dyn std::any::Any`, which is not supported yet
comparing pointers to `_`, each a place JS makes of its own (2) -- fixtures/reject/src/lib.rs:531:2: comparing pointers to `u32`, each a place JS makes of its own -- fixtures/reject/src/lib.rs:2080:2: comparing pointers to `u32`, each a place JS makes of its own +- fixtures/reject/src/lib.rs:524:2: comparing pointers to `u32`, each a place JS makes of its own +- fixtures/reject/src/lib.rs:2067:2: comparing pointers to `u32`, each a place JS makes of its own
@@ -810,47 +805,40 @@ The type or module each refused type or path belongs to. -
passing `_`, which drops, to `_`, which is not supported yet (2) - -- fixtures/reject/src/lib.rs:262:4: passing `{closure@fixtures/reject/src/lib.rs:262:13: 262:27}`, which drops, to `str::contains`, which is not supported yet -- fixtures/reject/src/lib.rs:719:4: passing `{closure@fixtures/reject/src/lib.rs:719:11: 719:19}`, which drops, to `String::retain`, which is not supported yet - -
-
unsupported type `_` from another crate (2) -- fixtures/reject/src/lib.rs:374:32: unsupported type `std::net::AddrParseError` from another crate -- fixtures/reject/src/lib.rs:374:32: unsupported type `std::net::Ipv4Addr` from another crate +- fixtures/reject/src/lib.rs:367:32: unsupported type `std::net::AddrParseError` from another crate +- fixtures/reject/src/lib.rs:367:32: unsupported type `std::net::Ipv4Addr` from another crate
`Buf::copy_to_bytes` of `_`, a value JS copies, which is not supported (1) -- fixtures/reject/src/lib.rs:696:2: `Buf::copy_to_bytes` of `Blank`, a value JS copies, which is not supported +- fixtures/reject/src/lib.rs:689:2: `Buf::copy_to_bytes` of `Blank`, a value JS copies, which is not supported
`BufMut::put` of `_` into a `BytesMut`, which advances it by the room left in a capacity that depends on whether the other handles of its storage dropped, which is not supported (1) -- fixtures/reject/src/lib.rs:330:2: `BufMut::put` of `Counted` into a `BytesMut`, which advances it by the room left in a capacity that depends on whether the other handles of its storage dropped, which is not supported +- fixtures/reject/src/lib.rs:323:2: `BufMut::put` of `Counted` into a `BytesMut`, which advances it by the room left in a capacity that depends on whether the other handles of its storage dropped, which is not supported
`BufMut::put` of `_` into a `BytesMut`, which picks the methods it calls by a capacity that depends on whether the other handles of its storage dropped, which is not supported (1) -- fixtures/reject/src/lib.rs:325:2: `BufMut::put` of `Counted` into a `BytesMut`, which picks the methods it calls by a capacity that depends on whether the other handles of its storage dropped, which is not supported +- fixtures/reject/src/lib.rs:318:2: `BufMut::put` of `Counted` into a `BytesMut`, which picks the methods it calls by a capacity that depends on whether the other handles of its storage dropped, which is not supported
`Bytes::from_owner` of `_`, which would drop with the last clone of what it makes, which is not supported (1) -- fixtures/reject/src/lib.rs:310:2: `Bytes::from_owner` of `std::sync::Arc<[u8]>`, which would drop with the last clone of what it makes, which is not supported +- fixtures/reject/src/lib.rs:303:2: `Bytes::from_owner` of `std::sync::Arc<[u8]>`, which would drop with the last clone of what it makes, which is not supported
`Extend` of `_` by `_`, whose `_` of `_` is not supported yet (1) -- fixtures/reject/src/lib.rs:1207:31: `Extend` of `(std::vec::Vec, Tens)` by `(u8, u8)`, whose `Tens` of `u8` is not supported yet +- fixtures/reject/src/lib.rs:1194:31: `Extend` of `(std::vec::Vec, Tens)` by `(u8, u8)`, whose `Tens` of `u8` is not supported yet
@@ -874,7 +862,7 @@ The type or module each refused type or path belongs to.
`_` is not supported: its field `_` is `_`, typed `_`, whose `Pending` would be `rt.OuterPending` as `_` (1) -- fixtures/reject/src/lib.rs:431:2: `Waiting>` is not supported: its field `poll` is `Poll`, typed `rt.Poll`, whose `Pending` would be `rt.OuterPending` as `Poll>` +- fixtures/reject/src/lib.rs:424:2: `Waiting>` is not supported: its field `poll` is `Poll`, typed `rt.Poll`, whose `Pending` would be `rt.OuterPending` as `Poll>`
@@ -886,25 +874,25 @@ The type or module each refused type or path belongs to.
`_` of `_`, which is not supported yet (1) -- fixtures/reject/src/lib.rs:473:4: `std::any::Any::type_id` of `dyn std::any::Any`, which is not supported yet +- fixtures/reject/src/lib.rs:466:4: `std::any::Any::type_id` of `dyn std::any::Any`, which is not supported yet
`_`, which reads a capacity that depends on whether the other handles of its storage dropped, which is not supported (1) -- fixtures/reject/src/lib.rs:319:6: `BytesMut::capacity`, which reads a capacity that depends on whether the other handles of its storage dropped, which is not supported +- fixtures/reject/src/lib.rs:312:6: `BytesMut::capacity`, which reads a capacity that depends on whether the other handles of its storage dropped, which is not supported
`clone_from` of `_`, whose items' `clone_from` is their own, which is not supported yet (1) -- fixtures/reject/src/lib.rs:2053:4: `clone_from` of `std::collections::LinkedList`, whose items' `clone_from` is their own, which is not supported yet +- fixtures/reject/src/lib.rs:2040:4: `clone_from` of `std::collections::LinkedList`, whose items' `clone_from` is their own, which is not supported yet
`collect` of `_`, which sorts by `_`'s own `Ord`, of entries that drop, which is not supported yet (1) -- fixtures/reject/src/lib.rs:890:22: `collect` of `std::collections::BTreeMap, Noisy>`, which sorts by `std::cell::Cell`'s own `Ord`, of entries that drop, which is not supported yet +- fixtures/reject/src/lib.rs:877:22: `collect` of `std::collections::BTreeMap, Noisy>`, which sorts by `std::cell::Cell`'s own `Ord`, of entries that drop, which is not supported yet
@@ -916,25 +904,25 @@ The type or module each refused type or path belongs to.
`offset_from` between a pointer into a shared slice JS copies and one into a value in no array, which JS keeps in different arrays (1) -- fixtures/reject/src/lib.rs:2165:21: `offset_from` between a pointer into a shared slice JS copies and one into a value in no array, which JS keeps in different arrays +- fixtures/reject/src/lib.rs:2152:21: `offset_from` between a pointer into a shared slice JS copies and one into a value in no array, which JS keeps in different arrays
`offset_from` between a pointer into a shared slice JS copies and one into an array of this body's own, which JS keeps in different arrays (1) -- fixtures/reject/src/lib.rs:2164:20: `offset_from` between a pointer into a shared slice JS copies and one into an array of this body's own, which JS keeps in different arrays +- fixtures/reject/src/lib.rs:2151:20: `offset_from` between a pointer into a shared slice JS copies and one into an array of this body's own, which JS keeps in different arrays
`offset_from` of pointers to `()`, which has no bytes (1) -- fixtures/reject/src/lib.rs:2107:13: `offset_from` of pointers to `()`, which has no bytes +- fixtures/reject/src/lib.rs:2094:13: `offset_from` of pointers to `()`, which has no bytes
`offset_from` of pointers to `_`, which JS keeps as an object that knows no array it is in (1) -- fixtures/reject/src/lib.rs:2100:36: `offset_from` of pointers to `(u8, u8)`, which JS keeps as an object that knows no array it is in +- fixtures/reject/src/lib.rs:2087:36: `offset_from` of pointers to `(u8, u8)`, which JS keeps as an object that knows no array it is in
@@ -946,7 +934,7 @@ The type or module each refused type or path belongs to.
a coercion of `_` to `_`, which is not supported yet (1) -- fixtures/reject/src/lib.rs:2401:40: a coercion of `*mut std::ops::Range` to `*mut dyn std::iter::Iterator`, which is not supported yet +- fixtures/reject/src/lib.rs:2388:40: a coercion of `*mut std::ops::Range` to `*mut dyn std::iter::Iterator`, which is not supported yet
@@ -958,31 +946,31 @@ The type or module each refused type or path belongs to.
a coercion to `_`, which is not supported yet (1) -- fixtures/reject/src/lib.rs:420:30: a coercion to `&Tail`, which is not supported yet +- fixtures/reject/src/lib.rs:413:30: a coercion to `&Tail`, which is not supported yet
a constant of type `_` (1) -- fixtures/reject/src/lib.rs:2301:34: a constant of type `std::mem::ManuallyDrop` +- fixtures/reject/src/lib.rs:2288:34: a constant of type `std::mem::ManuallyDrop`
a constant of type `_`, a pointer into memory translation can't name (1) -- fixtures/reject/src/lib.rs:713:3: a constant of type `&u32`, a pointer into memory translation can't name +- fixtures/reject/src/lib.rs:706:3: a constant of type `&u32`, a pointer into memory translation can't name
a copy reaching past a shared slice JS copies, which JS keeps apart from what holds it in Rust (1) -- fixtures/reject/src/lib.rs:2183:3: a copy reaching past a shared slice JS copies, which JS keeps apart from what holds it in Rust +- fixtures/reject/src/lib.rs:2170:3: a copy reaching past a shared slice JS copies, which JS keeps apart from what holds it in Rust
a dangling pointer to `_`, a value of no bytes made of more than structs and tuples (1) -- fixtures/reject/src/lib.rs:672:11: a dangling pointer to `Only`, a value of no bytes made of more than structs and tuples +- fixtures/reject/src/lib.rs:665:11: a dangling pointer to `Only`, a value of no bytes made of more than structs and tuples
@@ -994,13 +982,13 @@ The type or module each refused type or path belongs to.
a mapped guard of `_`, which JS can't write in place (1) -- fixtures/reject/src/lib.rs:2087:10: a mapped guard of `{closure@fixtures/reject/src/lib.rs:2086:38: 2086:50}`, which JS can't write in place +- fixtures/reject/src/lib.rs:2074:10: a mapped guard of `{closure@fixtures/reject/src/lib.rs:2073:38: 2073:50}`, which JS can't write in place
a mutable reference into a `Result`'s payload, passed on or kept (1) -- fixtures/reject/src/lib.rs:298:12: a mutable reference into a `Result`'s payload, passed on or kept +- fixtures/reject/src/lib.rs:291:12: a mutable reference into a `Result`'s payload, passed on or kept
@@ -1012,25 +1000,25 @@ The type or module each refused type or path belongs to.
a pointer into `_`, which JS keeps as an object that knows no array it is in (1) -- fixtures/reject/src/lib.rs:2094:12: a pointer into `(u8, u8)`, which JS keeps as an object that knows no array it is in +- fixtures/reject/src/lib.rs:2081:12: a pointer into `(u8, u8)`, which JS keeps as an object that knows no array it is in
a pointer into an array of `_`, which JS keeps as an object that knows no array it is in (1) -- fixtures/reject/src/lib.rs:2099:30: a pointer into an array of `(u8, u8)`, which JS keeps as an object that knows no array it is in +- fixtures/reject/src/lib.rs:2086:30: a pointer into an array of `(u8, u8)`, which JS keeps as an object that knows no array it is in
a pointer reaching past a value in no array, which JS keeps apart from what holds it in Rust (1) -- fixtures/reject/src/lib.rs:2187:27: a pointer reaching past a value in no array, which JS keeps apart from what holds it in Rust +- fixtures/reject/src/lib.rs:2174:27: a pointer reaching past a value in no array, which JS keeps apart from what holds it in Rust
a pointer's address, which JS has no counterpart of (1) -- fixtures/reject/src/lib.rs:495:17: a pointer's address, which JS has no counterpart of +- fixtures/reject/src/lib.rs:488:17: a pointer's address, which JS has no counterpart of
@@ -1042,13 +1030,13 @@ The type or module each refused type or path belongs to.
a raw pointer to `_` behind a reference, which is the object and not where it is kept (1) -- fixtures/reject/src/lib.rs:512:10: a raw pointer to `std::vec::Vec` behind a reference, which is the object and not where it is kept +- fixtures/reject/src/lib.rs:505:10: a raw pointer to `std::vec::Vec` behind a reference, which is the object and not where it is kept
a reference through which a raw pointer may be made into `_` in an element, a payload, or a union field, which is not supported yet (1) -- fixtures/reject/src/lib.rs:1299:11: a reference through which a raw pointer may be made into `InPayload` in an element, a payload, or a union field, which is not supported yet +- fixtures/reject/src/lib.rs:1286:11: a reference through which a raw pointer may be made into `InPayload` in an element, a payload, or a union field, which is not supported yet
@@ -1060,31 +1048,31 @@ The type or module each refused type or path belongs to.
a slice from a pointer to `_`, which JS keeps as an object that knows no array it is in (1) -- fixtures/reject/src/lib.rs:2098:11: a slice from a pointer to `(u8, u8)`, which JS keeps as an object that knows no array it is in +- fixtures/reject/src/lib.rs:2085:11: a slice from a pointer to `(u8, u8)`, which JS keeps as an object that knows no array it is in
a slice of `()`, which has no bytes, from a pointer (1) -- fixtures/reject/src/lib.rs:2107:39: a slice of `()`, which has no bytes, from a pointer +- fixtures/reject/src/lib.rs:2094:39: a slice of `()`, which has no bytes, from a pointer
a slice of one byte's place, which a byte slice can view only in an array of bytes (1) -- fixtures/reject/src/lib.rs:2195:2: a slice of one byte's place, which a byte slice can view only in an array of bytes +- fixtures/reject/src/lib.rs:2182:2: a slice of one byte's place, which a byte slice can view only in an array of bytes
a slice reaching past a value in no array, which JS keeps apart from what holds it in Rust (1) -- fixtures/reject/src/lib.rs:2186:6: a slice reaching past a value in no array, which JS keeps apart from what holds it in Rust +- fixtures/reject/src/lib.rs:2173:6: a slice reaching past a value in no array, which JS keeps apart from what holds it in Rust
a trait object of `_`, which is not supported yet (1) -- fixtures/reject/src/lib.rs:410:26: a trait object of `[u8; 4]`, which is not supported yet +- fixtures/reject/src/lib.rs:403:26: a trait object of `[u8; 4]`, which is not supported yet
@@ -1096,7 +1084,7 @@ The type or module each refused type or path belongs to.
comparing `_` (1) -- fixtures/reject/src/lib.rs:1647:41: comparing `*mut [u8; 4]` +- fixtures/reject/src/lib.rs:1634:41: comparing `*mut [u8; 4]`
@@ -1108,25 +1096,25 @@ The type or module each refused type or path belongs to.
comparing pointers to `_` in an atomic, which JS has no address of (1) -- fixtures/reject/src/lib.rs:712:15: comparing pointers to `u32` in an atomic, which JS has no address of +- fixtures/reject/src/lib.rs:705:15: comparing pointers to `u32` in an atomic, which JS has no address of
comparing pointers to `_`, which has no bytes and so no address of its own (1) -- fixtures/reject/src/lib.rs:663:70: comparing pointers to `Bare`, which has no bytes and so no address of its own +- fixtures/reject/src/lib.rs:656:70: comparing pointers to `Bare`, which has no bytes and so no address of its own
const generic types are not supported: `_` (1) -- fixtures/reject/src/lib.rs:2032:1: const generic types are not supported: `Block` +- fixtures/reject/src/lib.rs:2019:1: const generic types are not supported: `Block`
constructing `_` (1) -- fixtures/reject/src/lib.rs:285:53: constructing `std::borrow::Cow<'_, std::sync::Arc>` +- fixtures/reject/src/lib.rs:278:53: constructing `std::borrow::Cow<'_, std::sync::Arc>`
@@ -1138,7 +1126,7 @@ The type or module each refused type or path belongs to.
hashing `_` by its address, which JS has no counterpart of (1) -- fixtures/reject/src/lib.rs:1651:5: hashing `*const [u8; 4]` by its address, which JS has no counterpart of +- fixtures/reject/src/lib.rs:1638:5: hashing `*const [u8; 4]` by its address, which JS has no counterpart of
@@ -1150,6 +1138,6 @@ The type or module each refused type or path belongs to.
union `_`, whose fields overlap in `_` and `f64`, which JS keeps apart (1) -- fixtures/reject/src/lib.rs:517:1: union `Bits`, whose fields overlap in `u32` and `f64`, which JS keeps apart +- fixtures/reject/src/lib.rs:510:1: union `Bits`, whose fields overlap in `u32` and `f64`, which JS keeps apart
diff --git a/ts/fixtures/reject/expected.txt b/ts/fixtures/reject/expected.txt index bc0ba0f3d..4903dbb75 100644 --- a/ts/fixtures/reject/expected.txt +++ b/ts/fixtures/reject/expected.txt @@ -25,9 +25,9 @@ replacing the value behind a reference to `std::pin::Pin>>` at fixtures/reject/src/lib.rs:107:2 replacing the value behind a reference to `std::pin::Pin>` at fixtures/reject/src/lib.rs:99:2 unsupported call to `std::ops::Range::::contains::` at fixtures/reject/src/lib.rs:164:8 -unsupported call to `std::ops::RangeTo::::contains::` at fixtures/reject/src/lib.rs:919:11 -unsupported call to ` as std::ops::RangeBounds>::contains::` at fixtures/reject/src/lib.rs:919:32 -unsupported call to `std::ops::Range::<&mut u8>::is_empty` at fixtures/reject/src/lib.rs:924:9 +unsupported call to `std::ops::RangeTo::::contains::` at fixtures/reject/src/lib.rs:906:11 +unsupported call to ` as std::ops::RangeBounds>::contains::` at fixtures/reject/src/lib.rs:906:32 +unsupported call to `std::ops::Range::<&mut u8>::is_empty` at fixtures/reject/src/lib.rs:911:9 an assignment through a reference to `std::pin::Pin<&mut Noisy>` at fixtures/reject/src/lib.rs:172:2 a copy of a closure that changes what it captured at fixtures/reject/src/lib.rs:182:14 `Iterator::scan` of `Option<()>`, whose `None` is `rt.None`, which is not supported yet at fixtures/reject/src/lib.rs:188:11 @@ -36,224 +36,222 @@ comparing `std::collections::BTreeSet` as a key, which is not supported yet `HashMap::contains_key` of `std::collections::HashMap` by `u8`, which is not supported yet at fixtures/reject/src/lib.rs:211:6 `slice::clone_from_slice` of `Reused`, whose `clone_from` is its own, which is not supported yet at fixtures/reject/src/lib.rs:229:4 a coercion to `std::sync::Arc<[u8]>` at fixtures/reject/src/lib.rs:234:2 +a variant of `std::borrow::Cow<'_, str>`, which is not supported: either is the same JS string at fixtures/reject/src/lib.rs:260:2 +a variant of `std::borrow::Cow<'_, str>`, which is not supported: either is the same JS string at fixtures/reject/src/lib.rs:262:27 +a variant of `std::borrow::Cow<'_, str>`, which is not supported: either is the same JS string at fixtures/reject/src/lib.rs:261:30 a variant of `std::borrow::Cow<'_, str>`, which is not supported: either is the same JS string at fixtures/reject/src/lib.rs:267:2 -a variant of `std::borrow::Cow<'_, str>`, which is not supported: either is the same JS string at fixtures/reject/src/lib.rs:269:27 -a variant of `std::borrow::Cow<'_, str>`, which is not supported: either is the same JS string at fixtures/reject/src/lib.rs:268:30 -a variant of `std::borrow::Cow<'_, str>`, which is not supported: either is the same JS string at fixtures/reject/src/lib.rs:274:2 -unsupported call to `std::borrow::Cow::<'_, [u8]>::is_borrowed` at fixtures/reject/src/lib.rs:279:2 -constructing `std::borrow::Cow<'_, std::sync::Arc>` at fixtures/reject/src/lib.rs:285:53 +unsupported call to `std::borrow::Cow::<'_, [u8]>::is_borrowed` at fixtures/reject/src/lib.rs:272:2 +constructing `std::borrow::Cow<'_, std::sync::Arc>` at fixtures/reject/src/lib.rs:278:53 hashing `std::vec::Vec` through `Batched`'s own `Hash::hash_slice`, which is not supported yet at fixtures/reject/src/lib.rs:253:16 -passing `{closure@fixtures/reject/src/lib.rs:262:13: 262:27}`, which drops, to `str::contains`, which is not supported yet at fixtures/reject/src/lib.rs:262:4 -unsupported call to ` as std::iter::Iterator>::sum::` at fixtures/reject/src/lib.rs:370:17 -unsupported call to ` as std::iter::Iterator>::sum::` at fixtures/reject/src/lib.rs:370:38 -a mutable reference into a `Result`'s payload, passed on or kept at fixtures/reject/src/lib.rs:298:12 -unsupported call to ` as std::cmp::PartialEq>::eq` at fixtures/reject/src/lib.rs:305:2 -`Bytes::from_owner` of `std::sync::Arc<[u8]>`, which would drop with the last clone of what it makes, which is not supported at fixtures/reject/src/lib.rs:310:2 -`BytesMut::capacity`, which reads a capacity that depends on whether the other handles of its storage dropped, which is not supported at fixtures/reject/src/lib.rs:319:6 -`BufMut::put` of `Counted` into a `BytesMut`, which picks the methods it calls by a capacity that depends on whether the other handles of its storage dropped, which is not supported at fixtures/reject/src/lib.rs:325:2 -`BufMut::put` of `Counted` into a `BytesMut`, which advances it by the room left in a capacity that depends on whether the other handles of its storage dropped, which is not supported at fixtures/reject/src/lib.rs:330:2 -unsupported call to `core::str::::parse::` at fixtures/reject/src/lib.rs:375:4 -unsupported type `std::net::Ipv4Addr` from another crate at fixtures/reject/src/lib.rs:374:32 -unsupported type `std::net::AddrParseError` from another crate at fixtures/reject/src/lib.rs:374:32 -`dyn Scaled`, a trait object of the generic trait `Scaled`, which is not supported yet at fixtures/reject/src/lib.rs:393:23 -`dyn Scaled`, a trait object of the generic trait `Scaled`, which is not supported yet at fixtures/reject/src/lib.rs:394:4 -a trait object of `[u8; 4]`, which is not supported yet at fixtures/reject/src/lib.rs:410:26 -a coercion to `&Tail`, which is not supported yet at fixtures/reject/src/lib.rs:420:30 -`Waiting>` is not supported: its field `poll` is `Poll`, typed `rt.Poll`, whose `Pending` would be `rt.OuterPending` as `Poll>` at fixtures/reject/src/lib.rs:431:2 -a copy of a closure that changes what it captured at fixtures/reject/src/lib.rs:443:14 -a copy of a closure that changes what it captured at fixtures/reject/src/lib.rs:444:14 -an upcast from `dyn Keyed` to `dyn std::any::Any`, which is not supported yet at fixtures/reject/src/lib.rs:461:32 -an upcast from `dyn Keyed` to `dyn std::any::Any`, which is not supported yet at fixtures/reject/src/lib.rs:467:46 -`std::any::Any::type_id` of `dyn std::any::Any`, which is not supported yet at fixtures/reject/src/lib.rs:473:4 -unsupported call to `std::any::TypeId::of::` at fixtures/reject/src/lib.rs:473:17 -unsupported call to `::eq` at fixtures/reject/src/lib.rs:473:2 -a cast from a pointer to `u32` to one to `u8`, which reads the bytes of one type as another at fixtures/reject/src/lib.rs:490:27 -a pointer's address, which JS has no counterpart of at fixtures/reject/src/lib.rs:495:17 -a byte of memory from `alloc`, which JS keeps as the values a cast of its pointer types it as at fixtures/reject/src/lib.rs:503:3 -a byte of memory from `alloc`, which JS keeps as the values a cast of its pointer types it as at fixtures/reject/src/lib.rs:504:11 -a raw pointer to `std::vec::Vec` behind a reference, which is the object and not where it is kept at fixtures/reject/src/lib.rs:512:10 -union `Bits`, whose fields overlap in `u32` and `f64`, which JS keeps apart at fixtures/reject/src/lib.rs:523:10 -comparing pointers to `u32`, each a place JS makes of its own at fixtures/reject/src/lib.rs:531:2 -comparing pointers to `u32`, each a place JS makes of its own at fixtures/reject/src/lib.rs:2080:2 -a raw pointer to `(u32, u32)` in `Span2`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:543:10 -a raw pointer to `(u32, u32)` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:551:10 -a raw pointer to `(u32, u32)` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:559:10 -a raw pointer to `(u32, u32)` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:568:10 -a raw pointer to `(u32, u32)` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:576:10 -a raw pointer to `(u32, u32)` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:585:10 -a raw pointer to `(u32, u32)` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:593:10 -a reference to `std::cell::UnsafeCell`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there at fixtures/reject/src/lib.rs:1590:18 -a raw pointer to `Target` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:1604:10 -a raw pointer to `(u32, u32)` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:1617:10 -a raw pointer to `(u32, u32)` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:1632:10 -a reference to `Behind`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there at fixtures/reject/src/lib.rs:1686:22 -a reference to `Unboxed`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there at fixtures/reject/src/lib.rs:1701:16 -a reference to `Deep`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there at fixtures/reject/src/lib.rs:1722:18 -a reference to `Slotted`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there at fixtures/reject/src/lib.rs:1744:21 -a reference to `Shared`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there at fixtures/reject/src/lib.rs:1763:20 -a reference to `Inside`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there at fixtures/reject/src/lib.rs:1780:20 -a reference to `Inside`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there at fixtures/reject/src/lib.rs:1793:26 -a reference to `Wrapped>`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there at fixtures/reject/src/lib.rs:1869:21 -a reference through which a raw pointer may be made into `std::cell::UnsafeCell` in `Replaced`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1892:20 -a reference through which a raw pointer may be made into `std::cell::UnsafeCell` in `Swapped`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1910:20 -a reference through which a raw pointer may be made into `std::cell::UnsafeCell` in `Taken`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1928:20 -a reference through which a raw pointer may be made into `std::cell::UnsafeCell` in `Assigned`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1947:20 -a reference through which a raw pointer may be made into `std::cell::UnsafeCell` in `Deeper`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1973:22 -a reference through which a raw pointer may be made into `std::cell::UnsafeCell` in `Dynamic`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1997:20 -a reference through which a raw pointer may be made into `std::cell::UnsafeCell` in `Closed`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:2013:15 -a reference through which a raw pointer may be made into `std::cell::UnsafeCell` in `[std::cell::UnsafeCell; 2]`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:2026:20 -a reference to `Compared`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there at fixtures/reject/src/lib.rs:1808:22 -a reference to `Enclosing`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there at fixtures/reject/src/lib.rs:1825:22 -a reference to `Chosen`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there at fixtures/reject/src/lib.rs:1841:17 -a reference to `[u8; 4]`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there at fixtures/reject/src/lib.rs:1854:19 -a raw pointer to `(u32, u32)` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:936:26 -a raw pointer to `(u32, u32)` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:949:22 -a raw pointer to `(u32, u32)` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:959:12 -a raw pointer to `(u32, u32)` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:968:10 -a raw pointer to `(u32, u32)` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:978:17 -a raw pointer to `(u32, u32)` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:983:10 -a raw pointer to `(u32, u32)` in `Window`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:604:2 -a raw pointer to `(u32, u32)` in an element, a payload, or a union field, which is not supported yet at fixtures/reject/src/lib.rs:614:10 -a raw pointer to `(u32, u32)` in `std::cell::UnsafeCell<(u32, u32)>`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:622:15 -a raw pointer to `std::cell::UnsafeCell` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:631:15 -a raw pointer to `std::cell::UnsafeCell` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:644:15 -a raw pointer to `std::cell::UnsafeCell` in `Hits`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:655:21 -a raw pointer to a place of `()`, which has no address of its own at fixtures/reject/src/lib.rs:663:15 -a raw pointer to a place of `()`, which has no address of its own at fixtures/reject/src/lib.rs:663:29 -comparing pointers to `Bare`, which has no bytes and so no address of its own at fixtures/reject/src/lib.rs:663:70 -a dangling pointer to `Only`, a value of no bytes made of more than structs and tuples at fixtures/reject/src/lib.rs:672:11 -`Buf::copy_to_bytes` of `Blank`, a value JS copies, which is not supported at fixtures/reject/src/lib.rs:696:2 -unsupported call to ` as std::iter::Iterator>::is_sorted` at fixtures/reject/src/lib.rs:701:15 -comparing pointers to `u32` in an atomic, which JS has no address of at fixtures/reject/src/lib.rs:712:15 -a constant of type `&u32`, a pointer into memory translation can't name at fixtures/reject/src/lib.rs:713:3 -passing `{closure@fixtures/reject/src/lib.rs:719:11: 719:19}`, which drops, to `String::retain`, which is not supported yet at fixtures/reject/src/lib.rs:719:4 -a raw pointer to `(u32, u32)` in `Plain`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:761:10 -a raw pointer to `(u32, u32)` in `Track`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:787:19 -a raw pointer to `(u32, u32)` in `Lane`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:807:19 -a raw pointer to `(u32, u32)` in `Gap`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:843:10 -a raw pointer to `(u32, u32)` in `Gap`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:844:10 -a raw pointer to `(u32, u32)` in `Gap`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:845:58 -a raw pointer to `std::mem::MaybeUninit<(u32, u32)>` in `Gap`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:857:19 -a raw pointer to `std::mem::MaybeUninit<(u32, u32)>` in `Gap`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:858:19 -`collect` of `std::collections::BTreeMap, Noisy>`, which sorts by `std::cell::Cell`'s own `Ord`, of entries that drop, which is not supported yet at fixtures/reject/src/lib.rs:890:22 -a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Looped`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1045:26 -a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Aliased`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1055:29 -a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Rewritten`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1065:47 -a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Loaded`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1077:29 -a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Mapped`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1122:39 -a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Repeated`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1156:18 -a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Onced`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1168:46 -`std::iter::once` with a mutable reference to a value JS copies, which its mapping would copy at fixtures/reject/src/lib.rs:1170:22 -a raw pointer to `(u16, u16)` in `Pushed`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1183:22 -`Extend` of `(std::vec::Vec, Tens)` by `(u8, u8)`, whose `Tens` of `u8` is not supported yet at fixtures/reject/src/lib.rs:1207:31 -unsupported call to `core::num::::is_ascii_octdigit` at fixtures/reject/src/lib.rs:1212:4 -a reference through which a raw pointer may be made into `InArray` in `[InArray; 2]`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1272:33 -a reference through which a raw pointer may be made into `InTuple` in `(u16, InTuple)`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1281:33 -a reference through which a raw pointer may be made into `Mid` in `Outer`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1290:34 -a reference through which a raw pointer may be made into `InPayload` in an element, a payload, or a union field, which is not supported yet at fixtures/reject/src/lib.rs:1299:11 -a reference through which a raw pointer may be made into `Mid` in `Outer`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1311:33 -a reference through which a raw pointer may be made into `Mid` in `Outer`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1324:35 -a reference through which a raw pointer may be made into `InWritten` in `[InWritten; 1]`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1333:35 -a raw pointer to `std::cell::UnsafeCell` in `ByRead`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1390:35 -a raw pointer to `std::cell::UnsafeCell` in `ByWrite`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1403:35 -a raw pointer to `std::cell::UnsafeCell` in `BySwap`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1416:35 -a raw pointer to `std::cell::UnsafeCell` in `ByReplace`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1428:35 -a raw pointer to `std::cell::UnsafeCell` in `ByBox`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1439:35 -a raw pointer to `std::cell::UnsafeCell` in `ByClosure`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1454:35 -a raw pointer to `std::cell::UnsafeCell` in `ByObject`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1467:35 -a raw pointer to `std::cell::UnsafeCell` in `ByInstance`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1480:35 -a raw pointer to `std::cell::UnsafeCell` in `BySwapped`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1489:76 -a raw pointer to `std::cell::UnsafeCell` in `ByExchanged`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1500:30 -a raw pointer to `ByRefReplace` in `(u16, ByRefReplace)`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1532:32 -a raw pointer to `ByRefTake` in `(u16, ByRefTake)`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1540:32 -a raw pointer to `ByKeySet` in `(u16, ByKeySet)`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1548:51 -a raw pointer to `ByKeyReplace` in `(u16, ByKeyReplace)`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1556:55 -a raw pointer to `ByKeyTake` in `(u16, ByKeyTake)`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1563:52 -unsupported call to `core::str::::as_bytes_mut` at fixtures/reject/src/lib.rs:1571:13 -`core::str::::get_unchecked_mut` with a mutable reference to a value JS copies, which its mapping would copy at fixtures/reject/src/lib.rs:1572:13 -`std::str::from_utf8_mut` with a mutable reference to a value JS copies, which its mapping would copy at fixtures/reject/src/lib.rs:1577:20 -a copy between pointers to `[u8; 4]`, which JS keeps as an object that knows no array it is in at fixtures/reject/src/lib.rs:1645:3 -a copy between pointers to `[u8; 4]`, which JS keeps as an object that knows no array it is in at fixtures/reject/src/lib.rs:1646:3 -unsupported call to `std::ptr::addr_eq::<[u8; 4], [u8; 4]>` at fixtures/reject/src/lib.rs:1647:14 -comparing `*mut [u8; 4]` at fixtures/reject/src/lib.rs:1647:41 -an offset of a pointer to `[u8; 4]`, which JS keeps as an object that knows no array it is in at fixtures/reject/src/lib.rs:1648:56 -an offset of a pointer to `[u8; 4]`, which JS keeps as an object that knows no array it is in at fixtures/reject/src/lib.rs:1648:73 -hashing `*const [u8; 4]` by its address, which JS has no counterpart of at fixtures/reject/src/lib.rs:1651:5 -a raw pointer to `[u8; 3]` in an element, a payload, or a union field, which is not supported yet at fixtures/reject/src/lib.rs:1661:15 -a raw pointer to `[u8; 3]` in an element, a payload, or a union field, which is not supported yet at fixtures/reject/src/lib.rs:1661:18 -a raw pointer to `[u8; 2]` in an element, a payload, or a union field, which is not supported yet at fixtures/reject/src/lib.rs:1661:37 -a raw pointer to `[u8; 2]` in an element, a payload, or a union field, which is not supported yet at fixtures/reject/src/lib.rs:1661:44 -a reference to `[u8; 4]`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there at fixtures/reject/src/lib.rs:1668:26 -a raw pointer to `[u8; 4]` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:1668:26 -a raw pointer to `[u8; 4]` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:1669:10 -const generic types are not supported: `Block` at fixtures/reject/src/lib.rs:2036:21 -`std::collections::LinkedList::::retain` with a mutable reference to a value JS copies, which its mapping would copy at fixtures/reject/src/lib.rs:2052:4 -`clone_from` of `std::collections::LinkedList`, whose items' `clone_from` is their own, which is not supported yet at fixtures/reject/src/lib.rs:2053:4 -`std::default::Default::default` with a mutable reference to a value JS copies, which its mapping would copy at fixtures/reject/src/lib.rs:2054:2 -a mapped guard of `{closure@fixtures/reject/src/lib.rs:2086:38: 2086:50}`, which JS can't write in place at fixtures/reject/src/lib.rs:2087:10 -a pointer into `(u8, u8)`, which JS keeps as an object that knows no array it is in at fixtures/reject/src/lib.rs:2094:12 -an offset of a pointer to `(u8, u8)`, which JS keeps as an object that knows no array it is in at fixtures/reject/src/lib.rs:2096:13 -a copy between pointers to `(u8, u8)`, which JS keeps as an object that knows no array it is in at fixtures/reject/src/lib.rs:2097:3 -a slice from a pointer to `(u8, u8)`, which JS keeps as an object that knows no array it is in at fixtures/reject/src/lib.rs:2098:11 -a pointer into an array of `(u8, u8)`, which JS keeps as an object that knows no array it is in at fixtures/reject/src/lib.rs:2099:30 -`offset_from` of pointers to `(u8, u8)`, which JS keeps as an object that knows no array it is in at fixtures/reject/src/lib.rs:2100:36 -`offset_from` of pointers to `()`, which has no bytes at fixtures/reject/src/lib.rs:2107:13 -a slice of `()`, which has no bytes, from a pointer at fixtures/reject/src/lib.rs:2107:39 -a cast from a pointer to `u32` to one to `[u32; 2]`, which reads the bytes of one type as another at fixtures/reject/src/lib.rs:2112:13 -a raw pointer to `[u32; 3]` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:2125:10 -a raw pointer to `[u32; 3]` in `Lanes`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:2127:10 -`offset_from` between a pointer into a value in no array and one into a value in no array, which JS keeps in different arrays at fixtures/reject/src/lib.rs:2160:5 -`offset_from` between a pointer into a value in no array and one into a value in no array, which JS keeps in different arrays at fixtures/reject/src/lib.rs:2161:26 -`offset_from` between a pointer into an array of this body's own and one into an array of this body's own, which JS keeps in different arrays at fixtures/reject/src/lib.rs:2162:24 -`offset_from` between a pointer into an array of this body's own and one into an array of this body's own, which JS keeps in different arrays at fixtures/reject/src/lib.rs:2163:23 -`offset_from` between a pointer into a shared slice JS copies and one into an array of this body's own, which JS keeps in different arrays at fixtures/reject/src/lib.rs:2164:20 -`offset_from` between a pointer into a shared slice JS copies and one into a value in no array, which JS keeps in different arrays at fixtures/reject/src/lib.rs:2165:21 -a raw or mutable slice of a byte in no array of bytes at fixtures/reject/src/lib.rs:2171:12 -a raw or mutable slice of a byte in no array of bytes at fixtures/reject/src/lib.rs:2172:19 -a copy reaching past a shared slice JS copies, which JS keeps apart from what holds it in Rust at fixtures/reject/src/lib.rs:2183:3 -a pointer reaching past a shared slice JS copies, which JS keeps apart from what holds it in Rust at fixtures/reject/src/lib.rs:2185:18 -a slice reaching past a value in no array, which JS keeps apart from what holds it in Rust at fixtures/reject/src/lib.rs:2186:6 -a pointer reaching past a value in no array, which JS keeps apart from what holds it in Rust at fixtures/reject/src/lib.rs:2187:27 -a pointer reaching past a shared slice JS copies, which JS keeps apart from what holds it in Rust at fixtures/reject/src/lib.rs:2188:21 -a slice of one byte's place, which a byte slice can view only in an array of bytes at fixtures/reject/src/lib.rs:2195:2 -a slice or a cell of a mutable reference to `Reused` that names no place, which a whole write would replace only there at fixtures/reject/src/lib.rs:2201:2 -`Clone::clone_from` of `std::vec::Vec`, whose `clone_from` is its own, which is not supported yet at fixtures/reject/src/lib.rs:2206:4 -unsupported call to `std::mem::size_of_val::` at fixtures/reject/src/lib.rs:2211:2 -a raw pointer to `(u32, u32)` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:2217:10 -a raw pointer to `(u32, u32)` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:2225:10 -a raw pointer to `(u32, u32)` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:2233:10 -a slice or a cell of a mutable reference to `std::cell::LazyCell` that names no place, which a whole write would replace only there at fixtures/reject/src/lib.rs:2243:3 -an assignment through a reference to `std::sync::LazyLock` at fixtures/reject/src/lib.rs:2248:2 -a slice or a cell of a mutable reference to `std::thread::LocalKey` that names no place, which a whole write would replace only there at fixtures/reject/src/lib.rs:2254:2 -a byte of memory from `alloc`, which JS keeps as the values a cast of its pointer types it as at fixtures/reject/src/lib.rs:2266:3 -a cast from a pointer to `u8` to one to `u32`, which reads the bytes of one type as another at fixtures/reject/src/lib.rs:2267:15 -a cast from a pointer to `u8` to one to `Halves`, which reads the bytes of one type as another at fixtures/reject/src/lib.rs:2268:16 -a cast from a pointer to `u32` to one to `u8`, which reads the bytes of one type as another at fixtures/reject/src/lib.rs:2270:15 -unsupported call to `std::alloc::alloc_zeroed` at fixtures/reject/src/lib.rs:2295:13 -a cast from a pointer to `u8` to one to `u32`, which reads the bytes of one type as another at fixtures/reject/src/lib.rs:2295:12 -unsupported call to ` as std::cmp::PartialEq>::eq` at fixtures/reject/src/lib.rs:2301:25 -a constant of type `std::mem::ManuallyDrop` at fixtures/reject/src/lib.rs:2301:34 -unsupported call to ` as std::fmt::Debug>::fmt` at fixtures/reject/src/lib.rs:2301:11 -memory from `alloc` cast to pointers to `u32` and to `i32`, which reads the bytes of one type as another at fixtures/reject/src/lib.rs:2281:7 -memory from `alloc` cast to pointers to `i32` and to `u32`, which reads the bytes of one type as another at fixtures/reject/src/lib.rs:2282:11 -memory from `alloc` cast to pointers to `i32` and to `u32`, which reads the bytes of one type as another at fixtures/reject/src/lib.rs:2284:17 -memory from `alloc` cast to pointers to `u32` and to `i32`, which reads the bytes of one type as another at fixtures/reject/src/lib.rs:2285:21 -memory from `alloc` cast to pointers to `i32` and to `u32`, which reads the bytes of one type as another at fixtures/reject/src/lib.rs:2287:17 -a coercion of `*mut std::ops::Range` to `*mut dyn std::iter::Iterator`, which is not supported yet at fixtures/reject/src/lib.rs:2401:40 +unsupported call to ` as std::iter::Iterator>::sum::` at fixtures/reject/src/lib.rs:363:17 +unsupported call to ` as std::iter::Iterator>::sum::` at fixtures/reject/src/lib.rs:363:38 +a mutable reference into a `Result`'s payload, passed on or kept at fixtures/reject/src/lib.rs:291:12 +unsupported call to ` as std::cmp::PartialEq>::eq` at fixtures/reject/src/lib.rs:298:2 +`Bytes::from_owner` of `std::sync::Arc<[u8]>`, which would drop with the last clone of what it makes, which is not supported at fixtures/reject/src/lib.rs:303:2 +`BytesMut::capacity`, which reads a capacity that depends on whether the other handles of its storage dropped, which is not supported at fixtures/reject/src/lib.rs:312:6 +`BufMut::put` of `Counted` into a `BytesMut`, which picks the methods it calls by a capacity that depends on whether the other handles of its storage dropped, which is not supported at fixtures/reject/src/lib.rs:318:2 +`BufMut::put` of `Counted` into a `BytesMut`, which advances it by the room left in a capacity that depends on whether the other handles of its storage dropped, which is not supported at fixtures/reject/src/lib.rs:323:2 +unsupported call to `core::str::::parse::` at fixtures/reject/src/lib.rs:368:4 +unsupported type `std::net::Ipv4Addr` from another crate at fixtures/reject/src/lib.rs:367:32 +unsupported type `std::net::AddrParseError` from another crate at fixtures/reject/src/lib.rs:367:32 +`dyn Scaled`, a trait object of the generic trait `Scaled`, which is not supported yet at fixtures/reject/src/lib.rs:386:23 +`dyn Scaled`, a trait object of the generic trait `Scaled`, which is not supported yet at fixtures/reject/src/lib.rs:387:4 +a trait object of `[u8; 4]`, which is not supported yet at fixtures/reject/src/lib.rs:403:26 +a coercion to `&Tail`, which is not supported yet at fixtures/reject/src/lib.rs:413:30 +`Waiting>` is not supported: its field `poll` is `Poll`, typed `rt.Poll`, whose `Pending` would be `rt.OuterPending` as `Poll>` at fixtures/reject/src/lib.rs:424:2 +a copy of a closure that changes what it captured at fixtures/reject/src/lib.rs:436:14 +a copy of a closure that changes what it captured at fixtures/reject/src/lib.rs:437:14 +an upcast from `dyn Keyed` to `dyn std::any::Any`, which is not supported yet at fixtures/reject/src/lib.rs:454:32 +an upcast from `dyn Keyed` to `dyn std::any::Any`, which is not supported yet at fixtures/reject/src/lib.rs:460:46 +`std::any::Any::type_id` of `dyn std::any::Any`, which is not supported yet at fixtures/reject/src/lib.rs:466:4 +unsupported call to `std::any::TypeId::of::` at fixtures/reject/src/lib.rs:466:17 +unsupported call to `::eq` at fixtures/reject/src/lib.rs:466:2 +a cast from a pointer to `u32` to one to `u8`, which reads the bytes of one type as another at fixtures/reject/src/lib.rs:483:27 +a pointer's address, which JS has no counterpart of at fixtures/reject/src/lib.rs:488:17 +a byte of memory from `alloc`, which JS keeps as the values a cast of its pointer types it as at fixtures/reject/src/lib.rs:496:3 +a byte of memory from `alloc`, which JS keeps as the values a cast of its pointer types it as at fixtures/reject/src/lib.rs:497:11 +a raw pointer to `std::vec::Vec` behind a reference, which is the object and not where it is kept at fixtures/reject/src/lib.rs:505:10 +union `Bits`, whose fields overlap in `u32` and `f64`, which JS keeps apart at fixtures/reject/src/lib.rs:516:10 +comparing pointers to `u32`, each a place JS makes of its own at fixtures/reject/src/lib.rs:524:2 +comparing pointers to `u32`, each a place JS makes of its own at fixtures/reject/src/lib.rs:2067:2 +a raw pointer to `(u32, u32)` in `Span2`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:536:10 +a raw pointer to `(u32, u32)` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:544:10 +a raw pointer to `(u32, u32)` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:552:10 +a raw pointer to `(u32, u32)` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:561:10 +a raw pointer to `(u32, u32)` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:569:10 +a raw pointer to `(u32, u32)` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:578:10 +a raw pointer to `(u32, u32)` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:586:10 +a reference to `std::cell::UnsafeCell`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there at fixtures/reject/src/lib.rs:1577:18 +a raw pointer to `Target` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:1591:10 +a raw pointer to `(u32, u32)` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:1604:10 +a raw pointer to `(u32, u32)` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:1619:10 +a reference to `Behind`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there at fixtures/reject/src/lib.rs:1673:22 +a reference to `Unboxed`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there at fixtures/reject/src/lib.rs:1688:16 +a reference to `Deep`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there at fixtures/reject/src/lib.rs:1709:18 +a reference to `Slotted`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there at fixtures/reject/src/lib.rs:1731:21 +a reference to `Shared`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there at fixtures/reject/src/lib.rs:1750:20 +a reference to `Inside`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there at fixtures/reject/src/lib.rs:1767:20 +a reference to `Inside`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there at fixtures/reject/src/lib.rs:1780:26 +a reference to `Wrapped>`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there at fixtures/reject/src/lib.rs:1856:21 +a reference through which a raw pointer may be made into `std::cell::UnsafeCell` in `Replaced`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1879:20 +a reference through which a raw pointer may be made into `std::cell::UnsafeCell` in `Swapped`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1897:20 +a reference through which a raw pointer may be made into `std::cell::UnsafeCell` in `Taken`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1915:20 +a reference through which a raw pointer may be made into `std::cell::UnsafeCell` in `Assigned`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1934:20 +a reference through which a raw pointer may be made into `std::cell::UnsafeCell` in `Deeper`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1960:22 +a reference through which a raw pointer may be made into `std::cell::UnsafeCell` in `Dynamic`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1984:20 +a reference through which a raw pointer may be made into `std::cell::UnsafeCell` in `Closed`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:2000:15 +a reference through which a raw pointer may be made into `std::cell::UnsafeCell` in `[std::cell::UnsafeCell; 2]`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:2013:20 +a reference to `Compared`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there at fixtures/reject/src/lib.rs:1795:22 +a reference to `Enclosing`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there at fixtures/reject/src/lib.rs:1812:22 +a reference to `Chosen`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there at fixtures/reject/src/lib.rs:1828:17 +a reference to `[u8; 4]`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there at fixtures/reject/src/lib.rs:1841:19 +a raw pointer to `(u32, u32)` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:923:26 +a raw pointer to `(u32, u32)` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:936:22 +a raw pointer to `(u32, u32)` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:946:12 +a raw pointer to `(u32, u32)` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:955:10 +a raw pointer to `(u32, u32)` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:965:17 +a raw pointer to `(u32, u32)` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:970:10 +a raw pointer to `(u32, u32)` in `Window`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:597:2 +a raw pointer to `(u32, u32)` in an element, a payload, or a union field, which is not supported yet at fixtures/reject/src/lib.rs:607:10 +a raw pointer to `(u32, u32)` in `std::cell::UnsafeCell<(u32, u32)>`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:615:15 +a raw pointer to `std::cell::UnsafeCell` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:624:15 +a raw pointer to `std::cell::UnsafeCell` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:637:15 +a raw pointer to `std::cell::UnsafeCell` in `Hits`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:648:21 +a raw pointer to a place of `()`, which has no address of its own at fixtures/reject/src/lib.rs:656:15 +a raw pointer to a place of `()`, which has no address of its own at fixtures/reject/src/lib.rs:656:29 +comparing pointers to `Bare`, which has no bytes and so no address of its own at fixtures/reject/src/lib.rs:656:70 +a dangling pointer to `Only`, a value of no bytes made of more than structs and tuples at fixtures/reject/src/lib.rs:665:11 +`Buf::copy_to_bytes` of `Blank`, a value JS copies, which is not supported at fixtures/reject/src/lib.rs:689:2 +unsupported call to ` as std::iter::Iterator>::is_sorted` at fixtures/reject/src/lib.rs:694:15 +comparing pointers to `u32` in an atomic, which JS has no address of at fixtures/reject/src/lib.rs:705:15 +a constant of type `&u32`, a pointer into memory translation can't name at fixtures/reject/src/lib.rs:706:3 +a raw pointer to `(u32, u32)` in `Plain`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:748:10 +a raw pointer to `(u32, u32)` in `Track`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:774:19 +a raw pointer to `(u32, u32)` in `Lane`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:794:19 +a raw pointer to `(u32, u32)` in `Gap`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:830:10 +a raw pointer to `(u32, u32)` in `Gap`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:831:10 +a raw pointer to `(u32, u32)` in `Gap`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:832:58 +a raw pointer to `std::mem::MaybeUninit<(u32, u32)>` in `Gap`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:844:19 +a raw pointer to `std::mem::MaybeUninit<(u32, u32)>` in `Gap`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:845:19 +`collect` of `std::collections::BTreeMap, Noisy>`, which sorts by `std::cell::Cell`'s own `Ord`, of entries that drop, which is not supported yet at fixtures/reject/src/lib.rs:877:22 +a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Looped`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1032:26 +a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Aliased`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1042:29 +a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Rewritten`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1052:47 +a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Loaded`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1064:29 +a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Mapped`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1109:39 +a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Repeated`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1143:18 +a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Onced`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1155:46 +`std::iter::once` with a mutable reference to a value JS copies, which its mapping would copy at fixtures/reject/src/lib.rs:1157:22 +a raw pointer to `(u16, u16)` in `Pushed`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1170:22 +`Extend` of `(std::vec::Vec, Tens)` by `(u8, u8)`, whose `Tens` of `u8` is not supported yet at fixtures/reject/src/lib.rs:1194:31 +unsupported call to `core::num::::is_ascii_octdigit` at fixtures/reject/src/lib.rs:1199:4 +a reference through which a raw pointer may be made into `InArray` in `[InArray; 2]`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1259:33 +a reference through which a raw pointer may be made into `InTuple` in `(u16, InTuple)`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1268:33 +a reference through which a raw pointer may be made into `Mid` in `Outer`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1277:34 +a reference through which a raw pointer may be made into `InPayload` in an element, a payload, or a union field, which is not supported yet at fixtures/reject/src/lib.rs:1286:11 +a reference through which a raw pointer may be made into `Mid` in `Outer`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1298:33 +a reference through which a raw pointer may be made into `Mid` in `Outer`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1311:35 +a reference through which a raw pointer may be made into `InWritten` in `[InWritten; 1]`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1320:35 +a raw pointer to `std::cell::UnsafeCell` in `ByRead`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1377:35 +a raw pointer to `std::cell::UnsafeCell` in `ByWrite`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1390:35 +a raw pointer to `std::cell::UnsafeCell` in `BySwap`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1403:35 +a raw pointer to `std::cell::UnsafeCell` in `ByReplace`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1415:35 +a raw pointer to `std::cell::UnsafeCell` in `ByBox`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1426:35 +a raw pointer to `std::cell::UnsafeCell` in `ByClosure`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1441:35 +a raw pointer to `std::cell::UnsafeCell` in `ByObject`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1454:35 +a raw pointer to `std::cell::UnsafeCell` in `ByInstance`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1467:35 +a raw pointer to `std::cell::UnsafeCell` in `BySwapped`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1476:76 +a raw pointer to `std::cell::UnsafeCell` in `ByExchanged`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1487:30 +a raw pointer to `ByRefReplace` in `(u16, ByRefReplace)`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1519:32 +a raw pointer to `ByRefTake` in `(u16, ByRefTake)`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1527:32 +a raw pointer to `ByKeySet` in `(u16, ByKeySet)`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1535:51 +a raw pointer to `ByKeyReplace` in `(u16, ByKeyReplace)`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1543:55 +a raw pointer to `ByKeyTake` in `(u16, ByKeyTake)`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1550:52 +unsupported call to `core::str::::as_bytes_mut` at fixtures/reject/src/lib.rs:1558:13 +`core::str::::get_unchecked_mut` with a mutable reference to a value JS copies, which its mapping would copy at fixtures/reject/src/lib.rs:1559:13 +`std::str::from_utf8_mut` with a mutable reference to a value JS copies, which its mapping would copy at fixtures/reject/src/lib.rs:1564:20 +a copy between pointers to `[u8; 4]`, which JS keeps as an object that knows no array it is in at fixtures/reject/src/lib.rs:1632:3 +a copy between pointers to `[u8; 4]`, which JS keeps as an object that knows no array it is in at fixtures/reject/src/lib.rs:1633:3 +unsupported call to `std::ptr::addr_eq::<[u8; 4], [u8; 4]>` at fixtures/reject/src/lib.rs:1634:14 +comparing `*mut [u8; 4]` at fixtures/reject/src/lib.rs:1634:41 +an offset of a pointer to `[u8; 4]`, which JS keeps as an object that knows no array it is in at fixtures/reject/src/lib.rs:1635:56 +an offset of a pointer to `[u8; 4]`, which JS keeps as an object that knows no array it is in at fixtures/reject/src/lib.rs:1635:73 +hashing `*const [u8; 4]` by its address, which JS has no counterpart of at fixtures/reject/src/lib.rs:1638:5 +a raw pointer to `[u8; 3]` in an element, a payload, or a union field, which is not supported yet at fixtures/reject/src/lib.rs:1648:15 +a raw pointer to `[u8; 3]` in an element, a payload, or a union field, which is not supported yet at fixtures/reject/src/lib.rs:1648:18 +a raw pointer to `[u8; 2]` in an element, a payload, or a union field, which is not supported yet at fixtures/reject/src/lib.rs:1648:37 +a raw pointer to `[u8; 2]` in an element, a payload, or a union field, which is not supported yet at fixtures/reject/src/lib.rs:1648:44 +a reference to `[u8; 4]`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there at fixtures/reject/src/lib.rs:1655:26 +a raw pointer to `[u8; 4]` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:1655:26 +a raw pointer to `[u8; 4]` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:1656:10 +const generic types are not supported: `Block` at fixtures/reject/src/lib.rs:2023:21 +`std::collections::LinkedList::::retain` with a mutable reference to a value JS copies, which its mapping would copy at fixtures/reject/src/lib.rs:2039:4 +`clone_from` of `std::collections::LinkedList`, whose items' `clone_from` is their own, which is not supported yet at fixtures/reject/src/lib.rs:2040:4 +`std::default::Default::default` with a mutable reference to a value JS copies, which its mapping would copy at fixtures/reject/src/lib.rs:2041:2 +a mapped guard of `{closure@fixtures/reject/src/lib.rs:2073:38: 2073:50}`, which JS can't write in place at fixtures/reject/src/lib.rs:2074:10 +a pointer into `(u8, u8)`, which JS keeps as an object that knows no array it is in at fixtures/reject/src/lib.rs:2081:12 +an offset of a pointer to `(u8, u8)`, which JS keeps as an object that knows no array it is in at fixtures/reject/src/lib.rs:2083:13 +a copy between pointers to `(u8, u8)`, which JS keeps as an object that knows no array it is in at fixtures/reject/src/lib.rs:2084:3 +a slice from a pointer to `(u8, u8)`, which JS keeps as an object that knows no array it is in at fixtures/reject/src/lib.rs:2085:11 +a pointer into an array of `(u8, u8)`, which JS keeps as an object that knows no array it is in at fixtures/reject/src/lib.rs:2086:30 +`offset_from` of pointers to `(u8, u8)`, which JS keeps as an object that knows no array it is in at fixtures/reject/src/lib.rs:2087:36 +`offset_from` of pointers to `()`, which has no bytes at fixtures/reject/src/lib.rs:2094:13 +a slice of `()`, which has no bytes, from a pointer at fixtures/reject/src/lib.rs:2094:39 +a cast from a pointer to `u32` to one to `[u32; 2]`, which reads the bytes of one type as another at fixtures/reject/src/lib.rs:2099:13 +a raw pointer to `[u32; 3]` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:2112:10 +a raw pointer to `[u32; 3]` in `Lanes`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:2114:10 +`offset_from` between a pointer into a value in no array and one into a value in no array, which JS keeps in different arrays at fixtures/reject/src/lib.rs:2147:5 +`offset_from` between a pointer into a value in no array and one into a value in no array, which JS keeps in different arrays at fixtures/reject/src/lib.rs:2148:26 +`offset_from` between a pointer into an array of this body's own and one into an array of this body's own, which JS keeps in different arrays at fixtures/reject/src/lib.rs:2149:24 +`offset_from` between a pointer into an array of this body's own and one into an array of this body's own, which JS keeps in different arrays at fixtures/reject/src/lib.rs:2150:23 +`offset_from` between a pointer into a shared slice JS copies and one into an array of this body's own, which JS keeps in different arrays at fixtures/reject/src/lib.rs:2151:20 +`offset_from` between a pointer into a shared slice JS copies and one into a value in no array, which JS keeps in different arrays at fixtures/reject/src/lib.rs:2152:21 +a raw or mutable slice of a byte in no array of bytes at fixtures/reject/src/lib.rs:2158:12 +a raw or mutable slice of a byte in no array of bytes at fixtures/reject/src/lib.rs:2159:19 +a copy reaching past a shared slice JS copies, which JS keeps apart from what holds it in Rust at fixtures/reject/src/lib.rs:2170:3 +a pointer reaching past a shared slice JS copies, which JS keeps apart from what holds it in Rust at fixtures/reject/src/lib.rs:2172:18 +a slice reaching past a value in no array, which JS keeps apart from what holds it in Rust at fixtures/reject/src/lib.rs:2173:6 +a pointer reaching past a value in no array, which JS keeps apart from what holds it in Rust at fixtures/reject/src/lib.rs:2174:27 +a pointer reaching past a shared slice JS copies, which JS keeps apart from what holds it in Rust at fixtures/reject/src/lib.rs:2175:21 +a slice of one byte's place, which a byte slice can view only in an array of bytes at fixtures/reject/src/lib.rs:2182:2 +a slice or a cell of a mutable reference to `Reused` that names no place, which a whole write would replace only there at fixtures/reject/src/lib.rs:2188:2 +`Clone::clone_from` of `std::vec::Vec`, whose `clone_from` is its own, which is not supported yet at fixtures/reject/src/lib.rs:2193:4 +unsupported call to `std::mem::size_of_val::` at fixtures/reject/src/lib.rs:2198:2 +a raw pointer to `(u32, u32)` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:2204:10 +a raw pointer to `(u32, u32)` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:2212:10 +a raw pointer to `(u32, u32)` in a variable assigned again while it may point there at fixtures/reject/src/lib.rs:2220:10 +a slice or a cell of a mutable reference to `std::cell::LazyCell` that names no place, which a whole write would replace only there at fixtures/reject/src/lib.rs:2230:3 +an assignment through a reference to `std::sync::LazyLock` at fixtures/reject/src/lib.rs:2235:2 +a slice or a cell of a mutable reference to `std::thread::LocalKey` that names no place, which a whole write would replace only there at fixtures/reject/src/lib.rs:2241:2 +a byte of memory from `alloc`, which JS keeps as the values a cast of its pointer types it as at fixtures/reject/src/lib.rs:2253:3 +a cast from a pointer to `u8` to one to `u32`, which reads the bytes of one type as another at fixtures/reject/src/lib.rs:2254:15 +a cast from a pointer to `u8` to one to `Halves`, which reads the bytes of one type as another at fixtures/reject/src/lib.rs:2255:16 +a cast from a pointer to `u32` to one to `u8`, which reads the bytes of one type as another at fixtures/reject/src/lib.rs:2257:15 +unsupported call to `std::alloc::alloc_zeroed` at fixtures/reject/src/lib.rs:2282:13 +a cast from a pointer to `u8` to one to `u32`, which reads the bytes of one type as another at fixtures/reject/src/lib.rs:2282:12 +unsupported call to ` as std::cmp::PartialEq>::eq` at fixtures/reject/src/lib.rs:2288:25 +a constant of type `std::mem::ManuallyDrop` at fixtures/reject/src/lib.rs:2288:34 +unsupported call to ` as std::fmt::Debug>::fmt` at fixtures/reject/src/lib.rs:2288:11 +memory from `alloc` cast to pointers to `u32` and to `i32`, which reads the bytes of one type as another at fixtures/reject/src/lib.rs:2268:7 +memory from `alloc` cast to pointers to `i32` and to `u32`, which reads the bytes of one type as another at fixtures/reject/src/lib.rs:2269:11 +memory from `alloc` cast to pointers to `i32` and to `u32`, which reads the bytes of one type as another at fixtures/reject/src/lib.rs:2271:17 +memory from `alloc` cast to pointers to `u32` and to `i32`, which reads the bytes of one type as another at fixtures/reject/src/lib.rs:2272:21 +memory from `alloc` cast to pointers to `i32` and to `u32`, which reads the bytes of one type as another at fixtures/reject/src/lib.rs:2274:17 +a coercion of `*mut std::ops::Range` to `*mut dyn std::iter::Iterator`, which is not supported yet at fixtures/reject/src/lib.rs:2388:40 overriding `Iterator::fold`, which std's adaptors call in place of `next` or beside it at fixtures/reject/src/lib.rs:125:2 overriding `DoubleEndedIterator::nth_back`, which std's adaptors call in place of `next` or beside it at fixtures/reject/src/lib.rs:150:2 -a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Escaped`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1007:43 -a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Called`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1021:28 -a raw pointer to `(u16, u16)` in `Copied`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1111:31 -a raw pointer to `std::cell::UnsafeCell` in `InArray`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1237:9 -a raw pointer to `std::cell::UnsafeCell` in `InTuple`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1241:9 -a raw pointer to `std::cell::UnsafeCell` in `InNested`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1245:9 -a raw pointer to `std::cell::UnsafeCell` in `InPayload`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1249:9 -a raw pointer to `std::cell::UnsafeCell` in `InField`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1253:9 -a raw pointer to `std::cell::UnsafeCell` in `InGeneric`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1257:9 -a raw pointer to `std::cell::UnsafeCell` in `InWritten`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1261:9 -a reference to `std::option::Option>`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there at fixtures/reject/src/lib.rs:2043:13 -a raw pointer to `(u8, u8)` in `([Cloned; 2], (u8, u8))`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:2308:23 -a raw pointer to `(u8, u8)` in `(Dropped, (u8, u8))`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:2308:23 -a raw pointer to `(u8, u8)` in `([Greatest; 2], (u8, u8))`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:2364:13 -a raw pointer to `(u8, u8)` in `([Touched; 2], (u8, u8))`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:2308:23 +a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Escaped`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:994:43 +a raw pointer to `std::cell::UnsafeCell<(u16, u16)>` in `Called`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1008:28 +a raw pointer to `(u16, u16)` in `Copied`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1098:31 +a raw pointer to `std::cell::UnsafeCell` in `InArray`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1224:9 +a raw pointer to `std::cell::UnsafeCell` in `InTuple`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1228:9 +a raw pointer to `std::cell::UnsafeCell` in `InNested`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1232:9 +a raw pointer to `std::cell::UnsafeCell` in `InPayload`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1236:9 +a raw pointer to `std::cell::UnsafeCell` in `InField`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1240:9 +a raw pointer to `std::cell::UnsafeCell` in `InGeneric`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1244:9 +a raw pointer to `std::cell::UnsafeCell` in `InWritten`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:1248:9 +a reference to `std::option::Option>`, through which a raw pointer may be made, in a variable assigned again while that pointer may point there at fixtures/reject/src/lib.rs:2030:13 +a raw pointer to `(u8, u8)` in `([Cloned; 2], (u8, u8))`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:2295:23 +a raw pointer to `(u8, u8)` in `(Dropped, (u8, u8))`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:2295:23 +a raw pointer to `(u8, u8)` in `([Greatest; 2], (u8, u8))`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:2351:13 +a raw pointer to `(u8, u8)` in `([Touched; 2], (u8, u8))`, which the crate may put another object in place of at fixtures/reject/src/lib.rs:2295:23 diff --git a/ts/fixtures/reject/src/lib.rs b/ts/fixtures/reject/src/lib.rs index 3bf19eefa..cf6911c2f 100644 --- a/ts/fixtures/reject/src/lib.rs +++ b/ts/fixtures/reject/src/lib.rs @@ -255,13 +255,6 @@ pub fn batched(v: Vec) -> usize { set.len() } -/// A closure that owns a value that drops, given as a `Pattern`, which `contains` would -/// call but never drop. -pub fn pattern_closure(s: &str) -> bool { - let n = Noisy(1); - s.contains(move |c: char| c as u8 == (&n).0) -} - /// A `Cow` is a JS string, which keeps no variant to match on or ask about. pub fn cow_matched(c: std::borrow::Cow<'_, str>) -> String { match c { @@ -713,12 +706,6 @@ pub fn pointer_statics(p: *mut u32) -> u32 { *NAMED } -/// A closure that owns a value that drops, which `String::retain` would call but never drop. -pub fn string_retained(s: &mut String) { - let n = Noisy(1); - s.retain(move |c| c as u8 != (&n).0); -} - /// A census lowers this over `F` and `O`, and `awaited`'s body with it, whose closure names /// `O` as this function's second type parameter: that refuses nothing. pub async fn generic_awaited u8, O: std::future::Future>(f: F, o: O) -> u8 { diff --git a/ts/fixtures/reject/ts.toml b/ts/fixtures/reject/ts.toml index b3961fdb3..a23d5d236 100644 --- a/ts/fixtures/reject/ts.toml +++ b/ts/fixtures/reject/ts.toml @@ -36,7 +36,6 @@ roots = [ "cow_made", "lopsided", "batched", - "pattern_closure", "parts_summed", "ok_passed", "places_equal", @@ -110,7 +109,6 @@ roots = [ "places_sorted", "pointer_statics", "bound_ranges", - "string_retained", "put_replaced", "object_replaced", "closure_replaced", diff --git a/ts/fixtures/task/expected/drops.ts b/ts/fixtures/task/expected/drops.ts index 3f42e4c23..cfcd3caf5 100644 --- a/ts/fixtures/task/expected/drops.ts +++ b/ts/fixtures/task/expected/drops.ts @@ -15,6 +15,7 @@ import { run as lists_run } from "./drops/lists.ts"; import { boxed as objects_boxed, shared, anys, fns } from "./drops/objects.ts"; import { run as once_run } from "./drops/once.ts"; import { released as released_released } from "./drops/released.ts"; +import { searched as searched_searched } from "./drops/searched.ts"; import * as Held from "./drops.Held.ts"; import * as Key from "./drops.Key.ts"; import * as Named from "./drops.Named.ts"; @@ -1311,6 +1312,11 @@ export function released(log: Log.Log, id: rt.u32, arg: rt.u8): void { released_released(log, id, arg); } +/** Run scenario `arg % 3` of where std drops a closure given to a string's search or edit. */ +export function searched(log: Log.Log, id: rt.u32, arg: rt.u8): void { + searched_searched(log, id, arg); +} + /** Run scenario `arg % 9` of what std's comparisons of iterators drop. */ export function compared(log: Log.Log, id: rt.u32, arg: rt.u8): void { iters_compared(log, id, arg); diff --git a/ts/fixtures/task/expected/drops/searched.ts b/ts/fixtures/task/expected/drops/searched.ts new file mode 100644 index 000000000..02187f70a --- /dev/null +++ b/ts/fixtures/task/expected/drops/searched.ts @@ -0,0 +1,523 @@ +// Generated by rust2-ts. Do not edit. + +import * as rt from "../rt.ts"; +import * as Log from "../log.Log.ts"; +import * as Guard from "../model.Guard.ts"; + +/** Run scenario `arg % 3`. */ +export function searched(log: Log.Log, id: rt.u32, arg: rt.u8): void { + let f!: Guard.Guard; + const guard: (a0: rt.u32) => Guard.Guard = (n2: rt.u32): Guard.Guard => { + return Guard.new(rt.u32Add(id, n2), Log.clone$Clone(log)); + }; + const text: string = "a,b;c,,d"; + const _7: rt.u8 = rt.u8Rem(arg, 3); + if (_7 === 0) { + const captured28 = guard(1); + const _13: (a0: rt.char) => boolean = rt.closure((c27: rt.char): boolean => { + if (!(c27 === 59)) { + return false; + } + return Guard.id(captured28) > 0; + }, (): void => { + captured28[Symbol.dispose](); + }); + const found: boolean = rt.dropAfter(_13, () => rt.strContains(text, _13)); + const captured29 = guard(2); + const _18: (a0: rt.char) => boolean = rt.closure((c28: rt.char): boolean => { + if (!(c28 === 122)) { + return false; + } + return Guard.id(captured29) > 0; + }, (): void => { + captured29[Symbol.dispose](); + }); + const missing: boolean = rt.dropAfter(_18, () => rt.strContains(text, _18)); + const args2: rt.Fmt[] = [(f: rt.Formatter) => rt.fmtBool(found, f), (f: rt.Formatter) => rt.fmtBool(missing, f)]; + Log.note(log, rt.fmtFormat(["contains ", args2[0], " ", args2[1]])); + const _33: [Guard.Guard, Guard.Guard] = [guard(3), guard(4)]; + const c: Guard.Guard = _33[0]; + const d: Guard.Guard = _33[1]; + const captured30 = (c29: rt.char): boolean => { + if (!(c29 === 44)) { + return c29 === 59; + } + return true; + }; + const captured31 = d; + const _42: (a0: rt.char) => boolean = rt.closure((c30: rt.char): boolean => { + if (!captured30(c30)) { + return false; + } + return Guard.id(captured31) > 0; + }, (): void => { + captured31[Symbol.dispose](); + }); + const _41: rt.usize | undefined = rt.dropAfter(_42, () => rt.strFind(text, _42)); + const captured32 = (c31: rt.char): boolean => { + if (!(c31 === 44)) { + return c31 === 59; + } + return true; + }; + const captured33 = c; + const _44: (a0: rt.char) => boolean = rt.closure((ch2: rt.char): boolean => { + if (!captured32(ch2)) { + return false; + } + return Guard.id(captured33) > 0; + }, (): void => { + captured33[Symbol.dispose](); + }); + const part7 = [_41, rt.dropAfter(_44, () => rt.strRfind(text, _44))] as [rt.usize | undefined, rt.usize | undefined]; + const args4: rt.Fmt[] = [(f: rt.Formatter) => rt.fmtTuple([(f: rt.Formatter) => rt.fmtOption(part7[0], f, rt.usizeDebug), (f: rt.Formatter) => rt.fmtOption(part7[1], f, rt.usizeDebug)], f)]; + Log.note(log, rt.fmtFormat(["find ", args4[0]])); + const _57: [Guard.Guard, Guard.Guard] = [guard(5), guard(6)]; + const e: Guard.Guard = _57[0]; + f = _57[1]; + const captured34 = e; + const _66: (a0: rt.char) => boolean = rt.closure((c32: rt.char): boolean => { + if (!(c32 === 97)) { + return false; + } + return Guard.id(captured34) > 0; + }, (): void => { + captured34[Symbol.dispose](); + }); + const _65: boolean = rt.dropAfter(_66, () => rt.strStartsWith(text, _66)); + const captured35 = (c33: rt.char): boolean => { + if (!(c33 === 44)) { + return c33 === 59; + } + return true; + }; + const captured36 = f; + const _68: (a0: rt.char) => boolean = rt.closure((c34: rt.char): boolean => { + if (!captured35(c34)) { + return false; + } + return Guard.id(captured36) > 0; + }, (): void => { + captured36[Symbol.dispose](); + }); + const part8 = [_65, rt.dropAfter(_68, () => rt.strEndsWith(text, _68))] as [boolean, boolean]; + const args6: rt.Fmt[] = [(f: rt.Formatter) => rt.fmtTuple([(f: rt.Formatter) => rt.fmtBool(part8[0], f), (f: rt.Formatter) => rt.fmtBool(part8[1], f)], f)]; + Log.note(log, rt.fmtFormat(["ends ", args6[0]])); + const _81: [Guard.Guard, Guard.Guard] = [guard(7), guard(8)]; + const g: Guard.Guard = _81[0]; + const h: Guard.Guard = _81[1]; + const captured37 = g; + const _90: (a0: rt.char) => boolean = rt.closure((c35: rt.char): boolean => { + if (!(c35 === 97)) { + return false; + } + return Guard.id(captured37) > 0; + }, (): void => { + captured37[Symbol.dispose](); + }); + const _89: string | undefined = rt.dropAfter(_90, () => rt.strStripPrefix(text, _90)); + const captured38 = h; + const _92: (a0: rt.char) => boolean = rt.closure((c36: rt.char): boolean => { + if (!(c36 === 97)) { + return false; + } + return Guard.id(captured38) > 0; + }, (): void => { + captured38[Symbol.dispose](); + }); + const part9 = [_89, rt.dropAfter(_92, () => rt.strStripSuffix(text, _92))] as [string | undefined, string | undefined]; + const args8: rt.Fmt[] = [(f: rt.Formatter) => rt.fmtTuple([(f: rt.Formatter) => rt.fmtOption(part9[0], f, rt.fmtStr), (f: rt.Formatter) => rt.fmtOption(part9[1], f, rt.fmtStr)], f)]; + Log.note(log, rt.fmtFormat(["strip ", args8[0]])); + const _105: [Guard.Guard, Guard.Guard] = [guard(9), guard(10)]; + const i: Guard.Guard = _105[0]; + const j: Guard.Guard = _105[1]; + const captured39 = (c37: rt.char): boolean => { + if (!(c37 === 44)) { + return c37 === 59; + } + return true; + }; + const captured40 = i; + const _114: (a0: rt.char) => boolean = rt.closure((c38: rt.char): boolean => { + if (!captured39(c38)) { + return false; + } + return Guard.id(captured40) > 0; + }, (): void => { + captured40[Symbol.dispose](); + }); + const _113: [string, string] | undefined = rt.dropAfter(_114, () => rt.strSplitOnce(text, _114)); + const captured41 = (c39: rt.char): boolean => { + if (!(c39 === 44)) { + return c39 === 59; + } + return true; + }; + const captured42 = j; + const _116: (a0: rt.char) => boolean = rt.closure((c40: rt.char): boolean => { + if (!captured41(c40)) { + return false; + } + return Guard.id(captured42) > 0; + }, (): void => { + captured42[Symbol.dispose](); + }); + const part10 = [_113, rt.dropAfter(_116, () => rt.strRsplitOnce(text, _116))] as [[string, string] | undefined, [string, string] | undefined]; + const args10: rt.Fmt[] = [(f: rt.Formatter) => rt.fmtTuple([(f: rt.Formatter) => rt.fmtOption(part10[0], f, (value: [string, string], f: rt.Formatter) => rt.fmtTuple([(f: rt.Formatter) => rt.fmtStr(value[0], f), (f: rt.Formatter) => rt.fmtStr(value[1], f)], f)), (f: rt.Formatter) => rt.fmtOption(part10[1], f, (value: [string, string], f: rt.Formatter) => rt.fmtTuple([(f: rt.Formatter) => rt.fmtStr(value[0], f), (f: rt.Formatter) => rt.fmtStr(value[1], f)], f))], f)]; + Log.note(log, rt.fmtFormat(["once ", args10[0]])); + const _130: [Guard.Guard, Guard.Guard, Guard.Guard] = [guard(11), guard(12), guard(13)]; + const k: Guard.Guard = _130[0]; + const l: Guard.Guard = _130[1]; + const m: Guard.Guard = _130[2]; + const _142: string = ",a,"; + const captured43 = k; + const _143: (a0: rt.char) => boolean = rt.closure((c41: rt.char): boolean => { + if (!(c41 === 44)) { + return false; + } + return Guard.id(captured43) > 0; + }, (): void => { + captured43[Symbol.dispose](); + }); + const _141: string = rt.dropAfter(_143, () => rt.strTrimMatches(_142, _143)); + const captured44 = l; + const _145: string = ",a,"; + const _146: (a0: rt.char) => boolean = rt.closure((c42: rt.char): boolean => { + if (!(c42 === 44)) { + return false; + } + return Guard.id(captured44) > 0; + }, (): void => { + captured44[Symbol.dispose](); + }); + const _144: string = rt.dropAfter(_146, () => rt.strTrimStartMatches(_145, _146)); + const captured45 = m; + const _148: string = ",a,"; + const _149: (a0: rt.char) => boolean = rt.closure((c43: rt.char): boolean => { + if (!(c43 === 44)) { + return false; + } + return Guard.id(captured45) > 0; + }, (): void => { + captured45[Symbol.dispose](); + }); + const part11 = [_141, _144, rt.dropAfter(_149, () => rt.strTrimEndMatches(_148, _149))] as [string, string, string]; + const args12: rt.Fmt[] = [(f: rt.Formatter) => rt.fmtTuple([(f: rt.Formatter) => rt.fmtStr(part11[0], f), (f: rt.Formatter) => rt.fmtStr(part11[1], f), (f: rt.Formatter) => rt.fmtStr(part11[2], f)], f)]; + Log.note(log, rt.fmtFormat(["trim ", args12[0]])); + const _162: [Guard.Guard, Guard.Guard] = [guard(14), guard(15)]; + const n: Guard.Guard = _162[0]; + const o: Guard.Guard = _162[1]; + const captured46 = (c44: rt.char): boolean => { + if (!(c44 === 44)) { + return c44 === 59; + } + return true; + }; + const captured47 = n; + const _171: (a0: rt.char) => boolean = rt.closure((c45: rt.char): boolean => { + if (!captured46(c45)) { + return false; + } + return Guard.id(captured47) > 0; + }, (): void => { + captured47[Symbol.dispose](); + }); + const _172: string = "+"; + const _170: string = rt.dropAfter(_171, () => rt.strReplace(text, _171, _172)); + const captured48 = (c46: rt.char): boolean => { + if (!(c46 === 44)) { + return c46 === 59; + } + return true; + }; + const captured49 = o; + const _174: (a0: rt.char) => boolean = rt.closure((c47: rt.char): boolean => { + if (!captured48(c47)) { + return false; + } + return Guard.id(captured49) > 0; + }, (): void => { + captured49[Symbol.dispose](); + }); + const _175: string = "+"; + const part12 = [_170, rt.dropAfter(_174, () => rt.strReplace(text, _174, _175, 2))] as [string, string]; + const args14: rt.Fmt[] = [(f: rt.Formatter) => rt.fmtTuple([(f: rt.Formatter) => rt.fmtStr(part12[0], f), (f: rt.Formatter) => rt.fmtStr(part12[1], f)], f)]; + Log.note(log, rt.fmtFormat(["replace ", args14[0]])); + } else if (_7 === 1) { + const a2: Guard.Guard = guard(1); + const captured6 = (c6: rt.char): boolean => { + if (!(c6 === 44)) { + return c6 === 59; + } + return true; + }; + const captured7 = a2; + const split: rt.Iter = rt.strSplit(text, rt.closure((c7: rt.char): boolean => { + if (!captured6(c7)) { + return false; + } + return Guard.id(captured7) > 0; + }, (): void => { + captured7[Symbol.dispose](); + })); + const _197: string | undefined = rt.iterToOption(split.next()); + const _200: string | undefined = rt.iterToOption(split.nextBack()); + const args16: rt.Fmt[] = [(f: rt.Formatter) => rt.fmtOption(_197, f, rt.fmtStr), (f: rt.Formatter) => rt.fmtOption(_200, f, rt.fmtStr)]; + Log.note(log, rt.fmtFormat(["split ", args16[0], " ", args16[1]])); + rt.drop(split); + const b2: Guard.Guard = guard(2); + const captured8 = (c8: rt.char): boolean => { + if (!(c8 === 44)) { + return c8 === 59; + } + return true; + }; + const captured9 = b2; + const part3 = rt.iterToArray(rt.strRsplit(text, rt.closure((c9: rt.char): boolean => { + if (!captured8(c9)) { + return false; + } + return Guard.id(captured9) > 0; + }, (): void => { + captured9[Symbol.dispose](); + })), "next", 8); + const args18: rt.Fmt[] = [(f: rt.Formatter) => rt.fmtList(part3, f, rt.fmtStr)]; + Log.note(log, rt.fmtFormat(["rsplit ", args18[0]])); + const _227: [Guard.Guard, Guard.Guard] = [guard(3), guard(4)]; + const c2: Guard.Guard = _227[0]; + const d2: Guard.Guard = _227[1]; + const captured10 = (c10: rt.char): boolean => { + if (!(c10 === 44)) { + return c10 === 59; + } + return true; + }; + const captured11 = d2; + const _235: rt.usize = rt.ownedCount(rt.strSplitn(text, 2, rt.closure((c11: rt.char): boolean => { + if (!captured10(c11)) { + return false; + } + return Guard.id(captured11) > 0; + }, (): void => { + captured11[Symbol.dispose](); + }))); + const captured12 = (c12: rt.char): boolean => { + if (!(c12 === 44)) { + return c12 === 59; + } + return true; + }; + const captured13 = c2; + const part4 = [_235, rt.ownedLast(rt.strRsplitn(text, 3, rt.closure((ch: rt.char): boolean => { + if (!captured12(ch)) { + return false; + } + return Guard.id(captured13) > 0; + }, (): void => { + captured13[Symbol.dispose](); + })))] as [rt.usize, string | undefined]; + const args20: rt.Fmt[] = [(f: rt.Formatter) => rt.fmtTuple([(f: rt.Formatter) => rt.usizeDebug(part4[0], f), (f: rt.Formatter) => rt.fmtOption(part4[1], f, rt.fmtStr)], f)]; + Log.note(log, rt.fmtFormat(["splitn ", args20[0]])); + const e2: Guard.Guard = guard(5); + const captured14 = (c13: rt.char): boolean => { + if (!(c13 === 44)) { + return c13 === 59; + } + return true; + }; + const captured15 = e2; + const iter: rt.Iter = rt.strSplitTerminator(text, rt.closure((c14: rt.char): boolean => { + if (!captured14(c14)) { + return false; + } + return Guard.id(captured15) > 0; + }, (): void => { + captured15[Symbol.dispose](); + })); + while (true) { + const _258: string | rt.Done = iter.next(); + if (_258 === rt.DONE) { + break; + } + const part: string = _258; + const args22: rt.Fmt[] = [(f: rt.Formatter) => rt.fmtPad(f, part)]; + Log.note(log, rt.fmtFormat(["part ", args22[0]])); + if (part === "c") { + break; + } + } + rt.drop(iter); + const f2: Guard.Guard = guard(6); + const captured16 = (c15: rt.char): boolean => { + if (!(c15 === 44)) { + return c15 === 59; + } + return true; + }; + const captured17 = f2; + const terminated: rt.Iter = rt.strRsplitTerminator(text, rt.closure((c16: rt.char): boolean => { + if (!captured16(c16)) { + return false; + } + return Guard.id(captured17) > 0; + }, (): void => { + captured17[Symbol.dispose](); + })); + const part5 = rt.iterNth(terminated, 1); + const args24: rt.Fmt[] = [(f: rt.Formatter) => rt.fmtOption(part5, f, rt.fmtStr)]; + Log.note(log, rt.fmtFormat(["rsplit_terminator ", args24[0]])); + rt.drop(terminated); + const g2: Guard.Guard = guard(7); + const captured18 = (c17: rt.char): boolean => { + if (!(c17 === 44)) { + return c17 === 59; + } + return true; + }; + const captured19 = g2; + const part6 = rt.iterToArray(rt.iterMap(rt.iterRev(rt.strSplitInclusive(text, rt.closure((c18: rt.char): boolean => { + if (!captured18(c18)) { + return false; + } + return Guard.id(captured19) > 0; + }, (): void => { + captured19[Symbol.dispose](); + }))), (s2: string): string => { + return rt.strTrimEndMatches(s2, ","); + }), "next", 8); + const args26: rt.Fmt[] = [(f: rt.Formatter) => rt.fmtList(part6, f, rt.fmtStr)]; + Log.note(log, rt.fmtFormat(["split_inclusive ", args26[0]])); + const _314: [Guard.Guard, Guard.Guard] = [guard(8), guard(9)]; + const h2: Guard.Guard = _314[0]; + const i2: Guard.Guard = _314[1]; + const captured20 = (c19: rt.char): boolean => { + if (!(c19 === 44)) { + return c19 === 59; + } + return true; + }; + const captured21 = h2; + const matched: rt.Iter = rt.strMatches(text, rt.closure((c20: rt.char): boolean => { + if (!captured20(c20)) { + return false; + } + return Guard.id(captured21) > 0; + }, (): void => { + captured21[Symbol.dispose](); + })); + const captured22 = (c21: rt.char): boolean => { + if (!(c21 === 44)) { + return c21 === 59; + } + return true; + }; + const captured23 = i2; + const _325: rt.Iter = rt.strRmatches(text, rt.closure((c22: rt.char): boolean => { + if (!captured22(c22)) { + return false; + } + return Guard.id(captured23) > 0; + }, (): void => { + captured23[Symbol.dispose](); + })); + const last: string | undefined = rt.iterToOption(_325.next()); + rt.drop(_325); + const _333: string | undefined = rt.iterToOption(matched.next()); + const args28: rt.Fmt[] = [(f: rt.Formatter) => rt.fmtOption(_333, f, rt.fmtStr), (f: rt.Formatter) => rt.fmtOption(last, f, rt.fmtStr)]; + Log.note(log, rt.fmtFormat(["matches ", args28[0], " ", args28[1]])); + rt.drop(matched); + const _345: [Guard.Guard, Guard.Guard] = [guard(10), guard(11)]; + const j2: Guard.Guard = _345[0]; + const k2: Guard.Guard = _345[1]; + const captured24 = (c23: rt.char): boolean => { + if (!(c23 === 44)) { + return c23 === 59; + } + return true; + }; + const captured25 = j2; + const _355: rt.Iter<[rt.usize, string]> = rt.strMatchIndices(text, rt.closure((c24: rt.char): boolean => { + if (!captured24(c24)) { + return false; + } + return Guard.id(captured25) > 0; + }, (): void => { + captured25[Symbol.dispose](); + })); + const _353: [rt.usize, string] | undefined = rt.iterNth(_355, 2); + const captured26 = (c25: rt.char): boolean => { + if (!(c25 === 44)) { + return c25 === 59; + } + return true; + }; + const captured27 = k2; + const _359: rt.Iter<[rt.usize, string]> = rt.strRmatchIndices(text, rt.closure((c26: rt.char): boolean => { + if (!captured26(c26)) { + return false; + } + return Guard.id(captured27) > 0; + }, (): void => { + captured27[Symbol.dispose](); + })); + const indices: [[rt.usize, string] | undefined, [rt.usize, string] | undefined] = [_353, rt.iterToOption(_359.next())]; + rt.drop(_359); + rt.drop(_355); + const args30: rt.Fmt[] = [(f: rt.Formatter) => rt.fmtTuple([(f: rt.Formatter) => rt.fmtOption(indices[0], f, (value: [rt.usize, string], f: rt.Formatter) => rt.fmtTuple([(f: rt.Formatter) => rt.usizeDebug(value[0], f), (f: rt.Formatter) => rt.fmtStr(value[1], f)], f)), (f: rt.Formatter) => rt.fmtOption(indices[1], f, (value: [rt.usize, string], f: rt.Formatter) => rt.fmtTuple([(f: rt.Formatter) => rt.usizeDebug(value[0], f), (f: rt.Formatter) => rt.fmtStr(value[1], f)], f))], f)]; + Log.note(log, rt.fmtFormat(["indices ", args30[0]])); + } else { + const a3: Guard.Guard = guard(1); + let s: string = text; + const captured = a3; + const captured2 = (c4: rt.char): boolean => { + if (!(c4 === 44)) { + return c4 === 59; + } + return true; + }; + const _377: (a0: rt.char) => boolean = rt.closure((c5: rt.char): boolean => { + const args40: rt.Fmt[] = [(f: rt.Formatter) => rt.fmtCharDisplay(c5, f)]; + Guard.note(captured, rt.fmtFormat(["retain ", args40[0]])); + return !captured2(c5); + }, (): void => { + captured[Symbol.dispose](); + }); + s = rt.stringRetain(s, _377); + rt.drop(_377); + const args32: rt.Fmt[] = [(f: rt.Formatter) => rt.fmtPad(f, s)]; + Log.note(log, rt.fmtFormat(["retained ", args32[0]])); + const b3: Guard.Guard = guard(2); + let captured3: rt.i32 = 0; + const captured4 = b3; + const everyOther: (a0: rt.char) => boolean = rt.closure((_2: rt.char): boolean => { + captured3 = rt.i32Add(captured3, 1); + if (!(rt.i32Rem(captured3, 2) === 0)) { + return Guard.id(captured4) === 0; + } + return true; + }, (): void => { + captured4[Symbol.dispose](); + }); + s = rt.stringRetain(s, everyOther); + const args34: rt.Fmt[] = [(f: rt.Formatter) => rt.fmtPad(f, s)]; + Log.note(log, rt.fmtFormat(["every other ", args34[0]])); + s = rt.stringRetain(s, everyOther); + const args36: rt.Fmt[] = [(f: rt.Formatter) => rt.fmtPad(f, s)]; + Log.note(log, rt.fmtFormat(["every other ", args36[0]])); + rt.drop(everyOther); + const c3: Guard.Guard = guard(3); + let empty: string = ""; + const captured5 = c3; + const _426: (a0: rt.char) => boolean = rt.closure((_23: rt.char): boolean => { + return Guard.id(captured5) > 0; + }, (): void => { + captured5[Symbol.dispose](); + }); + empty = rt.stringRetain(empty, _426); + rt.drop(_426); + const args38: rt.Fmt[] = [(f: rt.Formatter) => rt.fmtStr(empty, f)]; + Log.note(log, rt.fmtFormat(["empty ", args38[0]])); + } +} + +//# sourceMappingURL=searched.ts.map diff --git a/ts/fixtures/task/src/drops.rs b/ts/fixtures/task/src/drops.rs index e39261a14..8022505eb 100644 --- a/ts/fixtures/task/src/drops.rs +++ b/ts/fixtures/task/src/drops.rs @@ -32,6 +32,7 @@ mod lists; mod objects; mod once; mod released; +mod searched; /// A value of a type that drops, with no `[Symbol.dispose]` of its own. pub enum Held { @@ -754,6 +755,11 @@ pub fn released(log: &Log, id: u32, arg: u8) { released::released(log, id, arg); } +/// Run scenario `arg % 3` of where std drops a closure given to a string's search or edit. +pub fn searched(log: &Log, id: u32, arg: u8) { + searched::searched(log, id, arg); +} + /// Run scenario `arg % 9` of what std's comparisons of iterators drop. pub fn compared(log: &Log, id: u32, arg: u8) { iters::compared(log, id, arg); diff --git a/ts/fixtures/task/src/drops/searched.rs b/ts/fixtures/task/src/drops/searched.rs new file mode 100644 index 000000000..5f6857680 --- /dev/null +++ b/ts/fixtures/task/src/drops/searched.rs @@ -0,0 +1,132 @@ +//! Where std drops a closure that owns a guard given to a string's search or edit: as a +//! search that returns a value returns, with the iterator a search returns, and as +//! `String::retain` returns, after the edit. One `retain` borrows drops with its owner. + +use crate::log::Log; +use crate::model::Guard; + +/// Run scenario `arg % 3`. +pub(super) fn searched(log: &Log, id: u32, arg: u8) { + let guard = |n: u32| Guard::new(id + n, log.clone()); + let text = "a,b;c,,d"; + let sep = |c: char| c == ',' || c == ';'; + match arg % 3 { + 0 => { + // Each drops its closure before the call returns, matched or not. + let a = guard(1); + let found = text.contains(move |c: char| c == ';' && a.id() > 0); + let b = guard(2); + let missing = text.contains(move |c: char| c == 'z' && b.id() > 0); + log.note(format!("contains {found} {missing}")); + let (c, d) = (guard(3), guard(4)); + let finds = ( + text.find(move |c| sep(c) && d.id() > 0), + text.rfind(move |ch| sep(ch) && c.id() > 0), + ); + log.note(format!("find {finds:?}")); + let (e, f) = (guard(5), guard(6)); + let ends = ( + text.starts_with(move |c: char| c == 'a' && e.id() > 0), + text.ends_with(move |c: char| sep(c) && f.id() > 0), + ); + log.note(format!("ends {ends:?}")); + let (g, h) = (guard(7), guard(8)); + let stripped = ( + text.strip_prefix(move |c: char| c == 'a' && g.id() > 0), + text.strip_suffix(move |c: char| c == 'a' && h.id() > 0), + ); + log.note(format!("strip {stripped:?}")); + let (i, j) = (guard(9), guard(10)); + let once = ( + text.split_once(move |c| sep(c) && i.id() > 0), + text.rsplit_once(move |c| sep(c) && j.id() > 0), + ); + log.note(format!("once {once:?}")); + let (k, l, m) = (guard(11), guard(12), guard(13)); + let trimmed = ( + ",a,".trim_matches(move |c| c == ',' && k.id() > 0), + ",a,".trim_start_matches(move |c| c == ',' && l.id() > 0), + ",a,".trim_end_matches(move |c| c == ',' && m.id() > 0), + ); + log.note(format!("trim {trimmed:?}")); + let (n, o) = (guard(14), guard(15)); + let replaced = ( + text.replace(move |c| sep(c) && n.id() > 0, "+"), + text.replacen(move |c| sep(c) && o.id() > 0, "+", 2), + ); + log.note(format!("replace {replaced:?}")); + } + 1 => { + // The iterator holds its closure: dropped with it, partly read or ended. + let a = guard(1); + let mut split = text.split(move |c| sep(c) && a.id() > 0); + log.note(format!("split {:?} {:?}", split.next(), split.next_back())); + drop(split); + let b = guard(2); + let rsplit: Vec<&str> = text.rsplit(move |c| sep(c) && b.id() > 0).collect(); + log.note(format!("rsplit {rsplit:?}")); + let (c, d) = (guard(3), guard(4)); + let counts = ( + text.splitn(2, move |c| sep(c) && d.id() > 0).count(), + text.rsplitn(3, move |ch| sep(ch) && c.id() > 0).last(), + ); + log.note(format!("splitn {counts:?}")); + let e = guard(5); + for part in text.split_terminator(move |c| sep(c) && e.id() > 0) { + log.note(format!("part {part}")); + if part == "c" { + break; + } + } + let f = guard(6); + let mut terminated = text.rsplit_terminator(move |c| sep(c) && f.id() > 0); + log.note(format!("rsplit_terminator {:?}", terminated.nth(1))); + drop(terminated); + let g = guard(7); + let inclusive: Vec<&str> = text + .split_inclusive(move |c| sep(c) && g.id() > 0) + .rev() + .map(|s| s.trim_end_matches(',')) + .collect(); + log.note(format!("split_inclusive {inclusive:?}")); + let (h, i) = (guard(8), guard(9)); + let mut matched = text.matches(move |c| sep(c) && h.id() > 0); + let last = text.rmatches(move |c| sep(c) && i.id() > 0).next(); + log.note(format!("matches {:?} {last:?}", matched.next())); + drop(matched); + let (j, k) = (guard(10), guard(11)); + let indices = ( + text.match_indices(move |c| sep(c) && j.id() > 0).nth(2), + text.rmatch_indices(move |c| sep(c) && k.id() > 0).next(), + ); + log.note(format!("indices {indices:?}")); + } + _ => { + // It drops after the edit, as `retain` returns. + let a = guard(1); + let mut s = String::from(text); + s.retain(move |c| { + a.note(&format!("retain {c}")); + !sep(c) + }); + log.note(format!("retained {s}")); + // Lent, it drops with its owner, whatever it changed. + let b = guard(2); + let mut kept = 0; + let mut every_other = move |_: char| { + kept += 1; + kept % 2 == 0 || b.id() == 0 + }; + s.retain(&mut every_other); + log.note(format!("every other {s}")); + s.retain(&mut every_other); + log.note(format!("every other {s}")); + drop(every_other); + // An empty string never calls it, and still drops it. + let c = guard(3); + let mut empty = String::new(); + empty.retain(move |_| c.id() > 0); + log.note(format!("empty {empty:?}")); + } + } +} diff --git a/ts/fixtures/task/src/harness.rs b/ts/fixtures/task/src/harness.rs index b1bd329b6..3847273fc 100644 --- a/ts/fixtures/task/src/harness.rs +++ b/ts/fixtures/task/src/harness.rs @@ -174,6 +174,9 @@ fn steps() -> Vec<(&'static str, Step)> { exec.spawn(closures::closures(channels[c].consumer(), guard)); } }), + ("searched", |log, exec, _, arg| { + drops::searched(log, 1000 * exec.len() as u32, arg) + }), ] } diff --git a/ts/fixtures/task/ts.toml b/ts/fixtures/task/ts.toml index ce19dd465..562608a72 100644 --- a/ts/fixtures/task/ts.toml +++ b/ts/fixtures/task/ts.toml @@ -23,6 +23,7 @@ roots = [ "drops::released", "drops::compared", "drops::lists", + "drops::searched", "futures::helpers", "futures::boxed", "futures::wakers", diff --git a/ts/runtime/rt/str.ts b/ts/runtime/rt/str.ts index 8adee06b7..41a0b7e5c 100644 --- a/ts/runtime/rt/str.ts +++ b/ts/runtime/rt/str.ts @@ -275,11 +275,13 @@ class CharIndices extends Iter<[usize, char]> { /** * std's searcher of a pattern in `s` between `front` and `back`, in code units. Each step * finds the next match from one end, `start` to `end`, and moves that end past it. A - * `&str` pattern searches from one end only, as std's can. + * `&str` pattern searches from one end only, as std's can. It drops its pattern once, as + * what holds it may drop it before dropping that. */ -class Searcher { +class Searcher implements Disposable { readonly s: string; readonly #p: Pattern; + #dropped = false; #front = 0; #back: number; // An empty pattern matches before each char and after the last, as std's does, from @@ -376,6 +378,12 @@ class Searcher { } return false; } + + [Symbol.dispose](): void { + if (this.#dropped) return; + this.#dropped = true; + dispose(this.#p); + } } /** `str::split`. */ @@ -434,7 +442,7 @@ export function charIsWhitespace(c: char): boolean { } /** std's `SplitInternal`, and with a count, `SplitNInternal`. */ -class Split extends Iter { +class Split extends Iter implements Disposable { readonly #m: Searcher; #start = 0; #end: number; @@ -505,6 +513,10 @@ class Split extends Iter { this.#finished = true; return this.#trailing || this.#start < this.#end ? this.#m.s.slice(this.#start, this.#end) : DONE; } + + [Symbol.dispose](): void { + dispose(this.#m); + } } /** `str::matches`. */ @@ -517,7 +529,7 @@ export function strRmatches(s: string, p: Pattern): Iter { return iterRev(strMatches(s, p)); } -class Matches extends Iter { +class Matches extends Iter implements Disposable { readonly #m: Searcher; constructor(m: Searcher) { @@ -538,6 +550,10 @@ class Matches extends Iter { const m = this.#m; return m.nextMatchBack() ? m.s.slice(m.start, m.end) : DONE; } + + [Symbol.dispose](): void { + dispose(this.#m); + } } /** `str::match_indices`: each match, after its offset in UTF-8 bytes. */ @@ -550,7 +566,7 @@ export function strRmatchIndices(s: string, p: Pattern): Iter<[usize, string]> { return iterRev(strMatchIndices(s, p)); } -class MatchIndices extends Iter<[usize, string]> { +class MatchIndices extends Iter<[usize, string]> implements Disposable { readonly #m: Searcher; // Where the last match from each end starts, in code units and in bytes. The back's // bytes are counted once it first moves. @@ -592,6 +608,10 @@ class MatchIndices extends Iter<[usize, string]> { this.#back = m.start; return [this.#backBytes as usize, m.s.slice(m.start, m.end)]; } + + [Symbol.dispose](): void { + dispose(this.#m); + } } /** `str::contains`. */ diff --git a/ts/src/lower/drop.rs b/ts/src/lower/drop.rs index 115e296ce..21c49214f 100644 --- a/ts/src/lower/drop.rs +++ b/ts/src/lower/drop.rs @@ -91,6 +91,9 @@ impl<'a, 'tcx> Translator<'a, 'tcx> { None | Some(Std::Peekable) if self.std_iter(ty) => match adt.has_dtor(tcx) { // What owns its items, an `IntoIter` or a `Drain`, drops those it still holds. true => args.types().any(|t| self.drops(t)), + // A `str` search's holds its pattern inside std's searcher, which no `rt.Iter` + // stands for. + false if super::iter::holds_closure(tcx, adt.did()) => args.types().any(|t| self.drops(t)), false => self.fields_drop(*adt, args, true), }, Some(_) => false, diff --git a/ts/src/lower/iter.rs b/ts/src/lower/iter.rs index dd880e9c9..4efad521e 100644 --- a/ts/src/lower/iter.rs +++ b/ts/src/lower/iter.rs @@ -1250,6 +1250,21 @@ pub(super) fn holds_closure(tcx: ty::TyCtxt<'_>, did: DefId) -> bool { | ["iter", "sources", "from_fn", "FromFn"] | ["iter", "sources", "successors", "Successors"] | ["collections", "linked_list", "ExtractIf"] + | [ + "str", + "iter", + "Split" + | "RSplit" + | "SplitTerminator" + | "RSplitTerminator" + | "SplitN" + | "RSplitN" + | "SplitInclusive" + | "Matches" + | "RMatches" + | "MatchIndices" + | "RMatchIndices" + ] | [ "slice", "iter", diff --git a/ts/src/lower/library.rs b/ts/src/lower/library.rs index 32ef9aeee..f81938327 100644 --- a/ts/src/lower/library.rs +++ b/ts/src/lower/library.rs @@ -1211,12 +1211,16 @@ fn called_closures<'tcx>( /// The trait `def_id` calls its parameter of type `input` by: `Fn`, then `FnMut`, /// whichever it is bound by, or else `FnOnce`, or `None` if no function trait bounds it. +/// A `str` search's `Pattern` calls a closure by `FnMut`. fn called_by<'tcx>(tcx: TyCtxt<'tcx>, def_id: DefId, input: Ty<'tcx>) -> Option { tcx.param_env(def_id) .caller_bounds() .filter_map(|p| p.as_trait_clause()) .filter(|t| t.self_ty().skip_binder() == input) - .filter_map(|t| tcx.fn_trait_kind_from_def_id(t.def_id())) + .filter_map(|t| match std_path(tcx, t.def_id()).as_slice() { + [s, p, t] if s == "str" && p == "pattern" && t == "Pattern" => Some(ty::ClosureKind::FnMut), + _ => tcx.fn_trait_kind_from_def_id(t.def_id()), + }) .min_by_key(|kind| match kind { ty::ClosureKind::Fn => 0, ty::ClosureKind::FnMut => 1, diff --git a/ts/src/lower/mir/call.rs b/ts/src/lower/mir/call.rs index 33ca98707..c20754836 100644 --- a/ts/src/lower/mir/call.rs +++ b/ts/src/lower/mir/call.rs @@ -658,16 +658,6 @@ impl<'m, 'b, 'a, 'tcx> Fx<'m, 'b, 'a, 'tcx> { done(Expr::rt("stringReserve", values), true) } ("String", "shrink_to_fit" | "shrink_to") => done(Expr::undefined(), false), - ("String", "retain") if targ(0).is_some_and(|f| self.b.t.drops(f)) => { - let f = targ(0)?; - done( - self.err( - span, - format!("passing `{f}`, which drops, to `String::{name}`, which is not supported yet"), - ), - false, - ) - } // The edited string, from the runtime with what it takes after the string. ( "String", @@ -681,9 +671,17 @@ impl<'m, 'b, 'a, 'tcx> Fx<'m, 'b, 'a, 'tcx> { let c = values.pop()?; values.push(library::char_text(c)); } + // `retain` drops a closure it owns as it returns, after the edit. + let mut spent = None; if name == "retain" { let f = std::mem::replace(&mut values[1], Expr::undefined()); - values[1] = library::called_through(self.b.t, targ(0)?, Some(f)).2?; + let (owned, lent, f) = library::called_through(self.b.t, targ(0)?, Some(f)); + let mut f = f?; + if !lent && self.b.t.drops(owned) { + f = self.path(f, "f", out); + spent = self.b.t.drop_value(f.clone(), owned, span); + } + values[1] = f; } // A range std reads the bounds of, as `bounds` makes any `RangeBounds` one. if matches!(name.as_str(), "replace_range" | "extend_from_within") { @@ -705,6 +703,7 @@ impl<'m, 'b, 'a, 'tcx> Fx<'m, 'b, 'a, 'tcx> { _ => Expr::rt("stringExtendFromWithin", values), }; self.set_borrowed(&place, edited, span, out); + out.extend(spent.map(|drop| StmtKind::Expr(drop).at(None))); done(Expr::undefined(), false) } // The runtime gives the edited string and what the edit returns. diff --git a/ts/tests/task.ts b/ts/tests/task.ts index dbaa82c20..941565ed5 100644 --- a/ts/tests/task.ts +++ b/ts/tests/task.ts @@ -63,6 +63,7 @@ export interface Fixture { indexed(log: Log, id: number, arg: number): void; compared(log: Log, id: number, arg: number): void; lists(log: Log, id: number, arg: number): void; + searched(log: Log, id: number, arg: number): void; }; futures: { helpers(rx: Consumer, guard: Guard): Future; @@ -344,6 +345,7 @@ export const steps: [string, (r: Run, arg: number) => void][] = [ if (c !== undefined) r.exec.spawn(r.f.closures.closures(r.f.Channel.consumer(r.channels[c]), guard(r))); }, ], + ["searched", (r, arg) => r.f.drops.searched(r.log, 1000 * r.exec.tasks.length, arg)], ]; /** The script runner, as `harness.rs` runs it natively. */ @@ -442,6 +444,8 @@ export const cases: Uint8Array[] = [ ...Array.from({ length: 9 }, (_, arg) => script(["compared", arg])), // What a `LinkedList` drops, and when. ...Array.from({ length: 8 }, (_, arg) => script(["lists", arg])), + // Where std drops a closure given to a string's search or edit. + ...Array.from({ length: 3 }, (_, arg) => script(["searched", arg])), // Wakers' identities, as kio's `Polling` keeps one: a task's own across its polls, then // another task's in between. script(["open", 0], ["wakers", 0], ["run", 0], ["send", 3], ["run", 0], ["close", 0], ["run", 0]),