[INFO] fetching crate xskiplist 0.1.0...
[INFO] testing xskiplist-0.1.0 against 1.99.0-beta.8 for beta-1.100-2
[INFO] extracting crate xskiplist 0.1.0 into /workspace/builds/worker-0-tc1/source
[INFO] started tweaking crates.io crate xskiplist 0.1.0
[INFO] finished tweaking crates.io crate xskiplist 0.1.0
[INFO] tweaked toml for crates.io crate xskiplist 0.1.0 written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate xskiplist 0.1.0 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 79 packages to highest compatible versions
[INFO] [stderr]       Adding criterion v0.3.6 (available: v0.8.2)
[INFO] [stderr]       Adding rand v0.9.5 (available: v0.10.3)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 01267cf3f82ac794adbe8c59b437ba14f73bb6ec6ba70c64026c7a9bfa22e727
[INFO] running `Command { std: "docker" "start" "01267cf3f82ac794adbe8c59b437ba14f73bb6ec6ba70c64026c7a9bfa22e727", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "01267cf3f82ac794adbe8c59b437ba14f73bb6ec6ba70c64026c7a9bfa22e727", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "01267cf3f82ac794adbe8c59b437ba14f73bb6ec6ba70c64026c7a9bfa22e727" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "01267cf3f82ac794adbe8c59b437ba14f73bb6ec6ba70c64026c7a9bfa22e727", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "01267cf3f82ac794adbe8c59b437ba14f73bb6ec6ba70c64026c7a9bfa22e727" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.190
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.5
[INFO] [stderr]    Compiling xskiplist v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]   --> src/level_generator.rs:71:32
[INFO] [stdout]    |
[INFO] [stdout] 71 |         let f = 1.0 - self.rng.gen::<f64>();
[INFO] [stdout]    |                                ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AsPtrMut` is never used
[INFO] [stdout]    --> src/skipnode.rs:904:7
[INFO] [stdout]     |
[INFO] [stdout] 904 | trait AsPtrMut<T> {
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ordered_skiplist.rs:603:17
[INFO] [stdout]     |
[INFO] [stdout] 603 |     pub fn iter(&self) -> Iter<T> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 603 |     pub fn iter(&self) -> Iter<'_, T> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ordered_skiplist.rs:627:18
[INFO] [stdout]     |
[INFO] [stdout] 627 |     pub fn range(&self, min: Bound<&T>, max: Bound<&T>) -> Iter<T> {
[INFO] [stdout]     |                  ^^^^^ the lifetime is elided here         ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 627 |     pub fn range(&self, min: Bound<&T>, max: Bound<&T>) -> Iter<'_, T> {
[INFO] [stdout]     |                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ordered_skiplist.rs:636:15
[INFO] [stdout]     |
[INFO] [stdout] 636 |     fn _range(&self, min: Bound<&T>, max: Bound<&T>) -> Option<Iter<T>> {
[INFO] [stdout]     |               ^^^^^ the lifetime is elided here                ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 636 |     fn _range(&self, min: Bound<&T>, max: Bound<&T>) -> Option<Iter<'_, T>> {
[INFO] [stdout]     |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/ordered_skiplist.rs:994:61
[INFO] [stdout]     |
[INFO] [stdout] 994 |                 let max_str_len = format!("{} -{}-", value, (*node).links_len[(*node).level]).len();
[INFO] [stdout]     |                                                             ^^----^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                               |
[INFO] [stdout]     |                                                               this raw pointer has type `*const skipnode::SkipNode<T>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<usize>`
[INFO] [stdout]    --> src/ordered_skiplist.rs:994:61
[INFO] [stdout]     |
[INFO] [stdout] 994 |                 let max_str_len = format!("{} -{}-", value, (*node).links_len[(*node).level]).len();
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(dangerous_implicit_autorefs)]` on by default
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 994 |                 let max_str_len = format!("{} -{}-", value, (&(*node).links_len)[(*node).level]).len();
[INFO] [stdout]     |                                                             ++                 +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/ordered_skiplist.rs:1001:51
[INFO] [stdout]      |
[INFO] [stdout] 1001 |                         format!("{} -{}-", value, (*node).links_len[lvl])
[INFO] [stdout]      |                                                   ^^----^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                                     |
[INFO] [stdout]      |                                                     this raw pointer has type `*const skipnode::SkipNode<T>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<usize>`
[INFO] [stdout]     --> src/ordered_skiplist.rs:1001:51
[INFO] [stdout]      |
[INFO] [stdout] 1001 |                         format!("{} -{}-", value, (*node).links_len[lvl])
[INFO] [stdout]      |                                                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 1001 |                         format!("{} -{}-", value, (&(*node).links_len)[lvl])
[INFO] [stdout]      |                                                   ++                 +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/ordered_skiplist.rs:1021:37
[INFO] [stdout]      |
[INFO] [stdout] 1021 |                 if let Some(next) = (*node).links[0].and_then(|p| p.as_ptr().as_ref()) {
[INFO] [stdout]      |                                     ^^----^^^^^^^^^^
[INFO] [stdout]      |                                       |
[INFO] [stdout]      |                                       this raw pointer has type `*const skipnode::SkipNode<T>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<Option<NonNull<skipnode::SkipNode<T>>>>`
[INFO] [stdout]     --> src/ordered_skiplist.rs:1021:37
[INFO] [stdout]      |
[INFO] [stdout] 1021 |                 if let Some(next) = (*node).links[0].and_then(|p| p.as_ptr().as_ref()) {
[INFO] [stdout]      |                                     ^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 1021 |                 if let Some(next) = (&(*node).links)[0].and_then(|p| p.as_ptr().as_ref()) {
[INFO] [stdout]      |                                     ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skiplist.rs:458:17
[INFO] [stdout]     |
[INFO] [stdout] 458 |     pub fn iter(&self) -> Iter<T> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 458 |     pub fn iter(&self) -> Iter<'_, T> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skiplist.rs:475:21
[INFO] [stdout]     |
[INFO] [stdout] 475 |     pub fn iter_mut(&mut self) -> IterMut<T> {
[INFO] [stdout]     |                     ^^^^^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 475 |     pub fn iter_mut(&mut self) -> IterMut<'_, T> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skiplist.rs:499:18
[INFO] [stdout]     |
[INFO] [stdout] 499 |     pub fn range(&self, min: Bound<usize>, max: Bound<usize>) -> Iter<T> {
[INFO] [stdout]     |                  ^^^^^ the lifetime is elided here               ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 499 |     pub fn range(&self, min: Bound<usize>, max: Bound<usize>) -> Iter<'_, T> {
[INFO] [stdout]     |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skiplist.rs:524:22
[INFO] [stdout]     |
[INFO] [stdout] 524 |     pub fn range_mut(&mut self, min: Bound<usize>, max: Bound<usize>) -> IterMut<T> {
[INFO] [stdout]     |                      ^^^^^^^^^ the lifetime is elided here               ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 524 |     pub fn range_mut(&mut self, min: Bound<usize>, max: Bound<usize>) -> IterMut<'_, T> {
[INFO] [stdout]     |                                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skiplist.rs:654:19
[INFO] [stdout]     |
[INFO] [stdout] 654 |     fn iter_range(&self, first_idx: usize, last_idx: usize) -> Iter<T> {
[INFO] [stdout]     |                   ^^^^^ the lifetime is elided here            ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 654 |     fn iter_range(&self, first_idx: usize, last_idx: usize) -> Iter<'_, T> {
[INFO] [stdout]     |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skiplist.rs:680:23
[INFO] [stdout]     |
[INFO] [stdout] 680 |     fn iter_range_mut(&mut self, first_idx: usize, last_idx: usize) -> IterMut<T> {
[INFO] [stdout]     |                       ^^^^^^^^^ the lifetime is elided here            ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 680 |     fn iter_range_mut(&mut self, first_idx: usize, last_idx: usize) -> IterMut<'_, T> {
[INFO] [stdout]     |                                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skipmap.rs:486:17
[INFO] [stdout]     |
[INFO] [stdout] 486 |     pub fn iter(&self) -> Iter<K, V> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 486 |     pub fn iter(&self) -> Iter<'_, K, V> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skipmap.rs:506:21
[INFO] [stdout]     |
[INFO] [stdout] 506 |     pub fn iter_mut(&mut self) -> IterMut<K, V> {
[INFO] [stdout]     |                     ^^^^^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 506 |     pub fn iter_mut(&mut self) -> IterMut<'_, K, V> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skipmap.rs:524:17
[INFO] [stdout]     |
[INFO] [stdout] 524 |     pub fn keys(&self) -> Keys<K, V> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 524 |     pub fn keys(&self) -> Keys<'_, K, V> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skipmap.rs:541:19
[INFO] [stdout]     |
[INFO] [stdout] 541 |     pub fn values(&self) -> Values<K, V> {
[INFO] [stdout]     |                   ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 541 |     pub fn values(&self) -> Values<'_, K, V> {
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skipmap.rs:564:21
[INFO] [stdout]     |
[INFO] [stdout] 564 |     pub fn range<Q>(&self, min: Bound<&Q>, max: Bound<&Q>) -> Iter<K, V>
[INFO] [stdout]     |                     ^^^^^ the lifetime is elided here         ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 564 |     pub fn range<Q>(&self, min: Bound<&Q>, max: Bound<&Q>) -> Iter<'_, K, V>
[INFO] [stdout]     |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skipmap.rs:577:18
[INFO] [stdout]     |
[INFO] [stdout] 577 |     fn _range<Q>(&self, min: Bound<&Q>, max: Bound<&Q>) -> Option<skipnode::Iter<(K, V)>>
[INFO] [stdout]     |                  ^^^^^ the lifetime is elided here                ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 577 |     fn _range<Q>(&self, min: Bound<&Q>, max: Bound<&Q>) -> Option<skipnode::Iter<'_, (K, V)>>
[INFO] [stdout]     |                                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/skipmap.rs:772:61
[INFO] [stdout]     |
[INFO] [stdout] 772 |                 let max_str_len = format!("{} -{}-", value, (*node).links_len[(*node).level]).len();
[INFO] [stdout]     |                                                             ^^----^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                               |
[INFO] [stdout]     |                                                               this raw pointer has type `*const skipnode::SkipNode<(K, V)>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<usize>`
[INFO] [stdout]    --> src/skipmap.rs:772:61
[INFO] [stdout]     |
[INFO] [stdout] 772 |                 let max_str_len = format!("{} -{}-", value, (*node).links_len[(*node).level]).len();
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 772 |                 let max_str_len = format!("{} -{}-", value, (&(*node).links_len)[(*node).level]).len();
[INFO] [stdout]     |                                                             ++                 +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/skipmap.rs:779:51
[INFO] [stdout]     |
[INFO] [stdout] 779 |                         format!("{} -{}-", value, (*node).links_len[lvl])
[INFO] [stdout]     |                                                   ^^----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                     |
[INFO] [stdout]     |                                                     this raw pointer has type `*const skipnode::SkipNode<(K, V)>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<usize>`
[INFO] [stdout]    --> src/skipmap.rs:779:51
[INFO] [stdout]     |
[INFO] [stdout] 779 |                         format!("{} -{}-", value, (*node).links_len[lvl])
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 779 |                         format!("{} -{}-", value, (&(*node).links_len)[lvl])
[INFO] [stdout]     |                                                   ++                 +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/skipmap.rs:799:37
[INFO] [stdout]     |
[INFO] [stdout] 799 |                 if let Some(next) = (*node).links[0].and_then(|p| p.as_ptr().as_ref()) {
[INFO] [stdout]     |                                     ^^----^^^^^^^^^^
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       this raw pointer has type `*const skipnode::SkipNode<(K, V)>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<Option<NonNull<skipnode::SkipNode<(K, V)>>>>`
[INFO] [stdout]    --> src/skipmap.rs:799:37
[INFO] [stdout]     |
[INFO] [stdout] 799 |                 if let Some(next) = (*node).links[0].and_then(|p| p.as_ptr().as_ref()) {
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 799 |                 if let Some(next) = (&(*node).links)[0].and_then(|p| p.as_ptr().as_ref()) {
[INFO] [stdout]     |                                     ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.60s
[INFO] running `Command { std: "docker" "inspect" "01267cf3f82ac794adbe8c59b437ba14f73bb6ec6ba70c64026c7a9bfa22e727", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "01267cf3f82ac794adbe8c59b437ba14f73bb6ec6ba70c64026c7a9bfa22e727" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling either v1.19.0
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling csv-core v0.1.13
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]   --> src/level_generator.rs:71:32
[INFO] [stdout]    |
[INFO] [stdout] 71 |         let f = 1.0 - self.rng.gen::<f64>();
[INFO] [stdout]    |                                ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AsPtrMut` is never used
[INFO] [stdout]    --> src/skipnode.rs:904:7
[INFO] [stdout]     |
[INFO] [stdout] 904 | trait AsPtrMut<T> {
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ordered_skiplist.rs:603:17
[INFO] [stdout]     |
[INFO] [stdout] 603 |     pub fn iter(&self) -> Iter<T> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 603 |     pub fn iter(&self) -> Iter<'_, T> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ordered_skiplist.rs:627:18
[INFO] [stdout]     |
[INFO] [stdout] 627 |     pub fn range(&self, min: Bound<&T>, max: Bound<&T>) -> Iter<T> {
[INFO] [stdout]     |                  ^^^^^ the lifetime is elided here         ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 627 |     pub fn range(&self, min: Bound<&T>, max: Bound<&T>) -> Iter<'_, T> {
[INFO] [stdout]     |                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ordered_skiplist.rs:636:15
[INFO] [stdout]     |
[INFO] [stdout] 636 |     fn _range(&self, min: Bound<&T>, max: Bound<&T>) -> Option<Iter<T>> {
[INFO] [stdout]     |               ^^^^^ the lifetime is elided here                ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 636 |     fn _range(&self, min: Bound<&T>, max: Bound<&T>) -> Option<Iter<'_, T>> {
[INFO] [stdout]     |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/ordered_skiplist.rs:994:61
[INFO] [stdout]     |
[INFO] [stdout] 994 |                 let max_str_len = format!("{} -{}-", value, (*node).links_len[(*node).level]).len();
[INFO] [stdout]     |                                                             ^^----^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                               |
[INFO] [stdout]     |                                                               this raw pointer has type `*const skipnode::SkipNode<T>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<usize>`
[INFO] [stdout]    --> src/ordered_skiplist.rs:994:61
[INFO] [stdout]     |
[INFO] [stdout] 994 |                 let max_str_len = format!("{} -{}-", value, (*node).links_len[(*node).level]).len();
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(dangerous_implicit_autorefs)]` on by default
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 994 |                 let max_str_len = format!("{} -{}-", value, (&(*node).links_len)[(*node).level]).len();
[INFO] [stdout]     |                                                             ++                 +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/ordered_skiplist.rs:1001:51
[INFO] [stdout]      |
[INFO] [stdout] 1001 |                         format!("{} -{}-", value, (*node).links_len[lvl])
[INFO] [stdout]      |                                                   ^^----^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                                     |
[INFO] [stdout]      |                                                     this raw pointer has type `*const skipnode::SkipNode<T>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<usize>`
[INFO] [stdout]     --> src/ordered_skiplist.rs:1001:51
[INFO] [stdout]      |
[INFO] [stdout] 1001 |                         format!("{} -{}-", value, (*node).links_len[lvl])
[INFO] [stdout]      |                                                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 1001 |                         format!("{} -{}-", value, (&(*node).links_len)[lvl])
[INFO] [stdout]      |                                                   ++                 +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/ordered_skiplist.rs:1021:37
[INFO] [stdout]      |
[INFO] [stdout] 1021 |                 if let Some(next) = (*node).links[0].and_then(|p| p.as_ptr().as_ref()) {
[INFO] [stdout]      |                                     ^^----^^^^^^^^^^
[INFO] [stdout]      |                                       |
[INFO] [stdout]      |                                       this raw pointer has type `*const skipnode::SkipNode<T>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<Option<NonNull<skipnode::SkipNode<T>>>>`
[INFO] [stdout]     --> src/ordered_skiplist.rs:1021:37
[INFO] [stdout]      |
[INFO] [stdout] 1021 |                 if let Some(next) = (*node).links[0].and_then(|p| p.as_ptr().as_ref()) {
[INFO] [stdout]      |                                     ^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 1021 |                 if let Some(next) = (&(*node).links)[0].and_then(|p| p.as_ptr().as_ref()) {
[INFO] [stdout]      |                                     ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skiplist.rs:458:17
[INFO] [stdout]     |
[INFO] [stdout] 458 |     pub fn iter(&self) -> Iter<T> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 458 |     pub fn iter(&self) -> Iter<'_, T> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skiplist.rs:475:21
[INFO] [stdout]     |
[INFO] [stdout] 475 |     pub fn iter_mut(&mut self) -> IterMut<T> {
[INFO] [stdout]     |                     ^^^^^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 475 |     pub fn iter_mut(&mut self) -> IterMut<'_, T> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skiplist.rs:499:18
[INFO] [stdout]     |
[INFO] [stdout] 499 |     pub fn range(&self, min: Bound<usize>, max: Bound<usize>) -> Iter<T> {
[INFO] [stdout]     |                  ^^^^^ the lifetime is elided here               ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 499 |     pub fn range(&self, min: Bound<usize>, max: Bound<usize>) -> Iter<'_, T> {
[INFO] [stdout]     |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skiplist.rs:524:22
[INFO] [stdout]     |
[INFO] [stdout] 524 |     pub fn range_mut(&mut self, min: Bound<usize>, max: Bound<usize>) -> IterMut<T> {
[INFO] [stdout]     |                      ^^^^^^^^^ the lifetime is elided here               ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 524 |     pub fn range_mut(&mut self, min: Bound<usize>, max: Bound<usize>) -> IterMut<'_, T> {
[INFO] [stdout]     |                                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skiplist.rs:654:19
[INFO] [stdout]     |
[INFO] [stdout] 654 |     fn iter_range(&self, first_idx: usize, last_idx: usize) -> Iter<T> {
[INFO] [stdout]     |                   ^^^^^ the lifetime is elided here            ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 654 |     fn iter_range(&self, first_idx: usize, last_idx: usize) -> Iter<'_, T> {
[INFO] [stdout]     |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skiplist.rs:680:23
[INFO] [stdout]     |
[INFO] [stdout] 680 |     fn iter_range_mut(&mut self, first_idx: usize, last_idx: usize) -> IterMut<T> {
[INFO] [stdout]     |                       ^^^^^^^^^ the lifetime is elided here            ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 680 |     fn iter_range_mut(&mut self, first_idx: usize, last_idx: usize) -> IterMut<'_, T> {
[INFO] [stdout]     |                                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skipmap.rs:486:17
[INFO] [stdout]     |
[INFO] [stdout] 486 |     pub fn iter(&self) -> Iter<K, V> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 486 |     pub fn iter(&self) -> Iter<'_, K, V> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skipmap.rs:506:21
[INFO] [stdout]     |
[INFO] [stdout] 506 |     pub fn iter_mut(&mut self) -> IterMut<K, V> {
[INFO] [stdout]     |                     ^^^^^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 506 |     pub fn iter_mut(&mut self) -> IterMut<'_, K, V> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skipmap.rs:524:17
[INFO] [stdout]     |
[INFO] [stdout] 524 |     pub fn keys(&self) -> Keys<K, V> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 524 |     pub fn keys(&self) -> Keys<'_, K, V> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skipmap.rs:541:19
[INFO] [stdout]     |
[INFO] [stdout] 541 |     pub fn values(&self) -> Values<K, V> {
[INFO] [stdout]     |                   ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 541 |     pub fn values(&self) -> Values<'_, K, V> {
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skipmap.rs:564:21
[INFO] [stdout]     |
[INFO] [stdout] 564 |     pub fn range<Q>(&self, min: Bound<&Q>, max: Bound<&Q>) -> Iter<K, V>
[INFO] [stdout]     |                     ^^^^^ the lifetime is elided here         ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 564 |     pub fn range<Q>(&self, min: Bound<&Q>, max: Bound<&Q>) -> Iter<'_, K, V>
[INFO] [stdout]     |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skipmap.rs:577:18
[INFO] [stdout]     |
[INFO] [stdout] 577 |     fn _range<Q>(&self, min: Bound<&Q>, max: Bound<&Q>) -> Option<skipnode::Iter<(K, V)>>
[INFO] [stdout]     |                  ^^^^^ the lifetime is elided here                ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 577 |     fn _range<Q>(&self, min: Bound<&Q>, max: Bound<&Q>) -> Option<skipnode::Iter<'_, (K, V)>>
[INFO] [stdout]     |                                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/skipmap.rs:772:61
[INFO] [stdout]     |
[INFO] [stdout] 772 |                 let max_str_len = format!("{} -{}-", value, (*node).links_len[(*node).level]).len();
[INFO] [stdout]     |                                                             ^^----^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                               |
[INFO] [stdout]     |                                                               this raw pointer has type `*const skipnode::SkipNode<(K, V)>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<usize>`
[INFO] [stdout]    --> src/skipmap.rs:772:61
[INFO] [stdout]     |
[INFO] [stdout] 772 |                 let max_str_len = format!("{} -{}-", value, (*node).links_len[(*node).level]).len();
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 772 |                 let max_str_len = format!("{} -{}-", value, (&(*node).links_len)[(*node).level]).len();
[INFO] [stdout]     |                                                             ++                 +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/skipmap.rs:779:51
[INFO] [stdout]     |
[INFO] [stdout] 779 |                         format!("{} -{}-", value, (*node).links_len[lvl])
[INFO] [stdout]     |                                                   ^^----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                     |
[INFO] [stdout]     |                                                     this raw pointer has type `*const skipnode::SkipNode<(K, V)>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<usize>`
[INFO] [stdout]    --> src/skipmap.rs:779:51
[INFO] [stdout]     |
[INFO] [stdout] 779 |                         format!("{} -{}-", value, (*node).links_len[lvl])
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 779 |                         format!("{} -{}-", value, (&(*node).links_len)[lvl])
[INFO] [stdout]     |                                                   ++                 +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/skipmap.rs:799:37
[INFO] [stdout]     |
[INFO] [stdout] 799 |                 if let Some(next) = (*node).links[0].and_then(|p| p.as_ptr().as_ref()) {
[INFO] [stdout]     |                                     ^^----^^^^^^^^^^
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       this raw pointer has type `*const skipnode::SkipNode<(K, V)>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<Option<NonNull<skipnode::SkipNode<(K, V)>>>>`
[INFO] [stdout]    --> src/skipmap.rs:799:37
[INFO] [stdout]     |
[INFO] [stdout] 799 |                 if let Some(next) = (*node).links[0].and_then(|p| p.as_ptr().as_ref()) {
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 799 |                 if let Some(next) = (&(*node).links)[0].and_then(|p| p.as_ptr().as_ref()) {
[INFO] [stdout]     |                                     ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling csv v1.4.0
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling criterion-plot v0.4.5
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling criterion v0.3.6
[INFO] [stderr]    Compiling xskiplist v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]   --> src/level_generator.rs:71:32
[INFO] [stdout]    |
[INFO] [stdout] 71 |         let f = 1.0 - self.rng.gen::<f64>();
[INFO] [stdout]    |                                ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AsPtrMut` is never used
[INFO] [stdout]    --> src/skipnode.rs:904:7
[INFO] [stdout]     |
[INFO] [stdout] 904 | trait AsPtrMut<T> {
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ordered_skiplist.rs:603:17
[INFO] [stdout]     |
[INFO] [stdout] 603 |     pub fn iter(&self) -> Iter<T> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 603 |     pub fn iter(&self) -> Iter<'_, T> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ordered_skiplist.rs:627:18
[INFO] [stdout]     |
[INFO] [stdout] 627 |     pub fn range(&self, min: Bound<&T>, max: Bound<&T>) -> Iter<T> {
[INFO] [stdout]     |                  ^^^^^ the lifetime is elided here         ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 627 |     pub fn range(&self, min: Bound<&T>, max: Bound<&T>) -> Iter<'_, T> {
[INFO] [stdout]     |                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ordered_skiplist.rs:636:15
[INFO] [stdout]     |
[INFO] [stdout] 636 |     fn _range(&self, min: Bound<&T>, max: Bound<&T>) -> Option<Iter<T>> {
[INFO] [stdout]     |               ^^^^^ the lifetime is elided here                ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 636 |     fn _range(&self, min: Bound<&T>, max: Bound<&T>) -> Option<Iter<'_, T>> {
[INFO] [stdout]     |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/ordered_skiplist.rs:994:61
[INFO] [stdout]     |
[INFO] [stdout] 994 |                 let max_str_len = format!("{} -{}-", value, (*node).links_len[(*node).level]).len();
[INFO] [stdout]     |                                                             ^^----^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                               |
[INFO] [stdout]     |                                                               this raw pointer has type `*const skipnode::SkipNode<T>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<usize>`
[INFO] [stdout]    --> src/ordered_skiplist.rs:994:61
[INFO] [stdout]     |
[INFO] [stdout] 994 |                 let max_str_len = format!("{} -{}-", value, (*node).links_len[(*node).level]).len();
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(dangerous_implicit_autorefs)]` on by default
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 994 |                 let max_str_len = format!("{} -{}-", value, (&(*node).links_len)[(*node).level]).len();
[INFO] [stdout]     |                                                             ++                 +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/ordered_skiplist.rs:1001:51
[INFO] [stdout]      |
[INFO] [stdout] 1001 |                         format!("{} -{}-", value, (*node).links_len[lvl])
[INFO] [stdout]      |                                                   ^^----^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                                     |
[INFO] [stdout]      |                                                     this raw pointer has type `*const skipnode::SkipNode<T>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<usize>`
[INFO] [stdout]     --> src/ordered_skiplist.rs:1001:51
[INFO] [stdout]      |
[INFO] [stdout] 1001 |                         format!("{} -{}-", value, (*node).links_len[lvl])
[INFO] [stdout]      |                                                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 1001 |                         format!("{} -{}-", value, (&(*node).links_len)[lvl])
[INFO] [stdout]      |                                                   ++                 +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/ordered_skiplist.rs:1021:37
[INFO] [stdout]      |
[INFO] [stdout] 1021 |                 if let Some(next) = (*node).links[0].and_then(|p| p.as_ptr().as_ref()) {
[INFO] [stdout]      |                                     ^^----^^^^^^^^^^
[INFO] [stdout]      |                                       |
[INFO] [stdout]      |                                       this raw pointer has type `*const skipnode::SkipNode<T>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<Option<std::ptr::NonNull<skipnode::SkipNode<T>>>>`
[INFO] [stdout]     --> src/ordered_skiplist.rs:1021:37
[INFO] [stdout]      |
[INFO] [stdout] 1021 |                 if let Some(next) = (*node).links[0].and_then(|p| p.as_ptr().as_ref()) {
[INFO] [stdout]      |                                     ^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 1021 |                 if let Some(next) = (&(*node).links)[0].and_then(|p| p.as_ptr().as_ref()) {
[INFO] [stdout]      |                                     ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skiplist.rs:458:17
[INFO] [stdout]     |
[INFO] [stdout] 458 |     pub fn iter(&self) -> Iter<T> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 458 |     pub fn iter(&self) -> Iter<'_, T> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skiplist.rs:475:21
[INFO] [stdout]     |
[INFO] [stdout] 475 |     pub fn iter_mut(&mut self) -> IterMut<T> {
[INFO] [stdout]     |                     ^^^^^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 475 |     pub fn iter_mut(&mut self) -> IterMut<'_, T> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skiplist.rs:499:18
[INFO] [stdout]     |
[INFO] [stdout] 499 |     pub fn range(&self, min: Bound<usize>, max: Bound<usize>) -> Iter<T> {
[INFO] [stdout]     |                  ^^^^^ the lifetime is elided here               ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 499 |     pub fn range(&self, min: Bound<usize>, max: Bound<usize>) -> Iter<'_, T> {
[INFO] [stdout]     |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skiplist.rs:524:22
[INFO] [stdout]     |
[INFO] [stdout] 524 |     pub fn range_mut(&mut self, min: Bound<usize>, max: Bound<usize>) -> IterMut<T> {
[INFO] [stdout]     |                      ^^^^^^^^^ the lifetime is elided here               ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 524 |     pub fn range_mut(&mut self, min: Bound<usize>, max: Bound<usize>) -> IterMut<'_, T> {
[INFO] [stdout]     |                                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skiplist.rs:654:19
[INFO] [stdout]     |
[INFO] [stdout] 654 |     fn iter_range(&self, first_idx: usize, last_idx: usize) -> Iter<T> {
[INFO] [stdout]     |                   ^^^^^ the lifetime is elided here            ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 654 |     fn iter_range(&self, first_idx: usize, last_idx: usize) -> Iter<'_, T> {
[INFO] [stdout]     |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skiplist.rs:680:23
[INFO] [stdout]     |
[INFO] [stdout] 680 |     fn iter_range_mut(&mut self, first_idx: usize, last_idx: usize) -> IterMut<T> {
[INFO] [stdout]     |                       ^^^^^^^^^ the lifetime is elided here            ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 680 |     fn iter_range_mut(&mut self, first_idx: usize, last_idx: usize) -> IterMut<'_, T> {
[INFO] [stdout]     |                                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skipmap.rs:486:17
[INFO] [stdout]     |
[INFO] [stdout] 486 |     pub fn iter(&self) -> Iter<K, V> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 486 |     pub fn iter(&self) -> Iter<'_, K, V> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skipmap.rs:506:21
[INFO] [stdout]     |
[INFO] [stdout] 506 |     pub fn iter_mut(&mut self) -> IterMut<K, V> {
[INFO] [stdout]     |                     ^^^^^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 506 |     pub fn iter_mut(&mut self) -> IterMut<'_, K, V> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skipmap.rs:524:17
[INFO] [stdout]     |
[INFO] [stdout] 524 |     pub fn keys(&self) -> Keys<K, V> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 524 |     pub fn keys(&self) -> Keys<'_, K, V> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skipmap.rs:541:19
[INFO] [stdout]     |
[INFO] [stdout] 541 |     pub fn values(&self) -> Values<K, V> {
[INFO] [stdout]     |                   ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 541 |     pub fn values(&self) -> Values<'_, K, V> {
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skipmap.rs:564:21
[INFO] [stdout]     |
[INFO] [stdout] 564 |     pub fn range<Q>(&self, min: Bound<&Q>, max: Bound<&Q>) -> Iter<K, V>
[INFO] [stdout]     |                     ^^^^^ the lifetime is elided here         ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 564 |     pub fn range<Q>(&self, min: Bound<&Q>, max: Bound<&Q>) -> Iter<'_, K, V>
[INFO] [stdout]     |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/skipmap.rs:577:18
[INFO] [stdout]     |
[INFO] [stdout] 577 |     fn _range<Q>(&self, min: Bound<&Q>, max: Bound<&Q>) -> Option<skipnode::Iter<(K, V)>>
[INFO] [stdout]     |                  ^^^^^ the lifetime is elided here                ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 577 |     fn _range<Q>(&self, min: Bound<&Q>, max: Bound<&Q>) -> Option<skipnode::Iter<'_, (K, V)>>
[INFO] [stdout]     |                                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/skipmap.rs:772:61
[INFO] [stdout]     |
[INFO] [stdout] 772 |                 let max_str_len = format!("{} -{}-", value, (*node).links_len[(*node).level]).len();
[INFO] [stdout]     |                                                             ^^----^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                               |
[INFO] [stdout]     |                                                               this raw pointer has type `*const skipnode::SkipNode<(K, V)>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<usize>`
[INFO] [stdout]    --> src/skipmap.rs:772:61
[INFO] [stdout]     |
[INFO] [stdout] 772 |                 let max_str_len = format!("{} -{}-", value, (*node).links_len[(*node).level]).len();
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 772 |                 let max_str_len = format!("{} -{}-", value, (&(*node).links_len)[(*node).level]).len();
[INFO] [stdout]     |                                                             ++                 +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/skipmap.rs:779:51
[INFO] [stdout]     |
[INFO] [stdout] 779 |                         format!("{} -{}-", value, (*node).links_len[lvl])
[INFO] [stdout]     |                                                   ^^----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                     |
[INFO] [stdout]     |                                                     this raw pointer has type `*const skipnode::SkipNode<(K, V)>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<usize>`
[INFO] [stdout]    --> src/skipmap.rs:779:51
[INFO] [stdout]     |
[INFO] [stdout] 779 |                         format!("{} -{}-", value, (*node).links_len[lvl])
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 779 |                         format!("{} -{}-", value, (&(*node).links_len)[lvl])
[INFO] [stdout]     |                                                   ++                 +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/skipmap.rs:799:37
[INFO] [stdout]     |
[INFO] [stdout] 799 |                 if let Some(next) = (*node).links[0].and_then(|p| p.as_ptr().as_ref()) {
[INFO] [stdout]     |                                     ^^----^^^^^^^^^^
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       this raw pointer has type `*const skipnode::SkipNode<(K, V)>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<Option<std::ptr::NonNull<skipnode::SkipNode<(K, V)>>>>`
[INFO] [stdout]    --> src/skipmap.rs:799:37
[INFO] [stdout]     |
[INFO] [stdout] 799 |                 if let Some(next) = (*node).links[0].and_then(|p| p.as_ptr().as_ref()) {
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 799 |                 if let Some(next) = (&(*node).links)[0].and_then(|p| p.as_ptr().as_ref()) {
[INFO] [stdout]     |                                     ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/skipnode.rs:1284:21
[INFO] [stdout]      |
[INFO] [stdout] 1284 |                     (*last_node).links[level] = NonNull::new(node_ptr);
[INFO] [stdout]      |                     ^^---------^^^^^^^^^^^^^^
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       this raw pointer has type `*mut skipnode::SkipNode<usize>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&mut Vec<Option<std::ptr::NonNull<skipnode::SkipNode<usize>>>>`
[INFO] [stdout]     --> src/skipnode.rs:1284:21
[INFO] [stdout]      |
[INFO] [stdout] 1284 |                     (*last_node).links[level] = NonNull::new(node_ptr);
[INFO] [stdout]      |                     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 1284 |                     (&mut (*last_node).links)[level] = NonNull::new(node_ptr);
[INFO] [stdout]      |                     +++++                   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/skipnode.rs:1285:21
[INFO] [stdout]      |
[INFO] [stdout] 1285 |                     (*last_node).links_len[level] = 1 << level;
[INFO] [stdout]      |                     ^^---------^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       this raw pointer has type `*mut skipnode::SkipNode<usize>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&mut Vec<usize>`
[INFO] [stdout]     --> src/skipnode.rs:1285:21
[INFO] [stdout]      |
[INFO] [stdout] 1285 |                     (*last_node).links_len[level] = 1 << level;
[INFO] [stdout]      |                     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 1285 |                     (&mut (*last_node).links_len)[level] = 1 << level;
[INFO] [stdout]      |                     +++++                       +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/skipnode.rs:1289:17
[INFO] [stdout]      |
[INFO] [stdout] 1289 |                 (*last_node).links_len[level] = len_left;
[INFO] [stdout]      |                 ^^---------^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                   |
[INFO] [stdout]      |                   this raw pointer has type `*mut skipnode::SkipNode<usize>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&mut Vec<usize>`
[INFO] [stdout]     --> src/skipnode.rs:1289:17
[INFO] [stdout]      |
[INFO] [stdout] 1289 |                 (*last_node).links_len[level] = len_left;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 1289 |                 (&mut (*last_node).links_len)[level] = len_left;
[INFO] [stdout]      |                 +++++                       +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 21.47s
[INFO] running `Command { std: "docker" "inspect" "01267cf3f82ac794adbe8c59b437ba14f73bb6ec6ba70c64026c7a9bfa22e727", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "01267cf3f82ac794adbe8c59b437ba14f73bb6ec6ba70c64026c7a9bfa22e727" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stderr]   --> src/level_generator.rs:71:32
[INFO] [stderr]    |
[INFO] [stderr] 71 |         let f = 1.0 - self.rng.gen::<f64>();
[INFO] [stderr]    |                                ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait `AsPtrMut` is never used
[INFO] [stderr]    --> src/skipnode.rs:904:7
[INFO] [stderr]     |
[INFO] [stderr] 904 | trait AsPtrMut<T> {
[INFO] [stderr]     |       ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/ordered_skiplist.rs:603:17
[INFO] [stderr]     |
[INFO] [stderr] 603 |     pub fn iter(&self) -> Iter<T> {
[INFO] [stderr]     |                 ^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 603 |     pub fn iter(&self) -> Iter<'_, T> {
[INFO] [stderr]     |                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/ordered_skiplist.rs:627:18
[INFO] [stderr]     |
[INFO] [stderr] 627 |     pub fn range(&self, min: Bound<&T>, max: Bound<&T>) -> Iter<T> {
[INFO] [stderr]     |                  ^^^^^ the lifetime is elided here         ^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 627 |     pub fn range(&self, min: Bound<&T>, max: Bound<&T>) -> Iter<'_, T> {
[INFO] [stderr]     |                                                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/ordered_skiplist.rs:636:15
[INFO] [stderr]     |
[INFO] [stderr] 636 |     fn _range(&self, min: Bound<&T>, max: Bound<&T>) -> Option<Iter<T>> {
[INFO] [stderr]     |               ^^^^^ the lifetime is elided here                ^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 636 |     fn _range(&self, min: Bound<&T>, max: Bound<&T>) -> Option<Iter<'_, T>> {
[INFO] [stderr]     |                                                                     +++
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]    --> src/ordered_skiplist.rs:994:61
[INFO] [stderr]     |
[INFO] [stderr] 994 |                 let max_str_len = format!("{} -{}-", value, (*node).links_len[(*node).level]).len();
[INFO] [stderr]     |                                                             ^^----^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                                                               |
[INFO] [stderr]     |                                                               this raw pointer has type `*const skipnode::SkipNode<T>`
[INFO] [stderr]     |
[INFO] [stderr]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&Vec<usize>`
[INFO] [stderr]    --> src/ordered_skiplist.rs:994:61
[INFO] [stderr]     |
[INFO] [stderr] 994 |                 let max_str_len = format!("{} -{}-", value, (*node).links_len[(*node).level]).len();
[INFO] [stderr]     |                                                             ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     = note: `#[warn(dangerous_implicit_autorefs)]` on by default
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]     |
[INFO] [stderr] 994 |                 let max_str_len = format!("{} -{}-", value, (&(*node).links_len)[(*node).level]).len();
[INFO] [stderr]     |                                                             ++                 +
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]     --> src/ordered_skiplist.rs:1001:51
[INFO] [stderr]      |
[INFO] [stderr] 1001 |                         format!("{} -{}-", value, (*node).links_len[lvl])
[INFO] [stderr]      |                                                   ^^----^^^^^^^^^^^^^^^^
[INFO] [stderr]      |                                                     |
[INFO] [stderr]      |                                                     this raw pointer has type `*const skipnode::SkipNode<T>`
[INFO] [stderr]      |
[INFO] [stderr]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&Vec<usize>`
[INFO] [stderr]     --> src/ordered_skiplist.rs:1001:51
[INFO] [stderr]      |
[INFO] [stderr] 1001 |                         format!("{} -{}-", value, (*node).links_len[lvl])
[INFO] [stderr]      |                                                   ^^^^^^^^^^^^^^^^^
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]      |
[INFO] [stderr] 1001 |                         format!("{} -{}-", value, (&(*node).links_len)[lvl])
[INFO] [stderr]      |                                                   ++                 +
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]     --> src/ordered_skiplist.rs:1021:37
[INFO] [stderr]      |
[INFO] [stderr] 1021 |                 if let Some(next) = (*node).links[0].and_then(|p| p.as_ptr().as_ref()) {
[INFO] [stderr]      |                                     ^^----^^^^^^^^^^
[INFO] [stderr]      |                                       |
[INFO] [stderr]      |                                       this raw pointer has type `*const skipnode::SkipNode<T>`
[INFO] [stderr]      |
[INFO] [stderr]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&Vec<Option<NonNull<skipnode::SkipNode<T>>>>`
[INFO] [stderr]     --> src/ordered_skiplist.rs:1021:37
[INFO] [stderr]      |
[INFO] [stderr] 1021 |                 if let Some(next) = (*node).links[0].and_then(|p| p.as_ptr().as_ref()) {
[INFO] [stderr]      |                                     ^^^^^^^^^^^^^
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]      |
[INFO] [stderr] 1021 |                 if let Some(next) = (&(*node).links)[0].and_then(|p| p.as_ptr().as_ref()) {
[INFO] [stderr]      |                                     ++             +
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/skiplist.rs:458:17
[INFO] [stderr]     |
[INFO] [stderr] 458 |     pub fn iter(&self) -> Iter<T> {
[INFO] [stderr]     |                 ^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 458 |     pub fn iter(&self) -> Iter<'_, T> {
[INFO] [stderr]     |                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/skiplist.rs:475:21
[INFO] [stderr]     |
[INFO] [stderr] 475 |     pub fn iter_mut(&mut self) -> IterMut<T> {
[INFO] [stderr]     |                     ^^^^^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 475 |     pub fn iter_mut(&mut self) -> IterMut<'_, T> {
[INFO] [stderr]     |                                           +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/skiplist.rs:499:18
[INFO] [stderr]     |
[INFO] [stderr] 499 |     pub fn range(&self, min: Bound<usize>, max: Bound<usize>) -> Iter<T> {
[INFO] [stderr]     |                  ^^^^^ the lifetime is elided here               ^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 499 |     pub fn range(&self, min: Bound<usize>, max: Bound<usize>) -> Iter<'_, T> {
[INFO] [stderr]     |                                                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/skiplist.rs:524:22
[INFO] [stderr]     |
[INFO] [stderr] 524 |     pub fn range_mut(&mut self, min: Bound<usize>, max: Bound<usize>) -> IterMut<T> {
[INFO] [stderr]     |                      ^^^^^^^^^ the lifetime is elided here               ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 524 |     pub fn range_mut(&mut self, min: Bound<usize>, max: Bound<usize>) -> IterMut<'_, T> {
[INFO] [stderr]     |                                                                                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/skiplist.rs:654:19
[INFO] [stderr]     |
[INFO] [stderr] 654 |     fn iter_range(&self, first_idx: usize, last_idx: usize) -> Iter<T> {
[INFO] [stderr]     |                   ^^^^^ the lifetime is elided here            ^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 654 |     fn iter_range(&self, first_idx: usize, last_idx: usize) -> Iter<'_, T> {
[INFO] [stderr]     |                                                                     +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/skiplist.rs:680:23
[INFO] [stderr]     |
[INFO] [stderr] 680 |     fn iter_range_mut(&mut self, first_idx: usize, last_idx: usize) -> IterMut<T> {
[INFO] [stderr]     |                       ^^^^^^^^^ the lifetime is elided here            ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 680 |     fn iter_range_mut(&mut self, first_idx: usize, last_idx: usize) -> IterMut<'_, T> {
[INFO] [stderr]     |                                                                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/skipmap.rs:486:17
[INFO] [stderr]     |
[INFO] [stderr] 486 |     pub fn iter(&self) -> Iter<K, V> {
[INFO] [stderr]     |                 ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 486 |     pub fn iter(&self) -> Iter<'_, K, V> {
[INFO] [stderr]     |                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/skipmap.rs:506:21
[INFO] [stderr]     |
[INFO] [stderr] 506 |     pub fn iter_mut(&mut self) -> IterMut<K, V> {
[INFO] [stderr]     |                     ^^^^^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 506 |     pub fn iter_mut(&mut self) -> IterMut<'_, K, V> {
[INFO] [stderr]     |                                           +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/skipmap.rs:524:17
[INFO] [stderr]     |
[INFO] [stderr] 524 |     pub fn keys(&self) -> Keys<K, V> {
[INFO] [stderr]     |                 ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 524 |     pub fn keys(&self) -> Keys<'_, K, V> {
[INFO] [stderr]     |                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/skipmap.rs:541:19
[INFO] [stderr]     |
[INFO] [stderr] 541 |     pub fn values(&self) -> Values<K, V> {
[INFO] [stderr]     |                   ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                   |
[INFO] [stderr]     |                   the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 541 |     pub fn values(&self) -> Values<'_, K, V> {
[INFO] [stderr]     |                                    +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/skipmap.rs:564:21
[INFO] [stderr]     |
[INFO] [stderr] 564 |     pub fn range<Q>(&self, min: Bound<&Q>, max: Bound<&Q>) -> Iter<K, V>
[INFO] [stderr]     |                     ^^^^^ the lifetime is elided here         ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 564 |     pub fn range<Q>(&self, min: Bound<&Q>, max: Bound<&Q>) -> Iter<'_, K, V>
[INFO] [stderr]     |                                                                    +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/skipmap.rs:577:18
[INFO] [stderr]     |
[INFO] [stderr] 577 |     fn _range<Q>(&self, min: Bound<&Q>, max: Bound<&Q>) -> Option<skipnode::Iter<(K, V)>>
[INFO] [stderr]     |                  ^^^^^ the lifetime is elided here                ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 577 |     fn _range<Q>(&self, min: Bound<&Q>, max: Bound<&Q>) -> Option<skipnode::Iter<'_, (K, V)>>
[INFO] [stderr]     |                                                                                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]    --> src/skipmap.rs:772:61
[INFO] [stderr]     |
[INFO] [stderr] 772 |                 let max_str_len = format!("{} -{}-", value, (*node).links_len[(*node).level]).len();
[INFO] [stderr]     |                                                             ^^----^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                                                               |
[INFO] [stderr]     |                                                               this raw pointer has type `*const skipnode::SkipNode<(K, V)>`
[INFO] [stderr]     |
[INFO] [stderr]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&Vec<usize>`
[INFO] [stderr]    --> src/skipmap.rs:772:61
[INFO] [stderr]     |
[INFO] [stderr] 772 |                 let max_str_len = format!("{} -{}-", value, (*node).links_len[(*node).level]).len();
[INFO] [stderr]     |                                                             ^^^^^^^^^^^^^^^^^
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]     |
[INFO] [stderr] 772 |                 let max_str_len = format!("{} -{}-", value, (&(*node).links_len)[(*node).level]).len();
[INFO] [stderr]     |                                                             ++                 +
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]    --> src/skipmap.rs:779:51
[INFO] [stderr]     |
[INFO] [stderr] 779 |                         format!("{} -{}-", value, (*node).links_len[lvl])
[INFO] [stderr]     |                                                   ^^----^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                                                     |
[INFO] [stderr]     |                                                     this raw pointer has type `*const skipnode::SkipNode<(K, V)>`
[INFO] [stderr]     |
[INFO] [stderr]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&Vec<usize>`
[INFO] [stderr]    --> src/skipmap.rs:779:51
[INFO] [stderr]     |
[INFO] [stderr] 779 |                         format!("{} -{}-", value, (*node).links_len[lvl])
[INFO] [stderr]     |                                                   ^^^^^^^^^^^^^^^^^
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]     |
[INFO] [stderr] 779 |                         format!("{} -{}-", value, (&(*node).links_len)[lvl])
[INFO] [stderr]     |                                                   ++                 +
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]    --> src/skipmap.rs:799:37
[INFO] [stderr]     |
[INFO] [stderr] 799 |                 if let Some(next) = (*node).links[0].and_then(|p| p.as_ptr().as_ref()) {
[INFO] [stderr]     |                                     ^^----^^^^^^^^^^
[INFO] [stderr]     |                                       |
[INFO] [stderr]     |                                       this raw pointer has type `*const skipnode::SkipNode<(K, V)>`
[INFO] [stderr]     |
[INFO] [stderr]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&Vec<Option<NonNull<skipnode::SkipNode<(K, V)>>>>`
[INFO] [stderr]    --> src/skipmap.rs:799:37
[INFO] [stderr]     |
[INFO] [stderr] 799 |                 if let Some(next) = (*node).links[0].and_then(|p| p.as_ptr().as_ref()) {
[INFO] [stderr]     |                                     ^^^^^^^^^^^^^
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]     |
[INFO] [stderr] 799 |                 if let Some(next) = (&(*node).links)[0].and_then(|p| p.as_ptr().as_ref()) {
[INFO] [stderr]     |                                     ++             +
[INFO] [stderr] 
[INFO] [stderr] warning: `xskiplist` (lib) generated 23 warnings (run `cargo fix --lib -p xskiplist` to apply 15 suggestions)
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]     --> src/ordered_skiplist.rs:1021:37
[INFO] [stderr]      |
[INFO] [stderr] 1021 |                 if let Some(next) = (*node).links[0].and_then(|p| p.as_ptr().as_ref()) {
[INFO] [stderr]      |                                     ^^----^^^^^^^^^^
[INFO] [stderr]      |                                       |
[INFO] [stderr]      |                                       this raw pointer has type `*const skipnode::SkipNode<T>`
[INFO] [stderr]      |
[INFO] [stderr]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&Vec<Option<std::ptr::NonNull<skipnode::SkipNode<T>>>>`
[INFO] [stderr]     --> src/ordered_skiplist.rs:1021:37
[INFO] [stderr]      |
[INFO] [stderr] 1021 |                 if let Some(next) = (*node).links[0].and_then(|p| p.as_ptr().as_ref()) {
[INFO] [stderr]      |                                     ^^^^^^^^^^^^^
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]      |
[INFO] [stderr] 1021 |                 if let Some(next) = (&(*node).links)[0].and_then(|p| p.as_ptr().as_ref()) {
[INFO] [stderr]      |                                     ++             +
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]    --> src/skipmap.rs:799:37
[INFO] [stderr]     |
[INFO] [stderr] 799 |                 if let Some(next) = (*node).links[0].and_then(|p| p.as_ptr().as_ref()) {
[INFO] [stderr]     |                                     ^^----^^^^^^^^^^
[INFO] [stderr]     |                                       |
[INFO] [stderr]     |                                       this raw pointer has type `*const skipnode::SkipNode<(K, V)>`
[INFO] [stderr]     |
[INFO] [stderr]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&Vec<Option<std::ptr::NonNull<skipnode::SkipNode<(K, V)>>>>`
[INFO] [stderr]    --> src/skipmap.rs:799:37
[INFO] [stderr]     |
[INFO] [stderr] 799 |                 if let Some(next) = (*node).links[0].and_then(|p| p.as_ptr().as_ref()) {
[INFO] [stderr]     |                                     ^^^^^^^^^^^^^
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]     |
[INFO] [stderr] 799 |                 if let Some(next) = (&(*node).links)[0].and_then(|p| p.as_ptr().as_ref()) {
[INFO] [stderr]     |                                     ++             +
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]     --> src/skipnode.rs:1284:21
[INFO] [stderr]      |
[INFO] [stderr] 1284 |                     (*last_node).links[level] = NonNull::new(node_ptr);
[INFO] [stderr]      |                     ^^---------^^^^^^^^^^^^^^
[INFO] [stderr]      |                       |
[INFO] [stderr]      |                       this raw pointer has type `*mut skipnode::SkipNode<usize>`
[INFO] [stderr]      |
[INFO] [stderr]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&mut Vec<Option<std::ptr::NonNull<skipnode::SkipNode<usize>>>>`
[INFO] [stderr]     --> src/skipnode.rs:1284:21
[INFO] [stderr]      |
[INFO] [stderr] 1284 |                     (*last_node).links[level] = NonNull::new(node_ptr);
[INFO] [stderr]      |                     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]      |
[INFO] [stderr] 1284 |                     (&mut (*last_node).links)[level] = NonNull::new(node_ptr);
[INFO] [stderr]      |                     +++++                   +
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]     --> src/skipnode.rs:1285:21
[INFO] [stderr]      |
[INFO] [stderr] 1285 |                     (*last_node).links_len[level] = 1 << level;
[INFO] [stderr]      |                     ^^---------^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |                       |
[INFO] [stderr]      |                       this raw pointer has type `*mut skipnode::SkipNode<usize>`
[INFO] [stderr]      |
[INFO] [stderr]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&mut Vec<usize>`
[INFO] [stderr]     --> src/skipnode.rs:1285:21
[INFO] [stderr]      |
[INFO] [stderr] 1285 |                     (*last_node).links_len[level] = 1 << level;
[INFO] [stderr]      |                     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]      |
[INFO] [stderr] 1285 |                     (&mut (*last_node).links_len)[level] = 1 << level;
[INFO] [stderr]      |                     +++++                       +
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]     --> src/skipnode.rs:1289:17
[INFO] [stderr]      |
[INFO] [stderr] 1289 |                 (*last_node).links_len[level] = len_left;
[INFO] [stderr]      |                 ^^---------^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |                   |
[INFO] [stderr]      |                   this raw pointer has type `*mut skipnode::SkipNode<usize>`
[INFO] [stderr]      |
[INFO] [stderr]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&mut Vec<usize>`
[INFO] [stderr]     --> src/skipnode.rs:1289:17
[INFO] [stderr]      |
[INFO] [stderr] 1289 |                 (*last_node).links_len[level] = len_left;
[INFO] [stderr]      |                 ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]      |
[INFO] [stderr] 1289 |                 (&mut (*last_node).links_len)[level] = len_left;
[INFO] [stderr]      |                 +++++                       +
[INFO] [stderr] 
[INFO] [stderr] warning: `xskiplist` (lib test) generated 26 warnings (21 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/xskiplist-130f1d7ce727fc13)
[INFO] [stdout] 
[INFO] [stdout] running 79 tests
[INFO] [stdout] test level_generator::tests::new ... ok
[INFO] [stdout] test ordered_skiplist::tests::basic_small ... ok
[INFO] [stdout] test ordered_skiplist::tests::debug_display ... ok
[INFO] [stdout] test ordered_skiplist::tests::bound ... ok
[INFO] [stdout] test ordered_skiplist::tests::clear ... ok
[INFO] [stdout] test ordered_skiplist::tests::contains ... ok
[INFO] [stdout] test ordered_skiplist::tests::equality ... ok
[INFO] [stdout] test ordered_skiplist::tests::index_pop ... ok
[INFO] [stdout] test level_generator::tests::invalid_p_0 - should panic ... ok
[INFO] [stdout] test level_generator::tests::invalid_total - should panic ... ok
[INFO] [stdout] test level_generator::tests::invalid_p_1 - should panic ... ok
[INFO] [stdout] test ordered_skiplist::tests::range_1000 ... ok
[INFO] [stdout] test ordered_skiplist::tests::range_small ... ok
[INFO] [stdout] test ordered_skiplist::tests::remove ... ok
[INFO] [stdout] test ordered_skiplist::tests::iter ... ok
[INFO] [stdout] test ordered_skiplist::tests::iter_mixed ... ok
[INFO] [stdout] test ordered_skiplist::tests::sort_by ... ok
[INFO] [stdout] test ordered_skiplist::tests::sort_by_panic - should panic ... ok
[INFO] [stdout] test ordered_skiplist::tests::with_comp ... ok
[INFO] [stdout] test skiplist::tests::append_test ... ok
[INFO] [stdout] test ordered_skiplist::tests::dedup ... ok
[INFO] [stdout] test skiplist::tests::basic_small ... ok
[INFO] [stdout] test skiplist::tests::bound ... ok
[INFO] [stdout] test skiplist::tests::clear ... ok
[INFO] [stdout] test skiplist::tests::contains ... ok
[INFO] [stdout] test skiplist::tests::debug_display ... ok
[INFO] [stdout] test ordered_skiplist::tests::basic_large ... ok
[INFO] [stdout] test skiplist::tests::equality ... ok
[INFO] [stdout] test skiplist::tests::index_pop ... ok
[INFO] [stdout] test ordered_skiplist::tests::iter_rev ... ok
[INFO] [stdout] test skiplist::tests::insert_rand ... ok
[INFO] [stdout] test skiplist::tests::insert_repeat ... ok
[INFO] [stdout] test ordered_skiplist::tests::remove_index ... ok
[INFO] [stdout] test skiplist::tests::inplace_mut ... ok
[INFO] [stdout] test ordered_skiplist::tests::pop ... ok
[INFO] [stdout] test ordered_skiplist::tests::retain ... ok
[INFO] [stdout] test skiplist::tests::push_back ... ok
[INFO] [stdout] test skiplist::tests::iter ... ok
[INFO] [stdout] test skiplist::tests::last ... ok
[INFO] [stdout] test skiplist::tests::push_front ... ok
[INFO] [stdout] test skiplist::tests::range_mut_1000 ... ok
[INFO] [stdout] test skiplist::tests::range_1000 ... ok
[INFO] [stdout] test skiplist::tests::dedup ... ok
[INFO] [stdout] test skiplist::tests::remove_rand ... ok
[INFO] [stdout] test skiplist::tests::range_small ... ok
[INFO] [stdout] test skiplist::tests::iter_mixed ... ok
[INFO] [stdout] test skipmap::tests::basic_small ... ok
[INFO] [stdout] test skipmap::tests::clear ... ok
[INFO] [stdout] test skiplist::tests::iter_rev ... ok
[INFO] [stdout] test skipmap::tests::contains ... ok
[INFO] [stdout] test skipmap::tests::debug_display ... ok
[INFO] [stdout] test skipmap::tests::bound ... ok
[INFO] [stdout] test skipmap::tests::equality ... ok
[INFO] [stdout] test skipmap::tests::insert_existing ... ok
[INFO] [stdout] test skipmap::tests::iter_key_val ... ok
[INFO] [stdout] test skipmap::tests::iter_mixed ... ok
[INFO] [stdout] test skipmap::tests::iter_rev ... ok
[INFO] [stdout] test skipmap::tests::index_pop ... ok
[INFO] [stdout] test skipmap::tests::range_1000 ... ok
[INFO] [stdout] test skipmap::tests::range_small ... ok
[INFO] [stdout] test skipmap::tests::iter ... ok
[INFO] [stdout] test skipnode::test::miri_test_check ... ok
[INFO] [stdout] test skipnode::test::miri_test_distance ... ok
[INFO] [stdout] test skipnode::test::miri_test_insert ... ok
[INFO] [stdout] test skipnode::test::miri_test_into_iter ... ok
[INFO] [stdout] test skipnode::test::miri_test_iter ... ok
[INFO] [stdout] test skipnode::test::miri_test_iter_mut ... ok
[INFO] [stdout] test skipnode::test::miri_test_remove ... ok
[INFO] [stdout] test skipnode::test::miri_test_retain ... ok
[INFO] [stdout] test skipnode::test::test_covariance ... ok
[INFO] [stdout] test skipnode::test::test_level_index ... ok
[INFO] [stdout] test skipmap::tests::remove_index ... ok
[INFO] [stdout] test skipnode::test::test_level_required ... ok
[INFO] [stdout] test skipmap::tests::basic_large ... ok
[INFO] [stdout] test ordered_skiplist::tests::range ... ok
[INFO] [stdout] test skiplist::tests::retain ... ok
[INFO] [stdout] test skiplist::tests::range ... ok
[INFO] [stdout] test skipmap::tests::range ... ok
[INFO] [stderr]    Doc-tests xskiplist
[INFO] [stdout] test skiplist::tests::basic_large ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 79 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.86s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 75 tests
[INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList<T>::get (line 351) ... ok
[INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList<T>::clear (line 228) ... ok
[INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList<T>::insert (line 280) ... ok
[INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList<T>::front (line 302) ... ok
[INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList<T>::into_iter (line 575) ... ok
[INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList<T>::dedup (line 555) ... ok
[INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList<T>::is_empty (line 262) ... ok
[INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList<T>::contains (line 425) ... ok
[INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList<T>::back (line 326) ... ok
[INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList<T>::lower_bound (line 653) ... ok
[INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList<T>::new (line 69) ... ok
[INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList<T>::pop_front (line 375) ... ok
[INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList<T>::iter (line 594) ... ok
[INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList<T>::len (line 246) ... ok
[INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList<T>::pop_back (line 400) ... ok
[INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList<T>::range (line 616) ... ok
[INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList<T>::remove_index (line 512) ... ok
[INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList<T>::remove (line 454) ... ok
[INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList<T>::remove_first (line 480) ... ok
[INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList<T>::with_comp (line 146) ... ok
[INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList<T>::with_capacity (line 102) ... ok
[INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList<T>::retain (line 536) ... ok
[INFO] [stdout] test src/skiplist.rs - skiplist::SkipList<T>::clear (line 82) ... ok
[INFO] [stdout] test src/skiplist.rs - skiplist::SkipList<T>::back (line 244) ... ok
[INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList<T>::upper_bound (line 676) ... ok
[INFO] [stdout] test src/skiplist.rs - skiplist::SkipList<T>::dedup (line 624) ... ok
[INFO] [stdout] test src/skiplist.rs - skiplist::SkipList<T>::front (line 196) ... ok
[INFO] [stdout] test src/skiplist.rs - skiplist::SkipList<T>::back_mut (line 269) ... ok
[INFO] [stdout] test src/skiplist.rs - skiplist::SkipList<T>::front_mut (line 220) ... ok
[INFO] [stdout] test src/skiplist.rs - skiplist::SkipList<T>::get (line 294) ... ok
[INFO] [stdout] test src/skiplist.rs - skiplist::SkipList<T>::contains (line 608) ... ok
[INFO] [stdout] test src/skiplist.rs - skiplist::SkipList<T>::get_mut (line 313) ... ok
[INFO] [stdout] test src/skiplist.rs - skiplist::SkipList<T>::insert (line 139) ... ok
[INFO] [stdout] test src/skiplist.rs - skiplist::SkipList<T>::into_iter (line 430) ... ok
[INFO] [stdout] test src/skiplist.rs - skiplist::SkipList<T>::lower_bound (line 544) ... ok
[INFO] [stdout] test src/skiplist.rs - skiplist::SkipList<T>::iter_mut (line 466) ... ok
[INFO] [stdout] test src/skiplist.rs - skiplist::SkipList<T>::pop_back (line 358) ... ok
[INFO] [stdout] test src/skiplist.rs - skiplist::SkipList<T>::is_empty (line 116) ... ok
[INFO] [stdout] test src/skiplist.rs - skiplist::SkipList<T>::new (line 39) ... ok
[INFO] [stdout] test src/skiplist.rs - skiplist::SkipList<T>::iter (line 449) ... ok
[INFO] [stdout] test src/skiplist.rs - skiplist::SkipList<T>::len (line 100) ... ok
[INFO] [stdout] test src/skiplist.rs - skiplist::SkipList<T>::pop_front (line 333) ... ok
[INFO] [stdout] test src/skiplist.rs - skiplist::SkipList<T>::range_mut (line 513) ... ok
[INFO] [stdout] test src/skiplist.rs - skiplist::SkipList<T>::push_back (line 179) ... ok
[INFO] [stdout] test src/skiplist.rs - skiplist::SkipList<T>::range (line 488) ... ok
[INFO] [stdout] test src/skiplist.rs - skiplist::SkipList<T>::push_front (line 164) ... ok
[INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap<K,V>::back_mut (line 262) ... ok
[INFO] [stdout] test src/skiplist.rs - skiplist::SkipList<T>::retain (line 412) ... ok
[INFO] [stdout] test src/skiplist.rs - skiplist::SkipList<T>::upper_bound (line 567) ... ok
[INFO] [stdout] test src/skiplist.rs - skiplist::SkipList<T>::remove (line 387) ... ok
[INFO] [stdout] test src/skiplist.rs - skiplist::SkipList<T>::with_capacity (line 61) ... ok
[INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap<K,V>::back (line 239) ... ok
[INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap<K,V>::clear (line 143) ... ok
[INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap<K,V>::contains_key (line 384) ... ok
[INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap<K,V>::get_mut (line 305) ... ok
[INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap<K,V>::front_mut (line 219) ... ok
[INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap<K,V>::is_empty (line 177) ... ok
[INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap<K,V>::insert (line 112) ... ok
[INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap<K,V>::front (line 196) ... ok
[INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap<K,V>::get (line 282) ... ok
[INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap<K,V>::into_iter (line 458) ... ok
[INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap<K,V>::new (line 69) ... ok
[INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap<K,V>::iter (line 477) ... ok
[INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap<K,V>::pop_front (line 334) ... ok
[INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap<K,V>::len (line 161) ... ok
[INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap<K,V>::keys (line 515) ... ok
[INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap<K,V>::pop_back (line 359) ... ok
[INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap<K,V>::range (line 553) ... ok
[INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap<K,V>::iter_mut (line 497) ... ok
[INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap<K,V>::remove_index (line 436) ... ok
[INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap<K,V>::lower_bound (line 598) ... ok
[INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap<K,V>::with_capacity (line 91) ... ok
[INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap<K,V>::values (line 532) ... ok
[INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap<K,V>::remove (line 405) ... ok
[INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap<K,V>::upper_bound (line 624) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 75 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 7.78s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "01267cf3f82ac794adbe8c59b437ba14f73bb6ec6ba70c64026c7a9bfa22e727", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "01267cf3f82ac794adbe8c59b437ba14f73bb6ec6ba70c64026c7a9bfa22e727", kill_on_drop: false }`
[INFO] [stdout] 01267cf3f82ac794adbe8c59b437ba14f73bb6ec6ba70c64026c7a9bfa22e727
