[INFO] fetching crate xskiplist 0.1.0... [INFO] testing xskiplist-0.1.0 against beta-2025-09-21 for beta-1.91-3 [INFO] extracting crate xskiplist 0.1.0 into /workspace/builds/worker-6-tc2/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-6-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate xskiplist 0.1.0 on toolchain beta-2025-09-21 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "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" "+beta-2025-09-21" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 75 packages to latest compatible versions [INFO] [stderr] Adding criterion v0.3.6 (available: v0.7.0) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 032eeca2499fb95cfc6da7c0d16b72ce26d2387174959fb6a4bb38984ebe8267 [INFO] running `Command { std: "docker" "start" "-a" "032eeca2499fb95cfc6da7c0d16b72ce26d2387174959fb6a4bb38984ebe8267", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "032eeca2499fb95cfc6da7c0d16b72ce26d2387174959fb6a4bb38984ebe8267", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "032eeca2499fb95cfc6da7c0d16b72ce26d2387174959fb6a4bb38984ebe8267", kill_on_drop: false }` [INFO] [stdout] 032eeca2499fb95cfc6da7c0d16b72ce26d2387174959fb6a4bb38984ebe8267 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 6dc6125d5bcbe4c82781bc114b60d38a07c07e60e71e6cc62feb71377b7e2842 [INFO] running `Command { std: "docker" "start" "-a" "6dc6125d5bcbe4c82781bc114b60d38a07c07e60e71e6cc62feb71377b7e2842", kill_on_drop: false }` [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::(); [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 { [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 { [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 { [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> { [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> { [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` [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` [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` [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` [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` [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>>>` [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 { [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 { [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, max: Bound) -> Iter { [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, max: Bound) -> 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, max: Bound) -> IterMut { [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, max: Bound) -> 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 { [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 { [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 { [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 { [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 { [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 { [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(&self, min: Bound<&Q>, max: Bound<&Q>) -> Iter [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(&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(&self, min: Bound<&Q>, max: Bound<&Q>) -> Option> [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(&self, min: Bound<&Q>, max: Bound<&Q>) -> Option> [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` [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` [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>>>` [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 0.48s [INFO] running `Command { std: "docker" "inspect" "6dc6125d5bcbe4c82781bc114b60d38a07c07e60e71e6cc62feb71377b7e2842", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6dc6125d5bcbe4c82781bc114b60d38a07c07e60e71e6cc62feb71377b7e2842", kill_on_drop: false }` [INFO] [stdout] 6dc6125d5bcbe4c82781bc114b60d38a07c07e60e71e6cc62feb71377b7e2842 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 9fd41ee7f3bf4c5a2bba99f5f72e34361ce14ed69bbfd58e4fd0e2009da7d031 [INFO] running `Command { std: "docker" "start" "-a" "9fd41ee7f3bf4c5a2bba99f5f72e34361ce14ed69bbfd58e4fd0e2009da7d031", kill_on_drop: false }` [INFO] [stderr] Compiling csv-core v0.1.12 [INFO] [stderr] Compiling half v1.8.3 [INFO] [stderr] Compiling clap v2.34.0 [INFO] [stderr] Compiling tinytemplate v1.2.1 [INFO] [stderr] Compiling criterion-plot v0.4.5 [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::(); [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 { [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 { [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 { [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> { [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> { [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` [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` [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` [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` [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` [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>>>` [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 { [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 { [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, max: Bound) -> Iter { [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, max: Bound) -> 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, max: Bound) -> IterMut { [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, max: Bound) -> 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 { [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 { [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 { [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 { [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 { [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 { [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(&self, min: Bound<&Q>, max: Bound<&Q>) -> Iter [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(&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(&self, min: Bound<&Q>, max: Bound<&Q>) -> Option> [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(&self, min: Bound<&Q>, max: Bound<&Q>) -> Option> [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` [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` [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>>>` [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.3.1 [INFO] [stderr] Compiling serde_cbor v0.11.2 [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::(); [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 { [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 { [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 { [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> { [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> { [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` [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` [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` [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` [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` [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>>>` [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 { [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 { [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, max: Bound) -> Iter { [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, max: Bound) -> 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, max: Bound) -> IterMut { [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, max: Bound) -> 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 { [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 { [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 { [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 { [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 { [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 { [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(&self, min: Bound<&Q>, max: Bound<&Q>) -> Iter [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(&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(&self, min: Bound<&Q>, max: Bound<&Q>) -> Option> [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(&self, min: Bound<&Q>, max: Bound<&Q>) -> Option> [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` [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` [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>>>` [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` [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>>>` [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` [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` [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` [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` [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 5.59s [INFO] running `Command { std: "docker" "inspect" "9fd41ee7f3bf4c5a2bba99f5f72e34361ce14ed69bbfd58e4fd0e2009da7d031", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9fd41ee7f3bf4c5a2bba99f5f72e34361ce14ed69bbfd58e4fd0e2009da7d031", kill_on_drop: false }` [INFO] [stdout] 9fd41ee7f3bf4c5a2bba99f5f72e34361ce14ed69bbfd58e4fd0e2009da7d031 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] e8a11fa857f4b0d2ecf5123954403e49f0ad49e8c56726df2aaff797944e98f3 [INFO] running `Command { std: "docker" "start" "-a" "e8a11fa857f4b0d2ecf5123954403e49f0ad49e8c56726df2aaff797944e98f3", 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::(); [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 { [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 { [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 { [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> { [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> { [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` [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` [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` [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` [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` [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>>>` [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 { [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 { [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, max: Bound) -> Iter { [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, max: Bound) -> 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, max: Bound) -> IterMut { [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, max: Bound) -> 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 { [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 { [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 { [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 { [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 { [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 { [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(&self, min: Bound<&Q>, max: Bound<&Q>) -> Iter [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(&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(&self, min: Bound<&Q>, max: Bound<&Q>) -> Option> [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(&self, min: Bound<&Q>, max: Bound<&Q>) -> Option> [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` [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` [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>>>` [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` [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>>>` [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>>>` [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` [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>>>` [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` [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` [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` [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` [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.05s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/xskiplist-bb19146e4bbd0485) [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::bound ... ok [INFO] [stdout] test ordered_skiplist::tests::clear ... ok [INFO] [stdout] test ordered_skiplist::tests::debug_display ... ok [INFO] [stdout] test ordered_skiplist::tests::contains ... ok [INFO] [stdout] test ordered_skiplist::tests::equality ... ok [INFO] [stdout] test ordered_skiplist::tests::range_small ... ok [INFO] [stdout] test ordered_skiplist::tests::sort_by ... ok [INFO] [stdout] test ordered_skiplist::tests::range_1000 ... ok [INFO] [stdout] test ordered_skiplist::tests::with_comp ... ok [INFO] [stdout] test skiplist::tests::append_test ... ok [INFO] [stdout] test ordered_skiplist::tests::remove ... 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 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::sort_by_panic - should panic ... ok [INFO] [stdout] test skiplist::tests::equality ... ok [INFO] [stdout] test ordered_skiplist::tests::index_pop ... ok [INFO] [stdout] test skiplist::tests::insert_rand ... ok [INFO] [stdout] test skiplist::tests::insert_repeat ... ok [INFO] [stdout] test skiplist::tests::inplace_mut ... ok [INFO] [stdout] test skiplist::tests::last ... ok [INFO] [stdout] test skiplist::tests::push_back ... ok [INFO] [stdout] test skiplist::tests::push_front ... ok [INFO] [stdout] test ordered_skiplist::tests::remove_index ... ok [INFO] [stdout] test skiplist::tests::range_1000 ... ok [INFO] [stdout] test skiplist::tests::index_pop ... ok [INFO] [stdout] test skiplist::tests::range_small ... ok [INFO] [stdout] test ordered_skiplist::tests::iter_rev ... ok [INFO] [stdout] test skiplist::tests::range_mut_1000 ... ok [INFO] [stdout] test ordered_skiplist::tests::iter ... ok [INFO] [stdout] test skipmap::tests::basic_small ... ok [INFO] [stdout] test skipmap::tests::bound ... ok [INFO] [stdout] test skiplist::tests::remove_rand ... ok [INFO] [stdout] test skipmap::tests::clear ... ok [INFO] [stdout] test skipmap::tests::contains ... ok [INFO] [stdout] test skipmap::tests::debug_display ... ok [INFO] [stdout] test ordered_skiplist::tests::retain ... ok [INFO] [stdout] test skipmap::tests::equality ... ok [INFO] [stdout] test skipmap::tests::insert_existing ... ok [INFO] [stdout] test ordered_skiplist::tests::iter_mixed ... ok [INFO] [stdout] test ordered_skiplist::tests::dedup ... ok [INFO] [stdout] test ordered_skiplist::tests::basic_large ... ok [INFO] [stdout] test skipmap::tests::iter_rev ... ok [INFO] [stdout] test skipmap::tests::iter_key_val ... ok [INFO] [stdout] test skipmap::tests::range_small ... ok [INFO] [stdout] test skipmap::tests::iter_mixed ... ok [INFO] [stdout] test skipnode::test::miri_test_check ... ok [INFO] [stdout] test skipmap::tests::range_1000 ... 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_iter ... ok [INFO] [stdout] test skipnode::test::miri_test_iter_mut ... ok [INFO] [stdout] test skipnode::test::miri_test_remove ... ok [INFO] [stdout] test skiplist::tests::iter ... ok [INFO] [stdout] test skipnode::test::test_covariance ... ok [INFO] [stdout] test skipnode::test::miri_test_retain ... ok [INFO] [stdout] test skipnode::test::test_level_index ... ok [INFO] [stdout] test skipnode::test::test_level_required ... ok [INFO] [stdout] test skipnode::test::miri_test_into_iter ... ok [INFO] [stdout] test skiplist::tests::iter_mixed ... ok [INFO] [stdout] test skiplist::tests::iter_rev ... ok [INFO] [stdout] test skiplist::tests::dedup ... ok [INFO] [stdout] test skipmap::tests::index_pop ... ok [INFO] [stdout] test ordered_skiplist::tests::pop ... ok [INFO] [stdout] test skipmap::tests::iter ... ok [INFO] [stdout] test skipmap::tests::remove_index ... 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] [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 0.56s [INFO] [stdout] [INFO] [stderr] Doc-tests xskiplist [INFO] [stdout] [INFO] [stdout] running 75 tests [INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList::front (line 302) ... ok [INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList::clear (line 228) ... ok [INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList::len (line 246) ... ok [INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList::get (line 351) ... ok [INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList::dedup (line 555) ... ok [INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList::back (line 326) ... ok [INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList::insert (line 280) ... ok [INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList::into_iter (line 575) ... ok [INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList::contains (line 425) ... ok [INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList::new (line 69) ... ok [INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList::range (line 616) ... ok [INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList::lower_bound (line 653) ... ok [INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList::is_empty (line 262) ... ok [INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList::iter (line 594) ... ok [INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList::pop_front (line 375) ... ok [INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList::pop_back (line 400) ... ok [INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList::with_comp (line 146) ... ok [INFO] [stdout] test src/skiplist.rs - skiplist::SkipList::back (line 244) ... ok [INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList::remove_first (line 480) ... ok [INFO] [stdout] test src/skiplist.rs - skiplist::SkipList::front (line 196) ... ok [INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList::retain (line 536) ... ok [INFO] [stdout] test src/skiplist.rs - skiplist::SkipList::contains (line 608) ... ok [INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList::with_capacity (line 102) ... ok [INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList::remove_index (line 512) ... ok [INFO] [stdout] test src/skiplist.rs - skiplist::SkipList::back_mut (line 269) ... ok [INFO] [stdout] test src/skiplist.rs - skiplist::SkipList::clear (line 82) ... ok [INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList::remove (line 454) ... ok [INFO] [stdout] test src/skiplist.rs - skiplist::SkipList::dedup (line 624) ... ok [INFO] [stdout] test src/skiplist.rs - skiplist::SkipList::get (line 294) ... ok [INFO] [stdout] test src/ordered_skiplist.rs - ordered_skiplist::OrderedSkipList::upper_bound (line 676) ... ok [INFO] [stdout] test src/skiplist.rs - skiplist::SkipList::get_mut (line 313) ... ok [INFO] [stdout] test src/skiplist.rs - skiplist::SkipList::front_mut (line 220) ... ok [INFO] [stdout] test src/skiplist.rs - skiplist::SkipList::len (line 100) ... ok [INFO] [stdout] test src/skiplist.rs - skiplist::SkipList::insert (line 139) ... ok [INFO] [stdout] test src/skiplist.rs - skiplist::SkipList::push_front (line 164) ... ok [INFO] [stdout] test src/skiplist.rs - skiplist::SkipList::into_iter (line 430) ... ok [INFO] [stdout] test src/skiplist.rs - skiplist::SkipList::new (line 39) ... ok [INFO] [stdout] test src/skiplist.rs - skiplist::SkipList::iter_mut (line 466) ... ok [INFO] [stdout] test src/skiplist.rs - skiplist::SkipList::pop_front (line 333) ... ok [INFO] [stdout] test src/skiplist.rs - skiplist::SkipList::pop_back (line 358) ... ok [INFO] [stdout] test src/skiplist.rs - skiplist::SkipList::lower_bound (line 544) ... ok [INFO] [stdout] test src/skiplist.rs - skiplist::SkipList::is_empty (line 116) ... ok [INFO] [stdout] test src/skiplist.rs - skiplist::SkipList::push_back (line 179) ... ok [INFO] [stdout] test src/skiplist.rs - skiplist::SkipList::remove (line 387) ... ok [INFO] [stdout] test src/skiplist.rs - skiplist::SkipList::range_mut (line 513) ... ok [INFO] [stdout] test src/skiplist.rs - skiplist::SkipList::range (line 488) ... ok [INFO] [stdout] test src/skiplist.rs - skiplist::SkipList::iter (line 449) ... ok [INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap::back (line 239) ... ok [INFO] [stdout] test src/skiplist.rs - skiplist::SkipList::retain (line 412) ... ok [INFO] [stdout] test src/skiplist.rs - skiplist::SkipList::with_capacity (line 61) ... ok [INFO] [stdout] test src/skiplist.rs - skiplist::SkipList::upper_bound (line 567) ... ok [INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap::insert (line 112) ... ok [INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap::front (line 196) ... ok [INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap::into_iter (line 458) ... ok [INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap::back_mut (line 262) ... ok [INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap::iter (line 477) ... ok [INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap::is_empty (line 177) ... ok [INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap::get_mut (line 305) ... ok [INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap::contains_key (line 384) ... ok [INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap::clear (line 143) ... ok [INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap::front_mut (line 219) ... ok [INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap::new (line 69) ... ok [INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap::get (line 282) ... ok [INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap::lower_bound (line 598) ... ok [INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap::keys (line 515) ... ok [INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap::iter_mut (line 497) ... ok [INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap::pop_back (line 359) ... ok [INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap::len (line 161) ... ok [INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap::remove (line 405) ... ok [INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap::pop_front (line 334) ... ok [INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap::remove_index (line 436) ... ok [INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap::with_capacity (line 91) ... ok [INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap::upper_bound (line 624) ... ok [INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap::range (line 553) ... ok [INFO] [stdout] test src/skipmap.rs - skipmap::SkipMap::values (line 532) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 75 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.87s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "e8a11fa857f4b0d2ecf5123954403e49f0ad49e8c56726df2aaff797944e98f3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e8a11fa857f4b0d2ecf5123954403e49f0ad49e8c56726df2aaff797944e98f3", kill_on_drop: false }` [INFO] [stdout] e8a11fa857f4b0d2ecf5123954403e49f0ad49e8c56726df2aaff797944e98f3