[INFO] fetching crate stable-skiplist 0.1.1... [INFO] checking stable-skiplist-0.1.1 against try#c659ee110de67e82444e4b6c8407c1a9af9c2cf6 for pr-145608-1 [INFO] extracting crate stable-skiplist 0.1.1 into /workspace/builds/worker-2-tc2/source [INFO] started tweaking crates.io crate stable-skiplist 0.1.1 [INFO] finished tweaking crates.io crate stable-skiplist 0.1.1 [INFO] tweaked toml for crates.io crate stable-skiplist 0.1.1 written to /workspace/builds/worker-2-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate stable-skiplist 0.1.1 on toolchain c659ee110de67e82444e4b6c8407c1a9af9c2cf6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c659ee110de67e82444e4b6c8407c1a9af9c2cf6" "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" "+c659ee110de67e82444e4b6c8407c1a9af9c2cf6" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Locking 10 packages to latest compatible versions [INFO] [stderr] Adding rand v0.3.23 (available: v0.9.2) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c659ee110de67e82444e4b6c8407c1a9af9c2cf6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+c659ee110de67e82444e4b6c8407c1a9af9c2cf6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 7e41bb51738d77fff53885ab49c2ab468d34206b04119632b9a9b57cdfa74f70 [INFO] running `Command { std: "docker" "start" "-a" "7e41bb51738d77fff53885ab49c2ab468d34206b04119632b9a9b57cdfa74f70", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "7e41bb51738d77fff53885ab49c2ab468d34206b04119632b9a9b57cdfa74f70", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7e41bb51738d77fff53885ab49c2ab468d34206b04119632b9a9b57cdfa74f70", kill_on_drop: false }` [INFO] [stdout] 7e41bb51738d77fff53885ab49c2ab468d34206b04119632b9a9b57cdfa74f70 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+c659ee110de67e82444e4b6c8407c1a9af9c2cf6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 9b5d7f78b4f08aa05e06082ea70e82f5dbf002e5ef07ef823f61c091dde5f343 [INFO] running `Command { std: "docker" "start" "-a" "9b5d7f78b4f08aa05e06082ea70e82f5dbf002e5ef07ef823f61c091dde5f343", kill_on_drop: false }` [INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024 [INFO] [stderr] Checking rand v0.4.6 [INFO] [stderr] Checking rand v0.3.23 [INFO] [stderr] Checking stable-skiplist v0.1.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: unexpected `cfg` condition value: `bench` [INFO] [stdout] --> src/ordered_skiplist.rs:1878:17 [INFO] [stdout] | [INFO] [stdout] 1878 | #[cfg(all(test, feature="bench"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: expected values for `feature` are: `unstable` [INFO] [stdout] = help: consider adding `bench` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/ordered_skiplist.rs:1415:9 [INFO] [stdout] | [INFO] [stdout] 1415 | try!(write!(f, "[")); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/ordered_skiplist.rs:1421:13 [INFO] [stdout] | [INFO] [stdout] 1421 | try!(write!(f, "{:?}", entry)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/ordered_skiplist.rs:1419:17 [INFO] [stdout] | [INFO] [stdout] 1419 | try!(write!(f, ", ")); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/ordered_skiplist.rs:1430:9 [INFO] [stdout] | [INFO] [stdout] 1430 | try!(write!(f, "[")); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/ordered_skiplist.rs:1436:13 [INFO] [stdout] | [INFO] [stdout] 1436 | try!(write!(f, "{}", entry)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/ordered_skiplist.rs:1434:17 [INFO] [stdout] | [INFO] [stdout] 1434 | try!(write!(f, ", ")); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `bench` [INFO] [stdout] --> src/skipmap.rs:1944:17 [INFO] [stdout] | [INFO] [stdout] 1944 | #[cfg(all(test, feature="bench"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: expected values for `feature` are: `unstable` [INFO] [stdout] = help: consider adding `bench` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/skipmap.rs:1356:9 [INFO] [stdout] | [INFO] [stdout] 1356 | try!(write!(f, "[")); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/skipmap.rs:1362:13 [INFO] [stdout] | [INFO] [stdout] 1362 | try!(write!(f, "({:?}, {:?})", k, v)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/skipmap.rs:1360:17 [INFO] [stdout] | [INFO] [stdout] 1360 | try!(write!(f, ", ")); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/skipmap.rs:1373:9 [INFO] [stdout] | [INFO] [stdout] 1373 | try!(write!(f, "[")); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/skipmap.rs:1379:13 [INFO] [stdout] | [INFO] [stdout] 1379 | try!(write!(f, "({}, {})", k, v)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/skipmap.rs:1377:17 [INFO] [stdout] | [INFO] [stdout] 1377 | try!(write!(f, ", ")); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `bench` [INFO] [stdout] --> src/skiplist.rs:1671:17 [INFO] [stdout] | [INFO] [stdout] 1671 | #[cfg(all(test, feature="bench"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: expected values for `feature` are: `unstable` [INFO] [stdout] = help: consider adding `bench` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/skiplist.rs:1156:9 [INFO] [stdout] | [INFO] [stdout] 1156 | try!(write!(f, "[")); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/skiplist.rs:1162:13 [INFO] [stdout] | [INFO] [stdout] 1162 | try!(write!(f, "{:?}", entry)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/skiplist.rs:1160:17 [INFO] [stdout] | [INFO] [stdout] 1160 | try!(write!(f, ", ")); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/skiplist.rs:1171:9 [INFO] [stdout] | [INFO] [stdout] 1171 | try!(write!(f, "[")); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/skiplist.rs:1177:13 [INFO] [stdout] | [INFO] [stdout] 1177 | try!(write!(f, "{}", entry)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/skiplist.rs:1175:17 [INFO] [stdout] | [INFO] [stdout] 1175 | try!(write!(f, ", ")); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ordered_skiplist.rs:44:18 [INFO] [stdout] | [INFO] [stdout] 44 | compare: Box Ordering>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 44 | compare: Box Ordering>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `bench` [INFO] [stdout] --> src/ordered_skiplist.rs:1878:17 [INFO] [stdout] | [INFO] [stdout] 1878 | #[cfg(all(test, feature="bench"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: expected values for `feature` are: `unstable` [INFO] [stdout] = help: consider adding `bench` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/ordered_skiplist.rs:1415:9 [INFO] [stdout] | [INFO] [stdout] 1415 | try!(write!(f, "[")); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/ordered_skiplist.rs:1421:13 [INFO] [stdout] | [INFO] [stdout] 1421 | try!(write!(f, "{:?}", entry)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/ordered_skiplist.rs:1419:17 [INFO] [stdout] | [INFO] [stdout] 1419 | try!(write!(f, ", ")); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/ordered_skiplist.rs:1430:9 [INFO] [stdout] | [INFO] [stdout] 1430 | try!(write!(f, "[")); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/ordered_skiplist.rs:1436:13 [INFO] [stdout] | [INFO] [stdout] 1436 | try!(write!(f, "{}", entry)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/ordered_skiplist.rs:1434:17 [INFO] [stdout] | [INFO] [stdout] 1434 | try!(write!(f, ", ")); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `bench` [INFO] [stdout] --> src/skipmap.rs:1944:17 [INFO] [stdout] | [INFO] [stdout] 1944 | #[cfg(all(test, feature="bench"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: expected values for `feature` are: `unstable` [INFO] [stdout] = help: consider adding `bench` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/skipmap.rs:1356:9 [INFO] [stdout] | [INFO] [stdout] 1356 | try!(write!(f, "[")); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/skipmap.rs:1362:13 [INFO] [stdout] | [INFO] [stdout] 1362 | try!(write!(f, "({:?}, {:?})", k, v)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/skipmap.rs:1360:17 [INFO] [stdout] | [INFO] [stdout] 1360 | try!(write!(f, ", ")); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/skipmap.rs:1373:9 [INFO] [stdout] | [INFO] [stdout] 1373 | try!(write!(f, "[")); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/skipmap.rs:1379:13 [INFO] [stdout] | [INFO] [stdout] 1379 | try!(write!(f, "({}, {})", k, v)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/skipmap.rs:1377:17 [INFO] [stdout] | [INFO] [stdout] 1377 | try!(write!(f, ", ")); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `bench` [INFO] [stdout] --> src/skiplist.rs:1671:17 [INFO] [stdout] | [INFO] [stdout] 1671 | #[cfg(all(test, feature="bench"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: expected values for `feature` are: `unstable` [INFO] [stdout] = help: consider adding `bench` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/skiplist.rs:1156:9 [INFO] [stdout] | [INFO] [stdout] 1156 | try!(write!(f, "[")); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/skiplist.rs:1162:13 [INFO] [stdout] | [INFO] [stdout] 1162 | try!(write!(f, "{:?}", entry)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/skiplist.rs:1160:17 [INFO] [stdout] | [INFO] [stdout] 1160 | try!(write!(f, ", ")); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/skiplist.rs:1171:9 [INFO] [stdout] | [INFO] [stdout] 1171 | try!(write!(f, "[")); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/skiplist.rs:1177:13 [INFO] [stdout] | [INFO] [stdout] 1177 | try!(write!(f, "{}", entry)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/skiplist.rs:1175:17 [INFO] [stdout] | [INFO] [stdout] 1175 | try!(write!(f, ", ")); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ordered_skiplist.rs:44:18 [INFO] [stdout] | [INFO] [stdout] 44 | compare: Box Ordering>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 44 | compare: Box Ordering>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ordered_skiplist.rs:81:24 [INFO] [stdout] | [INFO] [stdout] 81 | })) as Box Ordering>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 81 | })) as Box Ordering>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ordered_skiplist.rs:115:24 [INFO] [stdout] | [INFO] [stdout] 115 | })) as Box Ordering>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 115 | })) as Box Ordering>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ordered_skiplist.rs:81:24 [INFO] [stdout] | [INFO] [stdout] 81 | })) as Box Ordering>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 81 | })) as Box Ordering>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ordered_skiplist.rs:115:24 [INFO] [stdout] | [INFO] [stdout] 115 | })) as Box Ordering>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 115 | })) as Box Ordering>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:206:32 [INFO] [stdout] | [INFO] [stdout] 206 | while let Some(next) = (*node).links[0] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:206:32 [INFO] [stdout] | [INFO] [stdout] 206 | while let Some(next) = (*node).links[0] { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[deny(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] 206 | while let Some(next) = (&(*node).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/ordered_skiplist.rs:236:17 [INFO] [stdout] | [INFO] [stdout] 236 | mem::replace(&mut (*node).next, mem::replace(&mut next.next, None)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 236 | let _ = mem::replace(&mut (*node).next, mem::replace(&mut next.next, None)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/ordered_skiplist.rs:241:9 [INFO] [stdout] | [INFO] [stdout] 241 | mem::replace(&mut self.head, new_head); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 241 | let _ = mem::replace(&mut self.head, new_head); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:310:40 [INFO] [stdout] | [INFO] [stdout] 310 | while let Some(next) = (*insert_node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:310:40 [INFO] [stdout] | [INFO] [stdout] 310 | while let Some(next) = (*insert_node).links[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] 310 | while let Some(next) = (&(*insert_node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:325:43 [INFO] [stdout] | [INFO] [stdout] 325 | new_node.links[lvl] = (*insert_node).links[lvl]; [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:325:43 [INFO] [stdout] | [INFO] [stdout] 325 | new_node.links[lvl] = (*insert_node).links[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] 325 | new_node.links[lvl] = (&(*insert_node).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:326:21 [INFO] [stdout] | [INFO] [stdout] 326 | (*insert_node).links[lvl] = Some(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/ordered_skiplist.rs:326:21 [INFO] [stdout] | [INFO] [stdout] 326 | (*insert_node).links[lvl] = Some(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] 326 | (&mut (*insert_node).links)[lvl] = Some(new_node_ptr); [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:328:21 [INFO] [stdout] | [INFO] [stdout] 328 | (*insert_node).links_len[lvl] += 1; [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/ordered_skiplist.rs:328:21 [INFO] [stdout] | [INFO] [stdout] 328 | (*insert_node).links_len[lvl] += 1; [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] 328 | (&mut (*insert_node).links_len)[lvl] += 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:336:21 [INFO] [stdout] | [INFO] [stdout] 336 | (*insert_node).links_len[lvl] = if (*insert_node).is_head() { [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/ordered_skiplist.rs:336:21 [INFO] [stdout] | [INFO] [stdout] 336 | (*insert_node).links_len[lvl] = if (*insert_node).is_head() { [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] 336 | (&mut (*insert_node).links_len)[lvl] = if (*insert_node).is_head() { [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:344:47 [INFO] [stdout] | [INFO] [stdout] 344 | new_node.links_len[lvl] = (*insert_node).links_len[lvl] - length + 1; [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: `&Vec` [INFO] [stdout] --> src/ordered_skiplist.rs:344:47 [INFO] [stdout] | [INFO] [stdout] 344 | new_node.links_len[lvl] = (*insert_node).links_len[lvl] - length + 1; [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] 344 | new_node.links_len[lvl] = (&(*insert_node).links_len)[lvl] - length + 1; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:345:21 [INFO] [stdout] | [INFO] [stdout] 345 | (*insert_node).links_len[lvl] = length; [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/ordered_skiplist.rs:345:21 [INFO] [stdout] | [INFO] [stdout] 345 | (*insert_node).links_len[lvl] = length; [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] 345 | (&mut (*insert_node).links_len)[lvl] = length; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:503:40 [INFO] [stdout] | [INFO] [stdout] 503 | while let Some(next) = (*node).links[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:503:40 [INFO] [stdout] | [INFO] [stdout] 503 | while let Some(next) = (*node).links[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] 503 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:562:44 [INFO] [stdout] | [INFO] [stdout] 562 | while let Some(next) = (*node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:562:44 [INFO] [stdout] | [INFO] [stdout] 562 | while let Some(next) = (*node).links[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] 562 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:571:44 [INFO] [stdout] | [INFO] [stdout] 571 | while let Some(next) = (*node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:571:44 [INFO] [stdout] | [INFO] [stdout] 571 | while let Some(next) = (*node).links[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] 571 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:592:24 [INFO] [stdout] | [INFO] [stdout] 592 | if (*node).links[lvl].is_none() { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:592:24 [INFO] [stdout] | [INFO] [stdout] 592 | if (*node).links[lvl].is_none() { [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] 592 | if (&(*node).links)[lvl].is_none() { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:603:24 [INFO] [stdout] | [INFO] [stdout] 603 | if (*prev_node).links[lvl] == Some(return_node) { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:603:24 [INFO] [stdout] | [INFO] [stdout] 603 | if (*prev_node).links[lvl] == Some(return_node) { [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] 603 | if (&(*prev_node).links)[lvl] == Some(return_node) { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:604:51 [INFO] [stdout] | [INFO] [stdout] 604 | (*prev_node).links[lvl] = (*return_node).links[lvl]; [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:604:51 [INFO] [stdout] | [INFO] [stdout] 604 | (*prev_node).links[lvl] = (*return_node).links[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] 604 | (*prev_node).links[lvl] = (&(*return_node).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:604:25 [INFO] [stdout] | [INFO] [stdout] 604 | (*prev_node).links[lvl] = (*return_node).links[lvl]; [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/ordered_skiplist.rs:604:25 [INFO] [stdout] | [INFO] [stdout] 604 | (*prev_node).links[lvl] = (*return_node).links[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] 604 | (&mut (*prev_node).links)[lvl] = (*return_node).links[lvl]; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:605:56 [INFO] [stdout] | [INFO] [stdout] 605 | (*prev_node).links_len[lvl] += (*return_node).links_len[lvl] - 1; [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: `&Vec` [INFO] [stdout] --> src/ordered_skiplist.rs:605:56 [INFO] [stdout] | [INFO] [stdout] 605 | (*prev_node).links_len[lvl] += (*return_node).links_len[lvl] - 1; [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] 605 | (*prev_node).links_len[lvl] += (&(*return_node).links_len)[lvl] - 1; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:605:25 [INFO] [stdout] | [INFO] [stdout] 605 | (*prev_node).links_len[lvl] += (*return_node).links_len[lvl] - 1; [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/ordered_skiplist.rs:605:25 [INFO] [stdout] | [INFO] [stdout] 605 | (*prev_node).links_len[lvl] += (*return_node).links_len[lvl] - 1; [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] 605 | (&mut (*prev_node).links_len)[lvl] += (*return_node).links_len[lvl] - 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:607:25 [INFO] [stdout] | [INFO] [stdout] 607 | (*prev_node).links_len[lvl] -= 1; [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/ordered_skiplist.rs:607:25 [INFO] [stdout] | [INFO] [stdout] 607 | (*prev_node).links_len[lvl] -= 1; [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] 607 | (&mut (*prev_node).links_len)[lvl] -= 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:610:42 [INFO] [stdout] | [INFO] [stdout] 610 | if let Some(next_node) = (*return_node).links[0] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:610:42 [INFO] [stdout] | [INFO] [stdout] 610 | if let Some(next_node) = (*return_node).links[0] { [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] 610 | if let Some(next_node) = (&(*return_node).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:667:44 [INFO] [stdout] | [INFO] [stdout] 667 | while let Some(next) = (*node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:667:44 [INFO] [stdout] | [INFO] [stdout] 667 | while let Some(next) = (*node).links[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] 667 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:676:44 [INFO] [stdout] | [INFO] [stdout] 676 | while let Some(next) = (*node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:676:44 [INFO] [stdout] | [INFO] [stdout] 676 | while let Some(next) = (*node).links[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] 676 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:702:24 [INFO] [stdout] | [INFO] [stdout] 702 | if (*node).links[lvl].is_none() { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:702:24 [INFO] [stdout] | [INFO] [stdout] 702 | if (*node).links[lvl].is_none() { [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] 702 | if (&(*node).links)[lvl].is_none() { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:711:24 [INFO] [stdout] | [INFO] [stdout] 711 | if (*prev_node).links[lvl] == Some(return_node) { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:711:24 [INFO] [stdout] | [INFO] [stdout] 711 | if (*prev_node).links[lvl] == Some(return_node) { [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] 711 | if (&(*prev_node).links)[lvl] == Some(return_node) { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:712:51 [INFO] [stdout] | [INFO] [stdout] 712 | (*prev_node).links[lvl] = (*return_node).links[lvl]; [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:712:51 [INFO] [stdout] | [INFO] [stdout] 712 | (*prev_node).links[lvl] = (*return_node).links[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] 712 | (*prev_node).links[lvl] = (&(*return_node).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:712:25 [INFO] [stdout] | [INFO] [stdout] 712 | (*prev_node).links[lvl] = (*return_node).links[lvl]; [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/ordered_skiplist.rs:712:25 [INFO] [stdout] | [INFO] [stdout] 712 | (*prev_node).links[lvl] = (*return_node).links[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] 712 | (&mut (*prev_node).links)[lvl] = (*return_node).links[lvl]; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:713:56 [INFO] [stdout] | [INFO] [stdout] 713 | (*prev_node).links_len[lvl] += (*return_node).links_len[lvl] - 1; [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: `&Vec` [INFO] [stdout] --> src/ordered_skiplist.rs:713:56 [INFO] [stdout] | [INFO] [stdout] 713 | (*prev_node).links_len[lvl] += (*return_node).links_len[lvl] - 1; [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] 713 | (*prev_node).links_len[lvl] += (&(*return_node).links_len)[lvl] - 1; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:713:25 [INFO] [stdout] | [INFO] [stdout] 713 | (*prev_node).links_len[lvl] += (*return_node).links_len[lvl] - 1; [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/ordered_skiplist.rs:713:25 [INFO] [stdout] | [INFO] [stdout] 713 | (*prev_node).links_len[lvl] += (*return_node).links_len[lvl] - 1; [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] 713 | (&mut (*prev_node).links_len)[lvl] += (*return_node).links_len[lvl] - 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:715:25 [INFO] [stdout] | [INFO] [stdout] 715 | (*prev_node).links_len[lvl] -= 1; [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/ordered_skiplist.rs:715:25 [INFO] [stdout] | [INFO] [stdout] 715 | (*prev_node).links_len[lvl] -= 1; [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] 715 | (&mut (*prev_node).links_len)[lvl] -= 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:718:42 [INFO] [stdout] | [INFO] [stdout] 718 | if let Some(next_node) = (*return_node).links[0] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:718:42 [INFO] [stdout] | [INFO] [stdout] 718 | if let Some(next_node) = (*return_node).links[0] { [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] 718 | if let Some(next_node) = (&(*return_node).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:759:41 [INFO] [stdout] | [INFO] [stdout] 759 | while &(index_sum + (*node).links_len[lvl]) < index { [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: `&Vec` [INFO] [stdout] --> src/ordered_skiplist.rs:759:41 [INFO] [stdout] | [INFO] [stdout] 759 | while &(index_sum + (*node).links_len[lvl]) < index { [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] 759 | while &(index_sum + (&(*node).links_len)[lvl]) < index { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:760:38 [INFO] [stdout] | [INFO] [stdout] 760 | index_sum += (*node).links_len[lvl]; [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: `&Vec` [INFO] [stdout] --> src/ordered_skiplist.rs:760:38 [INFO] [stdout] | [INFO] [stdout] 760 | index_sum += (*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] 760 | index_sum += (&(*node).links_len)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:761:32 [INFO] [stdout] | [INFO] [stdout] 761 | node = (*node).links[lvl].unwrap(); [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:761:32 [INFO] [stdout] | [INFO] [stdout] 761 | node = (*node).links[lvl].unwrap(); [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] 761 | node = (&(*node).links)[lvl].unwrap(); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:764:38 [INFO] [stdout] | [INFO] [stdout] 764 | if &(index_sum + (*node).links_len[lvl]) == index { [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: `&Vec` [INFO] [stdout] --> src/ordered_skiplist.rs:764:38 [INFO] [stdout] | [INFO] [stdout] 764 | if &(index_sum + (*node).links_len[lvl]) == index { [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] 764 | if &(index_sum + (&(*node).links_len)[lvl]) == index { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:765:45 [INFO] [stdout] | [INFO] [stdout] 765 | if let Some(next) = (*node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:765:45 [INFO] [stdout] | [INFO] [stdout] 765 | if let Some(next) = (*node).links[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] 765 | if let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:767:50 [INFO] [stdout] | [INFO] [stdout] 767 | ... (*node).links[lvl] = (*next).links[lvl]; [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:767:50 [INFO] [stdout] | [INFO] [stdout] 767 | ... (*node).links[lvl] = (*next).links[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] 767 | (*node).links[lvl] = (&(*next).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:767:29 [INFO] [stdout] | [INFO] [stdout] 767 | ... (*node).links[lvl] = (*next).links[lvl]; [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/ordered_skiplist.rs:767:29 [INFO] [stdout] | [INFO] [stdout] 767 | ... (*node).links[lvl] = (*next).links[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] 767 | (&mut (*node).links)[lvl] = (*next).links[lvl]; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:768:55 [INFO] [stdout] | [INFO] [stdout] 768 | ... (*node).links_len[lvl] += (*next).links_len[lvl] - 1; [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: `&Vec` [INFO] [stdout] --> src/ordered_skiplist.rs:768:55 [INFO] [stdout] | [INFO] [stdout] 768 | ... (*node).links_len[lvl] += (*next).links_len[lvl] - 1; [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] 768 | (*node).links_len[lvl] += (&(*next).links_len)[lvl] - 1; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:768:29 [INFO] [stdout] | [INFO] [stdout] 768 | ... (*node).links_len[lvl] += (*next).links_len[lvl] - 1; [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/ordered_skiplist.rs:768:29 [INFO] [stdout] | [INFO] [stdout] 768 | ... (*node).links_len[lvl] += (*next).links_len[lvl] - 1; [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] 768 | (&mut (*node).links_len)[lvl] += (*next).links_len[lvl] - 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:771:25 [INFO] [stdout] | [INFO] [stdout] 771 | (*node).links_len[lvl] -= 1; [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/ordered_skiplist.rs:771:25 [INFO] [stdout] | [INFO] [stdout] 771 | (*node).links_len[lvl] -= 1; [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] 771 | (&mut (*node).links_len)[lvl] -= 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:775:37 [INFO] [stdout] | [INFO] [stdout] 775 | if let Some(next) = (*return_node).links[0] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:775:37 [INFO] [stdout] | [INFO] [stdout] 775 | if let Some(next) = (*return_node).links[0] { [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] 775 | if let Some(next) = (&(*return_node).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:816:41 [INFO] [stdout] | [INFO] [stdout] 816 | if let Some(next) = (*node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:816:41 [INFO] [stdout] | [INFO] [stdout] 816 | if let Some(next) = (*node).links[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] 816 | if let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:819:54 [INFO] [stdout] | [INFO] [stdout] 819 | ... (*node).links[lvl] = (*next).links[lvl]; [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:819:54 [INFO] [stdout] | [INFO] [stdout] 819 | ... (*node).links[lvl] = (*next).links[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] 819 | (*node).links[lvl] = (&(*next).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:819:33 [INFO] [stdout] | [INFO] [stdout] 819 | ... (*node).links[lvl] = (*next).links[lvl]; [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/ordered_skiplist.rs:819:33 [INFO] [stdout] | [INFO] [stdout] 819 | ... (*node).links[lvl] = (*next).links[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] 819 | (&mut (*node).links)[lvl] = (*next).links[lvl]; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:829:69 [INFO] [stdout] | [INFO] [stdout] 829 | (*node).links_len[lvl] = self.link_length(node, (*node).links[lvl], lvl) [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:829:69 [INFO] [stdout] | [INFO] [stdout] 829 | (*node).links_len[lvl] = self.link_length(node, (*node).links[lvl], 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] 829 | (*node).links_len[lvl] = self.link_length(node, (&(*node).links)[lvl], lvl) [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:829:21 [INFO] [stdout] | [INFO] [stdout] 829 | (*node).links_len[lvl] = self.link_length(node, (*node).links[lvl], lvl) [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/ordered_skiplist.rs:829:21 [INFO] [stdout] | [INFO] [stdout] 829 | (*node).links_len[lvl] = self.link_length(node, (*node).links[lvl], 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] 829 | (&mut (*node).links_len)[lvl] = self.link_length(node, (*node).links[lvl], lvl) [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:832:41 [INFO] [stdout] | [INFO] [stdout] 832 | if let Some(next) = (*node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:832:41 [INFO] [stdout] | [INFO] [stdout] 832 | if let Some(next) = (*node).links[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] 832 | if let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:843:37 [INFO] [stdout] | [INFO] [stdout] 843 | if let Some(next) = (*node).links[0] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:843:37 [INFO] [stdout] | [INFO] [stdout] 843 | if let Some(next) = (*node).links[0] { [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] 843 | if let Some(next) = (&(*node).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/ordered_skiplist.rs:847:21 [INFO] [stdout] | [INFO] [stdout] 847 | mem::replace(&mut (*prev).next, mem::replace(&mut (*node).next, None)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 847 | let _ = mem::replace(&mut (*prev).next, mem::replace(&mut (*node).next, None)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:879:41 [INFO] [stdout] | [INFO] [stdout] 879 | if let Some(next) = (*node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:879:41 [INFO] [stdout] | [INFO] [stdout] 879 | if let Some(next) = (*node).links[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] 879 | if let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:883:58 [INFO] [stdout] | [INFO] [stdout] 883 | ... (*node).links[lvl] = (*next).links[lvl]; [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:883:58 [INFO] [stdout] | [INFO] [stdout] 883 | ... (*node).links[lvl] = (*next).links[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] 883 | (*node).links[lvl] = (&(*next).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:883:37 [INFO] [stdout] | [INFO] [stdout] 883 | ... (*node).links[lvl] = (*next).links[lvl]; [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/ordered_skiplist.rs:883:37 [INFO] [stdout] | [INFO] [stdout] 883 | ... (*node).links[lvl] = (*next).links[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] 883 | (&mut (*node).links)[lvl] = (*next).links[lvl]; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:897:54 [INFO] [stdout] | [INFO] [stdout] 897 | ... (*node).links[lvl] = (*next).links[lvl]; [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:897:54 [INFO] [stdout] | [INFO] [stdout] 897 | ... (*node).links[lvl] = (*next).links[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] 897 | (*node).links[lvl] = (&(*next).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:897:33 [INFO] [stdout] | [INFO] [stdout] 897 | ... (*node).links[lvl] = (*next).links[lvl]; [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/ordered_skiplist.rs:897:33 [INFO] [stdout] | [INFO] [stdout] 897 | ... (*node).links[lvl] = (*next).links[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] 897 | (&mut (*node).links)[lvl] = (*next).links[lvl]; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:904:69 [INFO] [stdout] | [INFO] [stdout] 904 | (*node).links_len[lvl] = self.link_length(node, (*node).links[lvl], lvl) [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:904:69 [INFO] [stdout] | [INFO] [stdout] 904 | (*node).links_len[lvl] = self.link_length(node, (*node).links[lvl], 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] 904 | (*node).links_len[lvl] = self.link_length(node, (&(*node).links)[lvl], lvl) [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:904:21 [INFO] [stdout] | [INFO] [stdout] 904 | (*node).links_len[lvl] = self.link_length(node, (*node).links[lvl], lvl) [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/ordered_skiplist.rs:904:21 [INFO] [stdout] | [INFO] [stdout] 904 | (*node).links_len[lvl] = self.link_length(node, (*node).links[lvl], 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] 904 | (&mut (*node).links_len)[lvl] = self.link_length(node, (*node).links[lvl], lvl) [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:907:41 [INFO] [stdout] | [INFO] [stdout] 907 | if let Some(next) = (*node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:907:41 [INFO] [stdout] | [INFO] [stdout] 907 | if let Some(next) = (*node).links[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] 907 | if let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:918:37 [INFO] [stdout] | [INFO] [stdout] 918 | if let Some(next) = (*node).links[0] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:918:37 [INFO] [stdout] | [INFO] [stdout] 918 | if let Some(next) = (*node).links[0] { [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] 918 | if let Some(next) = (&(*node).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/ordered_skiplist.rs:922:21 [INFO] [stdout] | [INFO] [stdout] 922 | mem::replace(&mut (*prev).next, mem::replace(&mut (*node).next, None)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 922 | let _ = mem::replace(&mut (*prev).next, mem::replace(&mut (*node).next, None)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/ordered_skiplist.rs:963:17 [INFO] [stdout] | [INFO] [stdout] 963 | 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] 963 | 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:990:18 [INFO] [stdout] | [INFO] [stdout] 990 | 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] 990 | pub fn range(&self, min: Bound<&T>, max: Bound<&T>) -> Iter<'_, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1017:44 [INFO] [stdout] | [INFO] [stdout] 1017 | while let Some(next) = (*node).links[0] { [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:1017:44 [INFO] [stdout] | [INFO] [stdout] 1017 | while let Some(next) = (*node).links[0] { [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] 1017 | while let Some(next) = (&(*node).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1035:52 [INFO] [stdout] | [INFO] [stdout] 1035 | ... while let Some(next) = (*node).links[0] { [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:1035:52 [INFO] [stdout] | [INFO] [stdout] 1035 | ... while let Some(next) = (*node).links[0] { [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] 1035 | while let Some(next) = (&(*node).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1109:35 [INFO] [stdout] | [INFO] [stdout] 1109 | length_sum += (*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:1109:35 [INFO] [stdout] | [INFO] [stdout] 1109 | length_sum += (*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] 1109 | length_sum += (&(*node).links_len)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1112:32 [INFO] [stdout] | [INFO] [stdout] 1112 | assert_eq!((*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:1112:32 [INFO] [stdout] | [INFO] [stdout] 1112 | assert_eq!((*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] 1112 | assert_eq!((&(*node).links_len)[lvl], [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1113:75 [INFO] [stdout] | [INFO] [stdout] 1113 | ... self.link_length(node as *mut SkipNode, (*node).links[lvl], 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:1113:75 [INFO] [stdout] | [INFO] [stdout] 1113 | ... self.link_length(node as *mut SkipNode, (*node).links[lvl], 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] 1113 | self.link_length(node as *mut SkipNode, (&(*node).links)[lvl], lvl) [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1117:59 [INFO] [stdout] | [INFO] [stdout] 1117 | assert!((*node).next.is_some() == (*node).links[lvl].is_some()); [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:1117:59 [INFO] [stdout] | [INFO] [stdout] 1117 | assert!((*node).next.is_some() == (*node).links[lvl].is_some()); [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] 1117 | assert!((*node).next.is_some() == (&(*node).links)[lvl].is_some()); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1120:40 [INFO] [stdout] | [INFO] [stdout] 1120 | ... assert_eq!((*prev).links[lvl], Some(node as *mut SkipNode)); [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:1120:40 [INFO] [stdout] | [INFO] [stdout] 1120 | ... assert_eq!((*prev).links[lvl], Some(node as *mut SkipNode)); [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] 1120 | assert_eq!((&(*prev).links)[lvl], Some(node as *mut SkipNode)); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1125:41 [INFO] [stdout] | [INFO] [stdout] 1125 | if let Some(next) = (*node).links[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:1125:41 [INFO] [stdout] | [INFO] [stdout] 1125 | if let Some(next) = (*node).links[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] 1125 | if let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1167:27 [INFO] [stdout] | [INFO] [stdout] 1167 | match (*node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:1167:27 [INFO] [stdout] | [INFO] [stdout] 1167 | match (*node).links[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] 1167 | match (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1174:31 [INFO] [stdout] | [INFO] [stdout] 1174 | length += (*node).links_len[lvl - 1]; [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: `&Vec` [INFO] [stdout] --> src/ordered_skiplist.rs:1174:31 [INFO] [stdout] | [INFO] [stdout] 1174 | length += (*node).links_len[lvl - 1]; [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] 1174 | length += (&(*node).links_len)[lvl - 1]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1175:27 [INFO] [stdout] | [INFO] [stdout] 1175 | match (*node).links[lvl - 1] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:1175:27 [INFO] [stdout] | [INFO] [stdout] 1175 | match (*node).links[lvl - 1] { [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] 1175 | match (&(*node).links)[lvl - 1] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1200:40 [INFO] [stdout] | [INFO] [stdout] 1200 | while let Some(next) = (*node).links[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:1200:40 [INFO] [stdout] | [INFO] [stdout] 1200 | while let Some(next) = (*node).links[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] 1200 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1224:40 [INFO] [stdout] | [INFO] [stdout] 1224 | while let Some(next) = (*node).links[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:1224:40 [INFO] [stdout] | [INFO] [stdout] 1224 | while let Some(next) = (*node).links[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] 1224 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1262:39 [INFO] [stdout] | [INFO] [stdout] 1262 | while index_sum + (*node).links_len[lvl] <= index { [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:1262:39 [INFO] [stdout] | [INFO] [stdout] 1262 | while index_sum + (*node).links_len[lvl] <= index { [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] 1262 | while index_sum + (&(*node).links_len)[lvl] <= index { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1263:38 [INFO] [stdout] | [INFO] [stdout] 1263 | index_sum += (*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:1263:38 [INFO] [stdout] | [INFO] [stdout] 1263 | index_sum += (*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] 1263 | index_sum += (&(*node).links_len)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1264:32 [INFO] [stdout] | [INFO] [stdout] 1264 | node = (*node).links[lvl].unwrap(); [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:1264:32 [INFO] [stdout] | [INFO] [stdout] 1264 | node = (*node).links[lvl].unwrap(); [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] 1264 | node = (&(*node).links)[lvl].unwrap(); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1291:61 [INFO] [stdout] | [INFO] [stdout] 1291 | 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:1291:61 [INFO] [stdout] | [INFO] [stdout] 1291 | 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] 1291 | let max_str_len = format!("{} -{}-", value, (&(*node).links_len)[(*node).level]).len(); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1299:63 [INFO] [stdout] | [INFO] [stdout] 1299 | value_len = 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:1299:63 [INFO] [stdout] | [INFO] [stdout] 1299 | value_len = 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] 1299 | value_len = format!("{} -{}-", value, (&(*node).links_len)[lvl]); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1319:37 [INFO] [stdout] | [INFO] [stdout] 1319 | if let Some(next) = (*node).links[0] { [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:1319:37 [INFO] [stdout] | [INFO] [stdout] 1319 | if let Some(next) = (*node).links[0] { [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] 1319 | if let Some(next) = (&(*node).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/ordered_skiplist.rs:1347:17 [INFO] [stdout] | [INFO] [stdout] 1347 | mem::replace(&mut (*node).next, mem::replace(&mut next.next, None)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1347 | let _ = mem::replace(&mut (*node).next, mem::replace(&mut next.next, None)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1507:33 [INFO] [stdout] | [INFO] [stdout] 1507 | if let Some(next) = (*self.start).links[0] { [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:1507:33 [INFO] [stdout] | [INFO] [stdout] 1507 | if let Some(next) = (*self.start).links[0] { [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] 1507 | if let Some(next) = (&(*self.start).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1556:33 [INFO] [stdout] | [INFO] [stdout] 1556 | if let Some(next) = (*self.head).links[0] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:1556:33 [INFO] [stdout] | [INFO] [stdout] 1556 | if let Some(next) = (*self.head).links[0] { [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] 1556 | if let Some(next) = (&(*self.head).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1559:51 [INFO] [stdout] | [INFO] [stdout] 1559 | (*self.head).links[lvl] = (*next).links[lvl]; [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:1559:51 [INFO] [stdout] | [INFO] [stdout] 1559 | (*self.head).links[lvl] = (*next).links[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] 1559 | (*self.head).links[lvl] = (&(*next).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1559:25 [INFO] [stdout] | [INFO] [stdout] 1559 | (*self.head).links[lvl] = (*next).links[lvl]; [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/ordered_skiplist.rs:1559:25 [INFO] [stdout] | [INFO] [stdout] 1559 | (*self.head).links[lvl] = (*next).links[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] 1559 | (&mut (*self.head).links)[lvl] = (*next).links[lvl]; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1560:55 [INFO] [stdout] | [INFO] [stdout] 1560 | (*self.head).links_len[lvl] = (*next).links_len[lvl] - 1; [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: `&Vec` [INFO] [stdout] --> src/ordered_skiplist.rs:1560:55 [INFO] [stdout] | [INFO] [stdout] 1560 | (*self.head).links_len[lvl] = (*next).links_len[lvl] - 1; [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] 1560 | (*self.head).links_len[lvl] = (&(*next).links_len)[lvl] - 1; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1560:25 [INFO] [stdout] | [INFO] [stdout] 1560 | (*self.head).links_len[lvl] = (*next).links_len[lvl] - 1; [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/ordered_skiplist.rs:1560:25 [INFO] [stdout] | [INFO] [stdout] 1560 | (*self.head).links_len[lvl] = (*next).links_len[lvl] - 1; [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] 1560 | (&mut (*self.head).links_len)[lvl] = (*next).links_len[lvl] - 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1562:25 [INFO] [stdout] | [INFO] [stdout] 1562 | (*self.head).links_len[lvl] -= 1; [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/ordered_skiplist.rs:1562:25 [INFO] [stdout] | [INFO] [stdout] 1562 | (*self.head).links_len[lvl] -= 1; [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] 1562 | (&mut (*self.head).links_len)[lvl] -= 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1565:37 [INFO] [stdout] | [INFO] [stdout] 1565 | if let Some(next) = (*self.head).links[0] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:1565:37 [INFO] [stdout] | [INFO] [stdout] 1565 | if let Some(next) = (*self.head).links[0] { [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] 1565 | if let Some(next) = (&(*self.head).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1597:17 [INFO] [stdout] | [INFO] [stdout] 1597 | (*self.end).links[0] = None; [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/ordered_skiplist.rs:1597:17 [INFO] [stdout] | [INFO] [stdout] 1597 | (*self.end).links[0] = None; [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] 1597 | (&mut (*self.end).links)[0] = None; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:206:44 [INFO] [stdout] | [INFO] [stdout] 206 | while let Some(next) = (*node).links[lvl] { [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:206:44 [INFO] [stdout] | [INFO] [stdout] 206 | while let Some(next) = (*node).links[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] 206 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:216:44 [INFO] [stdout] | [INFO] [stdout] 216 | while let Some(next) = (*node).links[lvl] { [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:216:44 [INFO] [stdout] | [INFO] [stdout] 216 | while let Some(next) = (*node).links[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] 216 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:237:24 [INFO] [stdout] | [INFO] [stdout] 237 | if (*node).links[lvl].is_none() { [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:237:24 [INFO] [stdout] | [INFO] [stdout] 237 | if (*node).links[lvl].is_none() { [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] 237 | if (&(*node).links)[lvl].is_none() { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:256:47 [INFO] [stdout] | [INFO] [stdout] 256 | new_node.links[lvl] = (*prev_node).links[lvl]; [INFO] [stdout] | ^^---------^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:256:47 [INFO] [stdout] | [INFO] [stdout] 256 | new_node.links[lvl] = (*prev_node).links[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] 256 | new_node.links[lvl] = (&(*prev_node).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:257:25 [INFO] [stdout] | [INFO] [stdout] 257 | (*prev_node).links[lvl] = Some(new_node_ptr); [INFO] [stdout] | ^^---------^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:257:25 [INFO] [stdout] | [INFO] [stdout] 257 | (*prev_node).links[lvl] = Some(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] 257 | (&mut (*prev_node).links)[lvl] = Some(new_node_ptr); [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:268:55 [INFO] [stdout] | [INFO] [stdout] 268 | ... new_node.links_len[lvl] = (*prev_node).links_len[lvl] - length + 1; [INFO] [stdout] | ^^---------^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:268:55 [INFO] [stdout] | [INFO] [stdout] 268 | ... new_node.links_len[lvl] = (*prev_node).links_len[lvl] - length + 1; [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] 268 | new_node.links_len[lvl] = (&(*prev_node).links_len)[lvl] - length + 1; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:269:29 [INFO] [stdout] | [INFO] [stdout] 269 | ... (*prev_node).links_len[lvl] = length; [INFO] [stdout] | ^^---------^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:269:29 [INFO] [stdout] | [INFO] [stdout] 269 | ... (*prev_node).links_len[lvl] = length; [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] 269 | (&mut (*prev_node).links_len)[lvl] = length; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:272:25 [INFO] [stdout] | [INFO] [stdout] 272 | (*prev_node).links_len[lvl] += 1; [INFO] [stdout] | ^^---------^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:272:25 [INFO] [stdout] | [INFO] [stdout] 272 | (*prev_node).links_len[lvl] += 1; [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] 272 | (&mut (*prev_node).links_len)[lvl] += 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/skipmap.rs:308:17 [INFO] [stdout] | [INFO] [stdout] 308 | mem::replace(&mut (*node).next, mem::replace(&mut next.next, None)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 308 | let _ = mem::replace(&mut (*node).next, mem::replace(&mut next.next, None)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/skipmap.rs:313:9 [INFO] [stdout] | [INFO] [stdout] 313 | mem::replace(&mut self.head, new_head); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 313 | let _ = mem::replace(&mut self.head, new_head); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:489:40 [INFO] [stdout] | [INFO] [stdout] 489 | while let Some(next) = (*node).links[lvl] { [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:489:40 [INFO] [stdout] | [INFO] [stdout] 489 | while let Some(next) = (*node).links[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] 489 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:539:40 [INFO] [stdout] | [INFO] [stdout] 539 | while let Some(next) = (*node).links[lvl] { [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:539:40 [INFO] [stdout] | [INFO] [stdout] 539 | while let Some(next) = (*node).links[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] 539 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:628:40 [INFO] [stdout] | [INFO] [stdout] 628 | while let Some(next) = (*node).links[lvl] { [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:628:40 [INFO] [stdout] | [INFO] [stdout] 628 | while let Some(next) = (*node).links[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] 628 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:685:44 [INFO] [stdout] | [INFO] [stdout] 685 | while let Some(next) = (*node).links[lvl] { [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:685:44 [INFO] [stdout] | [INFO] [stdout] 685 | while let Some(next) = (*node).links[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] 685 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:696:24 [INFO] [stdout] | [INFO] [stdout] 696 | if (*node).links[lvl].is_none() { [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:696:24 [INFO] [stdout] | [INFO] [stdout] 696 | if (*node).links[lvl].is_none() { [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] 696 | if (&(*node).links)[lvl].is_none() { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:700:44 [INFO] [stdout] | [INFO] [stdout] 700 | while let Some(next) = (*node).links[lvl] { [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:700:44 [INFO] [stdout] | [INFO] [stdout] 700 | while let Some(next) = (*node).links[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] 700 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:726:24 [INFO] [stdout] | [INFO] [stdout] 726 | if (*prev_node).links[lvl] == Some(return_node) { [INFO] [stdout] | ^^---------^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:726:24 [INFO] [stdout] | [INFO] [stdout] 726 | if (*prev_node).links[lvl] == Some(return_node) { [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] 726 | if (&(*prev_node).links)[lvl] == Some(return_node) { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:727:51 [INFO] [stdout] | [INFO] [stdout] 727 | (*prev_node).links[lvl] = (*return_node).links[lvl]; [INFO] [stdout] | ^^-----------^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:727:51 [INFO] [stdout] | [INFO] [stdout] 727 | (*prev_node).links[lvl] = (*return_node).links[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] 727 | (*prev_node).links[lvl] = (&(*return_node).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:727:25 [INFO] [stdout] | [INFO] [stdout] 727 | (*prev_node).links[lvl] = (*return_node).links[lvl]; [INFO] [stdout] | ^^---------^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:727:25 [INFO] [stdout] | [INFO] [stdout] 727 | (*prev_node).links[lvl] = (*return_node).links[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] 727 | (&mut (*prev_node).links)[lvl] = (*return_node).links[lvl]; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:728:56 [INFO] [stdout] | [INFO] [stdout] 728 | (*prev_node).links_len[lvl] += (*return_node).links_len[lvl] - 1; [INFO] [stdout] | ^^-----------^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:728:56 [INFO] [stdout] | [INFO] [stdout] 728 | (*prev_node).links_len[lvl] += (*return_node).links_len[lvl] - 1; [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] 728 | (*prev_node).links_len[lvl] += (&(*return_node).links_len)[lvl] - 1; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:728:25 [INFO] [stdout] | [INFO] [stdout] 728 | (*prev_node).links_len[lvl] += (*return_node).links_len[lvl] - 1; [INFO] [stdout] | ^^---------^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:728:25 [INFO] [stdout] | [INFO] [stdout] 728 | (*prev_node).links_len[lvl] += (*return_node).links_len[lvl] - 1; [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] 728 | (&mut (*prev_node).links_len)[lvl] += (*return_node).links_len[lvl] - 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:730:25 [INFO] [stdout] | [INFO] [stdout] 730 | (*prev_node).links_len[lvl] -= 1; [INFO] [stdout] | ^^---------^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:730:25 [INFO] [stdout] | [INFO] [stdout] 730 | (*prev_node).links_len[lvl] -= 1; [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] 730 | (&mut (*prev_node).links_len)[lvl] -= 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:733:42 [INFO] [stdout] | [INFO] [stdout] 733 | if let Some(next_node) = (*return_node).links[0] { [INFO] [stdout] | ^^-----------^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:733:42 [INFO] [stdout] | [INFO] [stdout] 733 | if let Some(next_node) = (*return_node).links[0] { [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] 733 | if let Some(next_node) = (&(*return_node).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:776:41 [INFO] [stdout] | [INFO] [stdout] 776 | while &(index_sum + (*node).links_len[lvl]) < index { [INFO] [stdout] | ^^----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:776:41 [INFO] [stdout] | [INFO] [stdout] 776 | while &(index_sum + (*node).links_len[lvl]) < index { [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] 776 | while &(index_sum + (&(*node).links_len)[lvl]) < index { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:777:38 [INFO] [stdout] | [INFO] [stdout] 777 | index_sum += (*node).links_len[lvl]; [INFO] [stdout] | ^^----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:777:38 [INFO] [stdout] | [INFO] [stdout] 777 | index_sum += (*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] 777 | index_sum += (&(*node).links_len)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:778:32 [INFO] [stdout] | [INFO] [stdout] 778 | node = (*node).links[lvl].unwrap(); [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:778:32 [INFO] [stdout] | [INFO] [stdout] 778 | node = (*node).links[lvl].unwrap(); [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] 778 | node = (&(*node).links)[lvl].unwrap(); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:781:38 [INFO] [stdout] | [INFO] [stdout] 781 | if &(index_sum + (*node).links_len[lvl]) == index { [INFO] [stdout] | ^^----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:781:38 [INFO] [stdout] | [INFO] [stdout] 781 | if &(index_sum + (*node).links_len[lvl]) == index { [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] 781 | if &(index_sum + (&(*node).links_len)[lvl]) == index { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:782:45 [INFO] [stdout] | [INFO] [stdout] 782 | if let Some(next) = (*node).links[lvl] { [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:782:45 [INFO] [stdout] | [INFO] [stdout] 782 | if let Some(next) = (*node).links[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] 782 | if let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:784:50 [INFO] [stdout] | [INFO] [stdout] 784 | ... (*node).links[lvl] = (*next).links[lvl]; [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:784:50 [INFO] [stdout] | [INFO] [stdout] 784 | ... (*node).links[lvl] = (*next).links[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] 784 | (*node).links[lvl] = (&(*next).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:784:29 [INFO] [stdout] | [INFO] [stdout] 784 | ... (*node).links[lvl] = (*next).links[lvl]; [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:784:29 [INFO] [stdout] | [INFO] [stdout] 784 | ... (*node).links[lvl] = (*next).links[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] 784 | (&mut (*node).links)[lvl] = (*next).links[lvl]; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:785:55 [INFO] [stdout] | [INFO] [stdout] 785 | ... (*node).links_len[lvl] += (*next).links_len[lvl] - 1; [INFO] [stdout] | ^^----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:785:55 [INFO] [stdout] | [INFO] [stdout] 785 | ... (*node).links_len[lvl] += (*next).links_len[lvl] - 1; [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] 785 | (*node).links_len[lvl] += (&(*next).links_len)[lvl] - 1; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:785:29 [INFO] [stdout] | [INFO] [stdout] 785 | ... (*node).links_len[lvl] += (*next).links_len[lvl] - 1; [INFO] [stdout] | ^^----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:785:29 [INFO] [stdout] | [INFO] [stdout] 785 | ... (*node).links_len[lvl] += (*next).links_len[lvl] - 1; [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] 785 | (&mut (*node).links_len)[lvl] += (*next).links_len[lvl] - 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:788:25 [INFO] [stdout] | [INFO] [stdout] 788 | (*node).links_len[lvl] -= 1; [INFO] [stdout] | ^^----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:788:25 [INFO] [stdout] | [INFO] [stdout] 788 | (*node).links_len[lvl] -= 1; [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] 788 | (&mut (*node).links_len)[lvl] -= 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:792:37 [INFO] [stdout] | [INFO] [stdout] 792 | if let Some(next) = (*return_node).links[0] { [INFO] [stdout] | ^^-----------^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:792:37 [INFO] [stdout] | [INFO] [stdout] 792 | if let Some(next) = (*return_node).links[0] { [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] 792 | if let Some(next) = (&(*return_node).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/skipmap.rs:840:17 [INFO] [stdout] | [INFO] [stdout] 840 | 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] 840 | 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:865:21 [INFO] [stdout] | [INFO] [stdout] 865 | pub fn iter_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] 865 | pub fn iter_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:888:17 [INFO] [stdout] | [INFO] [stdout] 888 | 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] 888 | 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:910:19 [INFO] [stdout] | [INFO] [stdout] 910 | 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] 910 | 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:937:21 [INFO] [stdout] | [INFO] [stdout] 937 | 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] 937 | pub fn range(&self, min: Bound<&Q>, max: Bound<&Q>) -> Iter<'_, K, V> [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1013:35 [INFO] [stdout] | [INFO] [stdout] 1013 | length_sum += (*node).links_len[lvl]; [INFO] [stdout] | ^^----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:1013:35 [INFO] [stdout] | [INFO] [stdout] 1013 | length_sum += (*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] 1013 | length_sum += (&(*node).links_len)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1016:32 [INFO] [stdout] | [INFO] [stdout] 1016 | assert_eq!((*node).links_len[lvl], [INFO] [stdout] | ^^----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:1016:32 [INFO] [stdout] | [INFO] [stdout] 1016 | assert_eq!((*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] 1016 | assert_eq!((&(*node).links_len)[lvl], [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1018:49 [INFO] [stdout] | [INFO] [stdout] 1018 | ... (*node).links[lvl], [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:1018:49 [INFO] [stdout] | [INFO] [stdout] 1018 | ... (*node).links[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] 1018 | (&(*node).links)[lvl], [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1023:59 [INFO] [stdout] | [INFO] [stdout] 1023 | assert!((*node).next.is_some() == (*node).links[lvl].is_some()); [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:1023:59 [INFO] [stdout] | [INFO] [stdout] 1023 | assert!((*node).next.is_some() == (*node).links[lvl].is_some()); [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] 1023 | assert!((*node).next.is_some() == (&(*node).links)[lvl].is_some()); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1026:40 [INFO] [stdout] | [INFO] [stdout] 1026 | ... assert_eq!((*prev).links[lvl], Some(node as *mut SkipNode)); [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:1026:40 [INFO] [stdout] | [INFO] [stdout] 1026 | ... assert_eq!((*prev).links[lvl], Some(node as *mut SkipNode)); [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] 1026 | assert_eq!((&(*prev).links)[lvl], Some(node as *mut SkipNode)); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1031:41 [INFO] [stdout] | [INFO] [stdout] 1031 | if let Some(next) = (*node).links[lvl] { [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:1031:41 [INFO] [stdout] | [INFO] [stdout] 1031 | if let Some(next) = (*node).links[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] 1031 | if let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1073:27 [INFO] [stdout] | [INFO] [stdout] 1073 | match (*node).links[lvl] { [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:1073:27 [INFO] [stdout] | [INFO] [stdout] 1073 | match (*node).links[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] 1073 | match (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1080:31 [INFO] [stdout] | [INFO] [stdout] 1080 | length += (*node).links_len[lvl - 1]; [INFO] [stdout] | ^^----^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:1080:31 [INFO] [stdout] | [INFO] [stdout] 1080 | length += (*node).links_len[lvl - 1]; [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] 1080 | length += (&(*node).links_len)[lvl - 1]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1081:27 [INFO] [stdout] | [INFO] [stdout] 1081 | match (*node).links[lvl - 1] { [INFO] [stdout] | ^^----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:1081:27 [INFO] [stdout] | [INFO] [stdout] 1081 | match (*node).links[lvl - 1] { [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] 1081 | match (&(*node).links)[lvl - 1] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1106:40 [INFO] [stdout] | [INFO] [stdout] 1106 | while let Some(next) = (*node).links[lvl] { [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:1106:40 [INFO] [stdout] | [INFO] [stdout] 1106 | while let Some(next) = (*node).links[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] 1106 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1133:40 [INFO] [stdout] | [INFO] [stdout] 1133 | while let Some(next) = (*node).links[lvl] { [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:1133:40 [INFO] [stdout] | [INFO] [stdout] 1133 | while let Some(next) = (*node).links[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] 1133 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1168:39 [INFO] [stdout] | [INFO] [stdout] 1168 | while index_sum + (*node).links_len[lvl] <= index { [INFO] [stdout] | ^^----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:1168:39 [INFO] [stdout] | [INFO] [stdout] 1168 | while index_sum + (*node).links_len[lvl] <= index { [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] 1168 | while index_sum + (&(*node).links_len)[lvl] <= index { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1169:38 [INFO] [stdout] | [INFO] [stdout] 1169 | index_sum += (*node).links_len[lvl]; [INFO] [stdout] | ^^----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:1169:38 [INFO] [stdout] | [INFO] [stdout] 1169 | index_sum += (*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] 1169 | index_sum += (&(*node).links_len)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1170:32 [INFO] [stdout] | [INFO] [stdout] 1170 | node = (*node).links[lvl].unwrap(); [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:1170:32 [INFO] [stdout] | [INFO] [stdout] 1170 | node = (*node).links[lvl].unwrap(); [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] 1170 | node = (&(*node).links)[lvl].unwrap(); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1199:61 [INFO] [stdout] | [INFO] [stdout] 1199 | let max_str_len = format!("{} -{}-", value, (*node).links_len[(*node).level]).len(); [INFO] [stdout] | ^^----^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:1199:61 [INFO] [stdout] | [INFO] [stdout] 1199 | 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] 1199 | let max_str_len = format!("{} -{}-", value, (&(*node).links_len)[(*node).level]).len(); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1207:63 [INFO] [stdout] | [INFO] [stdout] 1207 | value_len = format!("{} -{}-", value, (*node).links_len[lvl]); [INFO] [stdout] | ^^----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:1207:63 [INFO] [stdout] | [INFO] [stdout] 1207 | value_len = 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] 1207 | value_len = format!("{} -{}-", value, (&(*node).links_len)[lvl]); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1227:37 [INFO] [stdout] | [INFO] [stdout] 1227 | if let Some(next) = (*node).links[0] { [INFO] [stdout] | ^^----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:1227:37 [INFO] [stdout] | [INFO] [stdout] 1227 | if let Some(next) = (*node).links[0] { [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] 1227 | if let Some(next) = (&(*node).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/skipmap.rs:1255:17 [INFO] [stdout] | [INFO] [stdout] 1255 | mem::replace(&mut (*node).next, mem::replace(&mut next.next, None)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1255 | let _ = mem::replace(&mut (*node).next, mem::replace(&mut next.next, None)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1451:33 [INFO] [stdout] | [INFO] [stdout] 1451 | if let Some(next) = (*self.start).links[0] { [INFO] [stdout] | ^^----------^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:1451:33 [INFO] [stdout] | [INFO] [stdout] 1451 | if let Some(next) = (*self.start).links[0] { [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] 1451 | if let Some(next) = (&(*self.start).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1508:33 [INFO] [stdout] | [INFO] [stdout] 1508 | if let Some(next) = (*self.start).links[0] { [INFO] [stdout] | ^^----------^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:1508:33 [INFO] [stdout] | [INFO] [stdout] 1508 | if let Some(next) = (*self.start).links[0] { [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] 1508 | if let Some(next) = (&(*self.start).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1560:33 [INFO] [stdout] | [INFO] [stdout] 1560 | if let Some(next) = (*self.head).links[0] { [INFO] [stdout] | ^^---------^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:1560:33 [INFO] [stdout] | [INFO] [stdout] 1560 | if let Some(next) = (*self.head).links[0] { [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] 1560 | if let Some(next) = (&(*self.head).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1563:51 [INFO] [stdout] | [INFO] [stdout] 1563 | (*self.head).links[lvl] = (*next).links[lvl]; [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:1563:51 [INFO] [stdout] | [INFO] [stdout] 1563 | (*self.head).links[lvl] = (*next).links[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] 1563 | (*self.head).links[lvl] = (&(*next).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1563:25 [INFO] [stdout] | [INFO] [stdout] 1563 | (*self.head).links[lvl] = (*next).links[lvl]; [INFO] [stdout] | ^^---------^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:1563:25 [INFO] [stdout] | [INFO] [stdout] 1563 | (*self.head).links[lvl] = (*next).links[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] 1563 | (&mut (*self.head).links)[lvl] = (*next).links[lvl]; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1564:55 [INFO] [stdout] | [INFO] [stdout] 1564 | (*self.head).links_len[lvl] = (*next).links_len[lvl] - 1; [INFO] [stdout] | ^^----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:1564:55 [INFO] [stdout] | [INFO] [stdout] 1564 | (*self.head).links_len[lvl] = (*next).links_len[lvl] - 1; [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] 1564 | (*self.head).links_len[lvl] = (&(*next).links_len)[lvl] - 1; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1564:25 [INFO] [stdout] | [INFO] [stdout] 1564 | (*self.head).links_len[lvl] = (*next).links_len[lvl] - 1; [INFO] [stdout] | ^^---------^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:1564:25 [INFO] [stdout] | [INFO] [stdout] 1564 | (*self.head).links_len[lvl] = (*next).links_len[lvl] - 1; [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] 1564 | (&mut (*self.head).links_len)[lvl] = (*next).links_len[lvl] - 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1566:25 [INFO] [stdout] | [INFO] [stdout] 1566 | (*self.head).links_len[lvl] -= 1; [INFO] [stdout] | ^^---------^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:1566:25 [INFO] [stdout] | [INFO] [stdout] 1566 | (*self.head).links_len[lvl] -= 1; [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] 1566 | (&mut (*self.head).links_len)[lvl] -= 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1569:37 [INFO] [stdout] | [INFO] [stdout] 1569 | if let Some(next) = (*self.head).links[0] { [INFO] [stdout] | ^^---------^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:1569:37 [INFO] [stdout] | [INFO] [stdout] 1569 | if let Some(next) = (*self.head).links[0] { [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] 1569 | if let Some(next) = (&(*self.head).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1602:17 [INFO] [stdout] | [INFO] [stdout] 1602 | (*self.end).links[0] = None; [INFO] [stdout] | ^^--------^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:1602:17 [INFO] [stdout] | [INFO] [stdout] 1602 | (*self.end).links[0] = None; [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] 1602 | (&mut (*self.end).links)[0] = None; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1627:33 [INFO] [stdout] | [INFO] [stdout] 1627 | if let Some(next) = (*self.start).links[0] { [INFO] [stdout] | ^^----------^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:1627:33 [INFO] [stdout] | [INFO] [stdout] 1627 | if let Some(next) = (*self.start).links[0] { [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] 1627 | if let Some(next) = (&(*self.start).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1681:33 [INFO] [stdout] | [INFO] [stdout] 1681 | if let Some(next) = (*self.start).links[0] { [INFO] [stdout] | ^^----------^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:1681:33 [INFO] [stdout] | [INFO] [stdout] 1681 | if let Some(next) = (*self.start).links[0] { [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] 1681 | if let Some(next) = (&(*self.start).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/skiplist.rs:94:17 [INFO] [stdout] | [INFO] [stdout] 94 | mem::replace(&mut (*node).next, mem::replace(&mut next.next, None)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 94 | let _ = mem::replace(&mut (*node).next, mem::replace(&mut next.next, None)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/skiplist.rs:99:9 [INFO] [stdout] | [INFO] [stdout] 99 | mem::replace(&mut self.head, new_head); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 99 | let _ = mem::replace(&mut self.head, new_head); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:176:40 [INFO] [stdout] | [INFO] [stdout] 176 | while let Some(next) = (*node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:176:40 [INFO] [stdout] | [INFO] [stdout] 176 | while let Some(next) = (*node).links[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] 176 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:177:36 [INFO] [stdout] | [INFO] [stdout] 177 | if index_sum + (*node).links_len[lvl] < index { [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: `&Vec` [INFO] [stdout] --> src/skiplist.rs:177:36 [INFO] [stdout] | [INFO] [stdout] 177 | if index_sum + (*node).links_len[lvl] < index { [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] 177 | if index_sum + (&(*node).links_len)[lvl] < index { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:178:38 [INFO] [stdout] | [INFO] [stdout] 178 | index_sum += (*node).links_len[lvl]; [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: `&Vec` [INFO] [stdout] --> src/skiplist.rs:178:38 [INFO] [stdout] | [INFO] [stdout] 178 | index_sum += (*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] 178 | index_sum += (&(*node).links_len)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:191:43 [INFO] [stdout] | [INFO] [stdout] 191 | new_node.links[lvl] = (*node).links[lvl]; [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:191:43 [INFO] [stdout] | [INFO] [stdout] 191 | new_node.links[lvl] = (*node).links[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] 191 | new_node.links[lvl] = (&(*node).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:192:21 [INFO] [stdout] | [INFO] [stdout] 192 | (*node).links[lvl] = Some(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/skiplist.rs:192:21 [INFO] [stdout] | [INFO] [stdout] 192 | (*node).links[lvl] = Some(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] 192 | (&mut (*node).links)[lvl] = Some(new_node_ptr); [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:194:21 [INFO] [stdout] | [INFO] [stdout] 194 | (*node).links_len[lvl] += 1; [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/skiplist.rs:194:21 [INFO] [stdout] | [INFO] [stdout] 194 | (*node).links_len[lvl] += 1; [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] 194 | (&mut (*node).links_len)[lvl] += 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:202:21 [INFO] [stdout] | [INFO] [stdout] 202 | (*node).links_len[lvl] = if (*node).is_head() { [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/skiplist.rs:202:21 [INFO] [stdout] | [INFO] [stdout] 202 | (*node).links_len[lvl] = if (*node).is_head() { [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] 202 | (&mut (*node).links_len)[lvl] = if (*node).is_head() { [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:210:47 [INFO] [stdout] | [INFO] [stdout] 210 | new_node.links_len[lvl] = (*node).links_len[lvl] - length + 1; [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: `&Vec` [INFO] [stdout] --> src/skiplist.rs:210:47 [INFO] [stdout] | [INFO] [stdout] 210 | new_node.links_len[lvl] = (*node).links_len[lvl] - length + 1; [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] 210 | new_node.links_len[lvl] = (&(*node).links_len)[lvl] - length + 1; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:211:21 [INFO] [stdout] | [INFO] [stdout] 211 | (*node).links_len[lvl] = length; [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/skiplist.rs:211:21 [INFO] [stdout] | [INFO] [stdout] 211 | (*node).links_len[lvl] = length; [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] 211 | (&mut (*node).links_len)[lvl] = length; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:479:39 [INFO] [stdout] | [INFO] [stdout] 479 | while index_sum + (*node).links_len[lvl] < index { [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: `&Vec` [INFO] [stdout] --> src/skiplist.rs:479:39 [INFO] [stdout] | [INFO] [stdout] 479 | while index_sum + (*node).links_len[lvl] < index { [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] 479 | while index_sum + (&(*node).links_len)[lvl] < index { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:480:38 [INFO] [stdout] | [INFO] [stdout] 480 | index_sum += (*node).links_len[lvl]; [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: `&Vec` [INFO] [stdout] --> src/skiplist.rs:480:38 [INFO] [stdout] | [INFO] [stdout] 480 | index_sum += (*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] 480 | index_sum += (&(*node).links_len)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:481:32 [INFO] [stdout] | [INFO] [stdout] 481 | node = (*node).links[lvl].unwrap(); [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:481:32 [INFO] [stdout] | [INFO] [stdout] 481 | node = (*node).links[lvl].unwrap(); [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] 481 | node = (&(*node).links)[lvl].unwrap(); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:484:36 [INFO] [stdout] | [INFO] [stdout] 484 | if index_sum + (*node).links_len[lvl] == index { [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: `&Vec` [INFO] [stdout] --> src/skiplist.rs:484:36 [INFO] [stdout] | [INFO] [stdout] 484 | if index_sum + (*node).links_len[lvl] == index { [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] 484 | if index_sum + (&(*node).links_len)[lvl] == index { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:485:45 [INFO] [stdout] | [INFO] [stdout] 485 | if let Some(next) = (*node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:485:45 [INFO] [stdout] | [INFO] [stdout] 485 | if let Some(next) = (*node).links[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] 485 | if let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:487:50 [INFO] [stdout] | [INFO] [stdout] 487 | ... (*node).links[lvl] = (*next).links[lvl]; [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:487:50 [INFO] [stdout] | [INFO] [stdout] 487 | ... (*node).links[lvl] = (*next).links[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] 487 | (*node).links[lvl] = (&(*next).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:487:29 [INFO] [stdout] | [INFO] [stdout] 487 | ... (*node).links[lvl] = (*next).links[lvl]; [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/skiplist.rs:487:29 [INFO] [stdout] | [INFO] [stdout] 487 | ... (*node).links[lvl] = (*next).links[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] 487 | (&mut (*node).links)[lvl] = (*next).links[lvl]; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:488:55 [INFO] [stdout] | [INFO] [stdout] 488 | ... (*node).links_len[lvl] += (*next).links_len[lvl] - 1; [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: `&Vec` [INFO] [stdout] --> src/skiplist.rs:488:55 [INFO] [stdout] | [INFO] [stdout] 488 | ... (*node).links_len[lvl] += (*next).links_len[lvl] - 1; [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] 488 | (*node).links_len[lvl] += (&(*next).links_len)[lvl] - 1; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:488:29 [INFO] [stdout] | [INFO] [stdout] 488 | ... (*node).links_len[lvl] += (*next).links_len[lvl] - 1; [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/skiplist.rs:488:29 [INFO] [stdout] | [INFO] [stdout] 488 | ... (*node).links_len[lvl] += (*next).links_len[lvl] - 1; [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] 488 | (&mut (*node).links_len)[lvl] += (*next).links_len[lvl] - 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:491:25 [INFO] [stdout] | [INFO] [stdout] 491 | (*node).links_len[lvl] -= 1; [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/skiplist.rs:491:25 [INFO] [stdout] | [INFO] [stdout] 491 | (*node).links_len[lvl] -= 1; [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] 491 | (&mut (*node).links_len)[lvl] -= 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:495:37 [INFO] [stdout] | [INFO] [stdout] 495 | if let Some(next) = (*return_node).links[0] { [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:495:37 [INFO] [stdout] | [INFO] [stdout] 495 | if let Some(next) = (*return_node).links[0] { [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] 495 | if let Some(next) = (&(*return_node).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:536:41 [INFO] [stdout] | [INFO] [stdout] 536 | if let Some(next) = (*node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:536:41 [INFO] [stdout] | [INFO] [stdout] 536 | if let Some(next) = (*node).links[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] 536 | if let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:539:54 [INFO] [stdout] | [INFO] [stdout] 539 | ... (*node).links[lvl] = (*next).links[lvl]; [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:539:54 [INFO] [stdout] | [INFO] [stdout] 539 | ... (*node).links[lvl] = (*next).links[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] 539 | (*node).links[lvl] = (&(*next).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:539:33 [INFO] [stdout] | [INFO] [stdout] 539 | ... (*node).links[lvl] = (*next).links[lvl]; [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/skiplist.rs:539:33 [INFO] [stdout] | [INFO] [stdout] 539 | ... (*node).links[lvl] = (*next).links[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] 539 | (&mut (*node).links)[lvl] = (*next).links[lvl]; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:549:69 [INFO] [stdout] | [INFO] [stdout] 549 | (*node).links_len[lvl] = self.link_length(node, (*node).links[lvl], lvl) [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:549:69 [INFO] [stdout] | [INFO] [stdout] 549 | (*node).links_len[lvl] = self.link_length(node, (*node).links[lvl], 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] 549 | (*node).links_len[lvl] = self.link_length(node, (&(*node).links)[lvl], lvl) [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:549:21 [INFO] [stdout] | [INFO] [stdout] 549 | (*node).links_len[lvl] = self.link_length(node, (*node).links[lvl], lvl) [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/skiplist.rs:549:21 [INFO] [stdout] | [INFO] [stdout] 549 | (*node).links_len[lvl] = self.link_length(node, (*node).links[lvl], 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] 549 | (&mut (*node).links_len)[lvl] = self.link_length(node, (*node).links[lvl], lvl) [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:552:41 [INFO] [stdout] | [INFO] [stdout] 552 | if let Some(next) = (*node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:552:41 [INFO] [stdout] | [INFO] [stdout] 552 | if let Some(next) = (*node).links[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] 552 | if let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:563:37 [INFO] [stdout] | [INFO] [stdout] 563 | if let Some(next) = (*node).links[0] { [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:563:37 [INFO] [stdout] | [INFO] [stdout] 563 | if let Some(next) = (*node).links[0] { [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] 563 | if let Some(next) = (&(*node).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/skiplist.rs:567:21 [INFO] [stdout] | [INFO] [stdout] 567 | mem::replace(&mut (*prev).next, mem::replace(&mut (*node).next, None)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 567 | let _ = mem::replace(&mut (*prev).next, mem::replace(&mut (*node).next, None)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/skiplist.rs:608:17 [INFO] [stdout] | [INFO] [stdout] 608 | 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] 608 | 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:630:21 [INFO] [stdout] | [INFO] [stdout] 630 | pub fn iter_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] 630 | pub fn iter_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:657:18 [INFO] [stdout] | [INFO] [stdout] 657 | 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] 657 | 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:720:22 [INFO] [stdout] | [INFO] [stdout] 720 | 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] 720 | pub fn range_mut(&mut self, min: Bound, max: Bound) -> IterMut<'_, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:820:41 [INFO] [stdout] | [INFO] [stdout] 820 | if let Some(next) = (*node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:820:41 [INFO] [stdout] | [INFO] [stdout] 820 | if let Some(next) = (*node).links[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] 820 | if let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:824:58 [INFO] [stdout] | [INFO] [stdout] 824 | ... (*node).links[lvl] = (*next).links[lvl]; [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:824:58 [INFO] [stdout] | [INFO] [stdout] 824 | ... (*node).links[lvl] = (*next).links[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] 824 | (*node).links[lvl] = (&(*next).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:824:37 [INFO] [stdout] | [INFO] [stdout] 824 | ... (*node).links[lvl] = (*next).links[lvl]; [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/skiplist.rs:824:37 [INFO] [stdout] | [INFO] [stdout] 824 | ... (*node).links[lvl] = (*next).links[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] 824 | (&mut (*node).links)[lvl] = (*next).links[lvl]; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:838:54 [INFO] [stdout] | [INFO] [stdout] 838 | ... (*node).links[lvl] = (*next).links[lvl]; [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:838:54 [INFO] [stdout] | [INFO] [stdout] 838 | ... (*node).links[lvl] = (*next).links[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] 838 | (*node).links[lvl] = (&(*next).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:838:33 [INFO] [stdout] | [INFO] [stdout] 838 | ... (*node).links[lvl] = (*next).links[lvl]; [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/skiplist.rs:838:33 [INFO] [stdout] | [INFO] [stdout] 838 | ... (*node).links[lvl] = (*next).links[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] 838 | (&mut (*node).links)[lvl] = (*next).links[lvl]; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:845:69 [INFO] [stdout] | [INFO] [stdout] 845 | (*node).links_len[lvl] = self.link_length(node, (*node).links[lvl], lvl) [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:845:69 [INFO] [stdout] | [INFO] [stdout] 845 | (*node).links_len[lvl] = self.link_length(node, (*node).links[lvl], 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] 845 | (*node).links_len[lvl] = self.link_length(node, (&(*node).links)[lvl], lvl) [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:845:21 [INFO] [stdout] | [INFO] [stdout] 845 | (*node).links_len[lvl] = self.link_length(node, (*node).links[lvl], lvl) [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/skiplist.rs:845:21 [INFO] [stdout] | [INFO] [stdout] 845 | (*node).links_len[lvl] = self.link_length(node, (*node).links[lvl], 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] 845 | (&mut (*node).links_len)[lvl] = self.link_length(node, (*node).links[lvl], lvl) [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:848:41 [INFO] [stdout] | [INFO] [stdout] 848 | if let Some(next) = (*node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:848:41 [INFO] [stdout] | [INFO] [stdout] 848 | if let Some(next) = (*node).links[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] 848 | if let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:859:37 [INFO] [stdout] | [INFO] [stdout] 859 | if let Some(next) = (*node).links[0] { [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:859:37 [INFO] [stdout] | [INFO] [stdout] 859 | if let Some(next) = (*node).links[0] { [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] 859 | if let Some(next) = (&(*node).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/skiplist.rs:863:21 [INFO] [stdout] | [INFO] [stdout] 863 | mem::replace(&mut (*prev).next, mem::replace(&mut (*node).next, None)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 863 | let _ = mem::replace(&mut (*prev).next, mem::replace(&mut (*node).next, None)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:887:35 [INFO] [stdout] | [INFO] [stdout] 887 | length_sum += (*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/skiplist.rs:887:35 [INFO] [stdout] | [INFO] [stdout] 887 | length_sum += (*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] 887 | length_sum += (&(*node).links_len)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:890:32 [INFO] [stdout] | [INFO] [stdout] 890 | assert_eq!((*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/skiplist.rs:890:32 [INFO] [stdout] | [INFO] [stdout] 890 | assert_eq!((*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] 890 | assert_eq!((&(*node).links_len)[lvl], [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:891:75 [INFO] [stdout] | [INFO] [stdout] 891 | ... self.link_length(node as *mut SkipNode, (*node).links[lvl], 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/skiplist.rs:891:75 [INFO] [stdout] | [INFO] [stdout] 891 | ... self.link_length(node as *mut SkipNode, (*node).links[lvl], 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] 891 | self.link_length(node as *mut SkipNode, (&(*node).links)[lvl], lvl) [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:895:59 [INFO] [stdout] | [INFO] [stdout] 895 | assert!((*node).next.is_some() == (*node).links[lvl].is_some()); [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/skiplist.rs:895:59 [INFO] [stdout] | [INFO] [stdout] 895 | assert!((*node).next.is_some() == (*node).links[lvl].is_some()); [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] 895 | assert!((*node).next.is_some() == (&(*node).links)[lvl].is_some()); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:898:40 [INFO] [stdout] | [INFO] [stdout] 898 | ... assert_eq!((*prev).links[lvl], Some(node as *mut SkipNode)); [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:898:40 [INFO] [stdout] | [INFO] [stdout] 898 | ... assert_eq!((*prev).links[lvl], Some(node as *mut SkipNode)); [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] 898 | assert_eq!((&(*prev).links)[lvl], Some(node as *mut SkipNode)); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:903:41 [INFO] [stdout] | [INFO] [stdout] 903 | if let Some(next) = (*node).links[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/skiplist.rs:903:41 [INFO] [stdout] | [INFO] [stdout] 903 | if let Some(next) = (*node).links[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] 903 | if let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:945:27 [INFO] [stdout] | [INFO] [stdout] 945 | match (*node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:945:27 [INFO] [stdout] | [INFO] [stdout] 945 | match (*node).links[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] 945 | match (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:952:31 [INFO] [stdout] | [INFO] [stdout] 952 | length += (*node).links_len[lvl - 1]; [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: `&Vec` [INFO] [stdout] --> src/skiplist.rs:952:31 [INFO] [stdout] | [INFO] [stdout] 952 | length += (*node).links_len[lvl - 1]; [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] 952 | length += (&(*node).links_len)[lvl - 1]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:953:27 [INFO] [stdout] | [INFO] [stdout] 953 | match (*node).links[lvl - 1] { [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:953:27 [INFO] [stdout] | [INFO] [stdout] 953 | match (*node).links[lvl - 1] { [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] 953 | match (&(*node).links)[lvl - 1] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:978:40 [INFO] [stdout] | [INFO] [stdout] 978 | while let Some(next) = (*node).links[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/skiplist.rs:978:40 [INFO] [stdout] | [INFO] [stdout] 978 | while let Some(next) = (*node).links[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] 978 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `stable-skiplist` (lib) due to 207 previous errors; 48 warnings emitted [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:1003:39 [INFO] [stdout] | [INFO] [stdout] 1003 | while index_sum + (*node).links_len[lvl] <= index { [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/skiplist.rs:1003:39 [INFO] [stdout] | [INFO] [stdout] 1003 | while index_sum + (*node).links_len[lvl] <= index { [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] 1003 | while index_sum + (&(*node).links_len)[lvl] <= index { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:1004:38 [INFO] [stdout] | [INFO] [stdout] 1004 | index_sum += (*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/skiplist.rs:1004:38 [INFO] [stdout] | [INFO] [stdout] 1004 | index_sum += (*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] 1004 | index_sum += (&(*node).links_len)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:1005:32 [INFO] [stdout] | [INFO] [stdout] 1005 | node = (*node).links[lvl].unwrap(); [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/skiplist.rs:1005:32 [INFO] [stdout] | [INFO] [stdout] 1005 | node = (*node).links[lvl].unwrap(); [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] 1005 | node = (&(*node).links)[lvl].unwrap(); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:1032:61 [INFO] [stdout] | [INFO] [stdout] 1032 | 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/skiplist.rs:1032:61 [INFO] [stdout] | [INFO] [stdout] 1032 | 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] 1032 | let max_str_len = format!("{} -{}-", value, (&(*node).links_len)[(*node).level]).len(); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:1040:63 [INFO] [stdout] | [INFO] [stdout] 1040 | value_len = 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/skiplist.rs:1040:63 [INFO] [stdout] | [INFO] [stdout] 1040 | value_len = 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] 1040 | value_len = format!("{} -{}-", value, (&(*node).links_len)[lvl]); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:1060:37 [INFO] [stdout] | [INFO] [stdout] 1060 | if let Some(next) = (*node).links[0] { [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/skiplist.rs:1060:37 [INFO] [stdout] | [INFO] [stdout] 1060 | if let Some(next) = (*node).links[0] { [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] 1060 | if let Some(next) = (&(*node).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/skiplist.rs:1088:17 [INFO] [stdout] | [INFO] [stdout] 1088 | mem::replace(&mut (*node).next, mem::replace(&mut next.next, None)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1088 | let _ = mem::replace(&mut (*node).next, mem::replace(&mut next.next, None)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:1248:33 [INFO] [stdout] | [INFO] [stdout] 1248 | if let Some(next) = (*self.start).links[0] { [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/skiplist.rs:1248:33 [INFO] [stdout] | [INFO] [stdout] 1248 | if let Some(next) = (*self.start).links[0] { [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] 1248 | if let Some(next) = (&(*self.start).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:1300:33 [INFO] [stdout] | [INFO] [stdout] 1300 | if let Some(next) = (*self.start).links[0] { [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:1300:33 [INFO] [stdout] | [INFO] [stdout] 1300 | if let Some(next) = (*self.start).links[0] { [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] 1300 | if let Some(next) = (&(*self.start).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:1346:33 [INFO] [stdout] | [INFO] [stdout] 1346 | if let Some(next) = (*self.head).links[0] { [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:1346:33 [INFO] [stdout] | [INFO] [stdout] 1346 | if let Some(next) = (*self.head).links[0] { [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] 1346 | if let Some(next) = (&(*self.head).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:1349:51 [INFO] [stdout] | [INFO] [stdout] 1349 | (*self.head).links[lvl] = (*next).links[lvl]; [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:1349:51 [INFO] [stdout] | [INFO] [stdout] 1349 | (*self.head).links[lvl] = (*next).links[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] 1349 | (*self.head).links[lvl] = (&(*next).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:1349:25 [INFO] [stdout] | [INFO] [stdout] 1349 | (*self.head).links[lvl] = (*next).links[lvl]; [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/skiplist.rs:1349:25 [INFO] [stdout] | [INFO] [stdout] 1349 | (*self.head).links[lvl] = (*next).links[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] 1349 | (&mut (*self.head).links)[lvl] = (*next).links[lvl]; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:1350:55 [INFO] [stdout] | [INFO] [stdout] 1350 | (*self.head).links_len[lvl] = (*next).links_len[lvl] - 1; [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: `&Vec` [INFO] [stdout] --> src/skiplist.rs:1350:55 [INFO] [stdout] | [INFO] [stdout] 1350 | (*self.head).links_len[lvl] = (*next).links_len[lvl] - 1; [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] 1350 | (*self.head).links_len[lvl] = (&(*next).links_len)[lvl] - 1; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:1350:25 [INFO] [stdout] | [INFO] [stdout] 1350 | (*self.head).links_len[lvl] = (*next).links_len[lvl] - 1; [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/skiplist.rs:1350:25 [INFO] [stdout] | [INFO] [stdout] 1350 | (*self.head).links_len[lvl] = (*next).links_len[lvl] - 1; [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] 1350 | (&mut (*self.head).links_len)[lvl] = (*next).links_len[lvl] - 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:1352:25 [INFO] [stdout] | [INFO] [stdout] 1352 | (*self.head).links_len[lvl] -= 1; [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/skiplist.rs:1352:25 [INFO] [stdout] | [INFO] [stdout] 1352 | (*self.head).links_len[lvl] -= 1; [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] 1352 | (&mut (*self.head).links_len)[lvl] -= 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:1355:37 [INFO] [stdout] | [INFO] [stdout] 1355 | if let Some(next) = (*self.head).links[0] { [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:1355:37 [INFO] [stdout] | [INFO] [stdout] 1355 | if let Some(next) = (*self.head).links[0] { [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] 1355 | if let Some(next) = (&(*self.head).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:1387:17 [INFO] [stdout] | [INFO] [stdout] 1387 | (*self.end).links[0] = None; [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/skiplist.rs:1387:17 [INFO] [stdout] | [INFO] [stdout] 1387 | (*self.end).links[0] = None; [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] 1387 | (&mut (*self.end).links)[0] = None; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:206:32 [INFO] [stdout] | [INFO] [stdout] 206 | while let Some(next) = (*node).links[0] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:206:32 [INFO] [stdout] | [INFO] [stdout] 206 | while let Some(next) = (*node).links[0] { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[deny(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] 206 | while let Some(next) = (&(*node).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/ordered_skiplist.rs:236:17 [INFO] [stdout] | [INFO] [stdout] 236 | mem::replace(&mut (*node).next, mem::replace(&mut next.next, None)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 236 | let _ = mem::replace(&mut (*node).next, mem::replace(&mut next.next, None)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/ordered_skiplist.rs:241:9 [INFO] [stdout] | [INFO] [stdout] 241 | mem::replace(&mut self.head, new_head); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 241 | let _ = mem::replace(&mut self.head, new_head); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:310:40 [INFO] [stdout] | [INFO] [stdout] 310 | while let Some(next) = (*insert_node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:310:40 [INFO] [stdout] | [INFO] [stdout] 310 | while let Some(next) = (*insert_node).links[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] 310 | while let Some(next) = (&(*insert_node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:325:43 [INFO] [stdout] | [INFO] [stdout] 325 | new_node.links[lvl] = (*insert_node).links[lvl]; [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:325:43 [INFO] [stdout] | [INFO] [stdout] 325 | new_node.links[lvl] = (*insert_node).links[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] 325 | new_node.links[lvl] = (&(*insert_node).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:326:21 [INFO] [stdout] | [INFO] [stdout] 326 | (*insert_node).links[lvl] = Some(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/ordered_skiplist.rs:326:21 [INFO] [stdout] | [INFO] [stdout] 326 | (*insert_node).links[lvl] = Some(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] 326 | (&mut (*insert_node).links)[lvl] = Some(new_node_ptr); [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:328:21 [INFO] [stdout] | [INFO] [stdout] 328 | (*insert_node).links_len[lvl] += 1; [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/ordered_skiplist.rs:328:21 [INFO] [stdout] | [INFO] [stdout] 328 | (*insert_node).links_len[lvl] += 1; [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] 328 | (&mut (*insert_node).links_len)[lvl] += 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:336:21 [INFO] [stdout] | [INFO] [stdout] 336 | (*insert_node).links_len[lvl] = if (*insert_node).is_head() { [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/ordered_skiplist.rs:336:21 [INFO] [stdout] | [INFO] [stdout] 336 | (*insert_node).links_len[lvl] = if (*insert_node).is_head() { [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] 336 | (&mut (*insert_node).links_len)[lvl] = if (*insert_node).is_head() { [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:344:47 [INFO] [stdout] | [INFO] [stdout] 344 | new_node.links_len[lvl] = (*insert_node).links_len[lvl] - length + 1; [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: `&Vec` [INFO] [stdout] --> src/ordered_skiplist.rs:344:47 [INFO] [stdout] | [INFO] [stdout] 344 | new_node.links_len[lvl] = (*insert_node).links_len[lvl] - length + 1; [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] 344 | new_node.links_len[lvl] = (&(*insert_node).links_len)[lvl] - length + 1; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:345:21 [INFO] [stdout] | [INFO] [stdout] 345 | (*insert_node).links_len[lvl] = length; [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/ordered_skiplist.rs:345:21 [INFO] [stdout] | [INFO] [stdout] 345 | (*insert_node).links_len[lvl] = length; [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] 345 | (&mut (*insert_node).links_len)[lvl] = length; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:503:40 [INFO] [stdout] | [INFO] [stdout] 503 | while let Some(next) = (*node).links[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:503:40 [INFO] [stdout] | [INFO] [stdout] 503 | while let Some(next) = (*node).links[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] 503 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:562:44 [INFO] [stdout] | [INFO] [stdout] 562 | while let Some(next) = (*node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:562:44 [INFO] [stdout] | [INFO] [stdout] 562 | while let Some(next) = (*node).links[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] 562 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:571:44 [INFO] [stdout] | [INFO] [stdout] 571 | while let Some(next) = (*node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:571:44 [INFO] [stdout] | [INFO] [stdout] 571 | while let Some(next) = (*node).links[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] 571 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:592:24 [INFO] [stdout] | [INFO] [stdout] 592 | if (*node).links[lvl].is_none() { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:592:24 [INFO] [stdout] | [INFO] [stdout] 592 | if (*node).links[lvl].is_none() { [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] 592 | if (&(*node).links)[lvl].is_none() { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:603:24 [INFO] [stdout] | [INFO] [stdout] 603 | if (*prev_node).links[lvl] == Some(return_node) { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:603:24 [INFO] [stdout] | [INFO] [stdout] 603 | if (*prev_node).links[lvl] == Some(return_node) { [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] 603 | if (&(*prev_node).links)[lvl] == Some(return_node) { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:604:51 [INFO] [stdout] | [INFO] [stdout] 604 | (*prev_node).links[lvl] = (*return_node).links[lvl]; [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:604:51 [INFO] [stdout] | [INFO] [stdout] 604 | (*prev_node).links[lvl] = (*return_node).links[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] 604 | (*prev_node).links[lvl] = (&(*return_node).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:604:25 [INFO] [stdout] | [INFO] [stdout] 604 | (*prev_node).links[lvl] = (*return_node).links[lvl]; [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/ordered_skiplist.rs:604:25 [INFO] [stdout] | [INFO] [stdout] 604 | (*prev_node).links[lvl] = (*return_node).links[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] 604 | (&mut (*prev_node).links)[lvl] = (*return_node).links[lvl]; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:605:56 [INFO] [stdout] | [INFO] [stdout] 605 | (*prev_node).links_len[lvl] += (*return_node).links_len[lvl] - 1; [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: `&Vec` [INFO] [stdout] --> src/ordered_skiplist.rs:605:56 [INFO] [stdout] | [INFO] [stdout] 605 | (*prev_node).links_len[lvl] += (*return_node).links_len[lvl] - 1; [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] 605 | (*prev_node).links_len[lvl] += (&(*return_node).links_len)[lvl] - 1; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:605:25 [INFO] [stdout] | [INFO] [stdout] 605 | (*prev_node).links_len[lvl] += (*return_node).links_len[lvl] - 1; [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/ordered_skiplist.rs:605:25 [INFO] [stdout] | [INFO] [stdout] 605 | (*prev_node).links_len[lvl] += (*return_node).links_len[lvl] - 1; [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] 605 | (&mut (*prev_node).links_len)[lvl] += (*return_node).links_len[lvl] - 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:607:25 [INFO] [stdout] | [INFO] [stdout] 607 | (*prev_node).links_len[lvl] -= 1; [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/ordered_skiplist.rs:607:25 [INFO] [stdout] | [INFO] [stdout] 607 | (*prev_node).links_len[lvl] -= 1; [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] 607 | (&mut (*prev_node).links_len)[lvl] -= 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:610:42 [INFO] [stdout] | [INFO] [stdout] 610 | if let Some(next_node) = (*return_node).links[0] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:610:42 [INFO] [stdout] | [INFO] [stdout] 610 | if let Some(next_node) = (*return_node).links[0] { [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] 610 | if let Some(next_node) = (&(*return_node).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:667:44 [INFO] [stdout] | [INFO] [stdout] 667 | while let Some(next) = (*node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:667:44 [INFO] [stdout] | [INFO] [stdout] 667 | while let Some(next) = (*node).links[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] 667 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:676:44 [INFO] [stdout] | [INFO] [stdout] 676 | while let Some(next) = (*node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:676:44 [INFO] [stdout] | [INFO] [stdout] 676 | while let Some(next) = (*node).links[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] 676 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:702:24 [INFO] [stdout] | [INFO] [stdout] 702 | if (*node).links[lvl].is_none() { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:702:24 [INFO] [stdout] | [INFO] [stdout] 702 | if (*node).links[lvl].is_none() { [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] 702 | if (&(*node).links)[lvl].is_none() { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:711:24 [INFO] [stdout] | [INFO] [stdout] 711 | if (*prev_node).links[lvl] == Some(return_node) { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:711:24 [INFO] [stdout] | [INFO] [stdout] 711 | if (*prev_node).links[lvl] == Some(return_node) { [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] 711 | if (&(*prev_node).links)[lvl] == Some(return_node) { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:712:51 [INFO] [stdout] | [INFO] [stdout] 712 | (*prev_node).links[lvl] = (*return_node).links[lvl]; [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:712:51 [INFO] [stdout] | [INFO] [stdout] 712 | (*prev_node).links[lvl] = (*return_node).links[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] 712 | (*prev_node).links[lvl] = (&(*return_node).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:712:25 [INFO] [stdout] | [INFO] [stdout] 712 | (*prev_node).links[lvl] = (*return_node).links[lvl]; [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/ordered_skiplist.rs:712:25 [INFO] [stdout] | [INFO] [stdout] 712 | (*prev_node).links[lvl] = (*return_node).links[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] 712 | (&mut (*prev_node).links)[lvl] = (*return_node).links[lvl]; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:713:56 [INFO] [stdout] | [INFO] [stdout] 713 | (*prev_node).links_len[lvl] += (*return_node).links_len[lvl] - 1; [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: `&Vec` [INFO] [stdout] --> src/ordered_skiplist.rs:713:56 [INFO] [stdout] | [INFO] [stdout] 713 | (*prev_node).links_len[lvl] += (*return_node).links_len[lvl] - 1; [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] 713 | (*prev_node).links_len[lvl] += (&(*return_node).links_len)[lvl] - 1; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:713:25 [INFO] [stdout] | [INFO] [stdout] 713 | (*prev_node).links_len[lvl] += (*return_node).links_len[lvl] - 1; [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/ordered_skiplist.rs:713:25 [INFO] [stdout] | [INFO] [stdout] 713 | (*prev_node).links_len[lvl] += (*return_node).links_len[lvl] - 1; [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] 713 | (&mut (*prev_node).links_len)[lvl] += (*return_node).links_len[lvl] - 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:715:25 [INFO] [stdout] | [INFO] [stdout] 715 | (*prev_node).links_len[lvl] -= 1; [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/ordered_skiplist.rs:715:25 [INFO] [stdout] | [INFO] [stdout] 715 | (*prev_node).links_len[lvl] -= 1; [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] 715 | (&mut (*prev_node).links_len)[lvl] -= 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:718:42 [INFO] [stdout] | [INFO] [stdout] 718 | if let Some(next_node) = (*return_node).links[0] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:718:42 [INFO] [stdout] | [INFO] [stdout] 718 | if let Some(next_node) = (*return_node).links[0] { [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] 718 | if let Some(next_node) = (&(*return_node).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:759:41 [INFO] [stdout] | [INFO] [stdout] 759 | while &(index_sum + (*node).links_len[lvl]) < index { [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: `&Vec` [INFO] [stdout] --> src/ordered_skiplist.rs:759:41 [INFO] [stdout] | [INFO] [stdout] 759 | while &(index_sum + (*node).links_len[lvl]) < index { [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] 759 | while &(index_sum + (&(*node).links_len)[lvl]) < index { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:760:38 [INFO] [stdout] | [INFO] [stdout] 760 | index_sum += (*node).links_len[lvl]; [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: `&Vec` [INFO] [stdout] --> src/ordered_skiplist.rs:760:38 [INFO] [stdout] | [INFO] [stdout] 760 | index_sum += (*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] 760 | index_sum += (&(*node).links_len)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:761:32 [INFO] [stdout] | [INFO] [stdout] 761 | node = (*node).links[lvl].unwrap(); [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:761:32 [INFO] [stdout] | [INFO] [stdout] 761 | node = (*node).links[lvl].unwrap(); [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] 761 | node = (&(*node).links)[lvl].unwrap(); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:764:38 [INFO] [stdout] | [INFO] [stdout] 764 | if &(index_sum + (*node).links_len[lvl]) == index { [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: `&Vec` [INFO] [stdout] --> src/ordered_skiplist.rs:764:38 [INFO] [stdout] | [INFO] [stdout] 764 | if &(index_sum + (*node).links_len[lvl]) == index { [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] 764 | if &(index_sum + (&(*node).links_len)[lvl]) == index { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:765:45 [INFO] [stdout] | [INFO] [stdout] 765 | if let Some(next) = (*node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:765:45 [INFO] [stdout] | [INFO] [stdout] 765 | if let Some(next) = (*node).links[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] 765 | if let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:767:50 [INFO] [stdout] | [INFO] [stdout] 767 | ... (*node).links[lvl] = (*next).links[lvl]; [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:767:50 [INFO] [stdout] | [INFO] [stdout] 767 | ... (*node).links[lvl] = (*next).links[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] 767 | (*node).links[lvl] = (&(*next).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:767:29 [INFO] [stdout] | [INFO] [stdout] 767 | ... (*node).links[lvl] = (*next).links[lvl]; [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/ordered_skiplist.rs:767:29 [INFO] [stdout] | [INFO] [stdout] 767 | ... (*node).links[lvl] = (*next).links[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] 767 | (&mut (*node).links)[lvl] = (*next).links[lvl]; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:768:55 [INFO] [stdout] | [INFO] [stdout] 768 | ... (*node).links_len[lvl] += (*next).links_len[lvl] - 1; [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: `&Vec` [INFO] [stdout] --> src/ordered_skiplist.rs:768:55 [INFO] [stdout] | [INFO] [stdout] 768 | ... (*node).links_len[lvl] += (*next).links_len[lvl] - 1; [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] 768 | (*node).links_len[lvl] += (&(*next).links_len)[lvl] - 1; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:768:29 [INFO] [stdout] | [INFO] [stdout] 768 | ... (*node).links_len[lvl] += (*next).links_len[lvl] - 1; [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/ordered_skiplist.rs:768:29 [INFO] [stdout] | [INFO] [stdout] 768 | ... (*node).links_len[lvl] += (*next).links_len[lvl] - 1; [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] 768 | (&mut (*node).links_len)[lvl] += (*next).links_len[lvl] - 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:771:25 [INFO] [stdout] | [INFO] [stdout] 771 | (*node).links_len[lvl] -= 1; [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/ordered_skiplist.rs:771:25 [INFO] [stdout] | [INFO] [stdout] 771 | (*node).links_len[lvl] -= 1; [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] 771 | (&mut (*node).links_len)[lvl] -= 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:775:37 [INFO] [stdout] | [INFO] [stdout] 775 | if let Some(next) = (*return_node).links[0] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:775:37 [INFO] [stdout] | [INFO] [stdout] 775 | if let Some(next) = (*return_node).links[0] { [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] 775 | if let Some(next) = (&(*return_node).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:816:41 [INFO] [stdout] | [INFO] [stdout] 816 | if let Some(next) = (*node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:816:41 [INFO] [stdout] | [INFO] [stdout] 816 | if let Some(next) = (*node).links[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] 816 | if let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:819:54 [INFO] [stdout] | [INFO] [stdout] 819 | ... (*node).links[lvl] = (*next).links[lvl]; [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:819:54 [INFO] [stdout] | [INFO] [stdout] 819 | ... (*node).links[lvl] = (*next).links[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] 819 | (*node).links[lvl] = (&(*next).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:819:33 [INFO] [stdout] | [INFO] [stdout] 819 | ... (*node).links[lvl] = (*next).links[lvl]; [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/ordered_skiplist.rs:819:33 [INFO] [stdout] | [INFO] [stdout] 819 | ... (*node).links[lvl] = (*next).links[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] 819 | (&mut (*node).links)[lvl] = (*next).links[lvl]; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:829:69 [INFO] [stdout] | [INFO] [stdout] 829 | (*node).links_len[lvl] = self.link_length(node, (*node).links[lvl], lvl) [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:829:69 [INFO] [stdout] | [INFO] [stdout] 829 | (*node).links_len[lvl] = self.link_length(node, (*node).links[lvl], 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] 829 | (*node).links_len[lvl] = self.link_length(node, (&(*node).links)[lvl], lvl) [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:829:21 [INFO] [stdout] | [INFO] [stdout] 829 | (*node).links_len[lvl] = self.link_length(node, (*node).links[lvl], lvl) [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/ordered_skiplist.rs:829:21 [INFO] [stdout] | [INFO] [stdout] 829 | (*node).links_len[lvl] = self.link_length(node, (*node).links[lvl], 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] 829 | (&mut (*node).links_len)[lvl] = self.link_length(node, (*node).links[lvl], lvl) [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:832:41 [INFO] [stdout] | [INFO] [stdout] 832 | if let Some(next) = (*node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:832:41 [INFO] [stdout] | [INFO] [stdout] 832 | if let Some(next) = (*node).links[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] 832 | if let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:843:37 [INFO] [stdout] | [INFO] [stdout] 843 | if let Some(next) = (*node).links[0] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:843:37 [INFO] [stdout] | [INFO] [stdout] 843 | if let Some(next) = (*node).links[0] { [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] 843 | if let Some(next) = (&(*node).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/ordered_skiplist.rs:847:21 [INFO] [stdout] | [INFO] [stdout] 847 | mem::replace(&mut (*prev).next, mem::replace(&mut (*node).next, None)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 847 | let _ = mem::replace(&mut (*prev).next, mem::replace(&mut (*node).next, None)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:879:41 [INFO] [stdout] | [INFO] [stdout] 879 | if let Some(next) = (*node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:879:41 [INFO] [stdout] | [INFO] [stdout] 879 | if let Some(next) = (*node).links[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] 879 | if let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:883:58 [INFO] [stdout] | [INFO] [stdout] 883 | ... (*node).links[lvl] = (*next).links[lvl]; [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:883:58 [INFO] [stdout] | [INFO] [stdout] 883 | ... (*node).links[lvl] = (*next).links[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] 883 | (*node).links[lvl] = (&(*next).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:883:37 [INFO] [stdout] | [INFO] [stdout] 883 | ... (*node).links[lvl] = (*next).links[lvl]; [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/ordered_skiplist.rs:883:37 [INFO] [stdout] | [INFO] [stdout] 883 | ... (*node).links[lvl] = (*next).links[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] 883 | (&mut (*node).links)[lvl] = (*next).links[lvl]; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:897:54 [INFO] [stdout] | [INFO] [stdout] 897 | ... (*node).links[lvl] = (*next).links[lvl]; [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:897:54 [INFO] [stdout] | [INFO] [stdout] 897 | ... (*node).links[lvl] = (*next).links[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] 897 | (*node).links[lvl] = (&(*next).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:897:33 [INFO] [stdout] | [INFO] [stdout] 897 | ... (*node).links[lvl] = (*next).links[lvl]; [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/ordered_skiplist.rs:897:33 [INFO] [stdout] | [INFO] [stdout] 897 | ... (*node).links[lvl] = (*next).links[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] 897 | (&mut (*node).links)[lvl] = (*next).links[lvl]; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:904:69 [INFO] [stdout] | [INFO] [stdout] 904 | (*node).links_len[lvl] = self.link_length(node, (*node).links[lvl], lvl) [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:904:69 [INFO] [stdout] | [INFO] [stdout] 904 | (*node).links_len[lvl] = self.link_length(node, (*node).links[lvl], 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] 904 | (*node).links_len[lvl] = self.link_length(node, (&(*node).links)[lvl], lvl) [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:904:21 [INFO] [stdout] | [INFO] [stdout] 904 | (*node).links_len[lvl] = self.link_length(node, (*node).links[lvl], lvl) [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/ordered_skiplist.rs:904:21 [INFO] [stdout] | [INFO] [stdout] 904 | (*node).links_len[lvl] = self.link_length(node, (*node).links[lvl], 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] 904 | (&mut (*node).links_len)[lvl] = self.link_length(node, (*node).links[lvl], lvl) [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:907:41 [INFO] [stdout] | [INFO] [stdout] 907 | if let Some(next) = (*node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:907:41 [INFO] [stdout] | [INFO] [stdout] 907 | if let Some(next) = (*node).links[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] 907 | if let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:918:37 [INFO] [stdout] | [INFO] [stdout] 918 | if let Some(next) = (*node).links[0] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:918:37 [INFO] [stdout] | [INFO] [stdout] 918 | if let Some(next) = (*node).links[0] { [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] 918 | if let Some(next) = (&(*node).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/ordered_skiplist.rs:922:21 [INFO] [stdout] | [INFO] [stdout] 922 | mem::replace(&mut (*prev).next, mem::replace(&mut (*node).next, None)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 922 | let _ = mem::replace(&mut (*prev).next, mem::replace(&mut (*node).next, None)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/ordered_skiplist.rs:963:17 [INFO] [stdout] | [INFO] [stdout] 963 | 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] 963 | 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:990:18 [INFO] [stdout] | [INFO] [stdout] 990 | 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] 990 | pub fn range(&self, min: Bound<&T>, max: Bound<&T>) -> Iter<'_, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1017:44 [INFO] [stdout] | [INFO] [stdout] 1017 | while let Some(next) = (*node).links[0] { [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:1017:44 [INFO] [stdout] | [INFO] [stdout] 1017 | while let Some(next) = (*node).links[0] { [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] 1017 | while let Some(next) = (&(*node).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1035:52 [INFO] [stdout] | [INFO] [stdout] 1035 | ... while let Some(next) = (*node).links[0] { [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:1035:52 [INFO] [stdout] | [INFO] [stdout] 1035 | ... while let Some(next) = (*node).links[0] { [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] 1035 | while let Some(next) = (&(*node).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1109:35 [INFO] [stdout] | [INFO] [stdout] 1109 | length_sum += (*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:1109:35 [INFO] [stdout] | [INFO] [stdout] 1109 | length_sum += (*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] 1109 | length_sum += (&(*node).links_len)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1112:32 [INFO] [stdout] | [INFO] [stdout] 1112 | assert_eq!((*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:1112:32 [INFO] [stdout] | [INFO] [stdout] 1112 | assert_eq!((*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] 1112 | assert_eq!((&(*node).links_len)[lvl], [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1113:75 [INFO] [stdout] | [INFO] [stdout] 1113 | ... self.link_length(node as *mut SkipNode, (*node).links[lvl], 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:1113:75 [INFO] [stdout] | [INFO] [stdout] 1113 | ... self.link_length(node as *mut SkipNode, (*node).links[lvl], 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] 1113 | self.link_length(node as *mut SkipNode, (&(*node).links)[lvl], lvl) [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1117:59 [INFO] [stdout] | [INFO] [stdout] 1117 | assert!((*node).next.is_some() == (*node).links[lvl].is_some()); [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:1117:59 [INFO] [stdout] | [INFO] [stdout] 1117 | assert!((*node).next.is_some() == (*node).links[lvl].is_some()); [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] 1117 | assert!((*node).next.is_some() == (&(*node).links)[lvl].is_some()); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1120:40 [INFO] [stdout] | [INFO] [stdout] 1120 | ... assert_eq!((*prev).links[lvl], Some(node as *mut SkipNode)); [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:1120:40 [INFO] [stdout] | [INFO] [stdout] 1120 | ... assert_eq!((*prev).links[lvl], Some(node as *mut SkipNode)); [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] 1120 | assert_eq!((&(*prev).links)[lvl], Some(node as *mut SkipNode)); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1125:41 [INFO] [stdout] | [INFO] [stdout] 1125 | if let Some(next) = (*node).links[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:1125:41 [INFO] [stdout] | [INFO] [stdout] 1125 | if let Some(next) = (*node).links[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] 1125 | if let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1167:27 [INFO] [stdout] | [INFO] [stdout] 1167 | match (*node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:1167:27 [INFO] [stdout] | [INFO] [stdout] 1167 | match (*node).links[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] 1167 | match (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1174:31 [INFO] [stdout] | [INFO] [stdout] 1174 | length += (*node).links_len[lvl - 1]; [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: `&Vec` [INFO] [stdout] --> src/ordered_skiplist.rs:1174:31 [INFO] [stdout] | [INFO] [stdout] 1174 | length += (*node).links_len[lvl - 1]; [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] 1174 | length += (&(*node).links_len)[lvl - 1]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1175:27 [INFO] [stdout] | [INFO] [stdout] 1175 | match (*node).links[lvl - 1] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:1175:27 [INFO] [stdout] | [INFO] [stdout] 1175 | match (*node).links[lvl - 1] { [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] 1175 | match (&(*node).links)[lvl - 1] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1200:40 [INFO] [stdout] | [INFO] [stdout] 1200 | while let Some(next) = (*node).links[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:1200:40 [INFO] [stdout] | [INFO] [stdout] 1200 | while let Some(next) = (*node).links[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] 1200 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1224:40 [INFO] [stdout] | [INFO] [stdout] 1224 | while let Some(next) = (*node).links[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:1224:40 [INFO] [stdout] | [INFO] [stdout] 1224 | while let Some(next) = (*node).links[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] 1224 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1262:39 [INFO] [stdout] | [INFO] [stdout] 1262 | while index_sum + (*node).links_len[lvl] <= index { [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:1262:39 [INFO] [stdout] | [INFO] [stdout] 1262 | while index_sum + (*node).links_len[lvl] <= index { [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] 1262 | while index_sum + (&(*node).links_len)[lvl] <= index { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1263:38 [INFO] [stdout] | [INFO] [stdout] 1263 | index_sum += (*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:1263:38 [INFO] [stdout] | [INFO] [stdout] 1263 | index_sum += (*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] 1263 | index_sum += (&(*node).links_len)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1264:32 [INFO] [stdout] | [INFO] [stdout] 1264 | node = (*node).links[lvl].unwrap(); [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:1264:32 [INFO] [stdout] | [INFO] [stdout] 1264 | node = (*node).links[lvl].unwrap(); [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] 1264 | node = (&(*node).links)[lvl].unwrap(); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1291:61 [INFO] [stdout] | [INFO] [stdout] 1291 | 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:1291:61 [INFO] [stdout] | [INFO] [stdout] 1291 | 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] 1291 | let max_str_len = format!("{} -{}-", value, (&(*node).links_len)[(*node).level]).len(); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1299:63 [INFO] [stdout] | [INFO] [stdout] 1299 | value_len = 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:1299:63 [INFO] [stdout] | [INFO] [stdout] 1299 | value_len = 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] 1299 | value_len = format!("{} -{}-", value, (&(*node).links_len)[lvl]); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1319:37 [INFO] [stdout] | [INFO] [stdout] 1319 | if let Some(next) = (*node).links[0] { [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:1319:37 [INFO] [stdout] | [INFO] [stdout] 1319 | if let Some(next) = (*node).links[0] { [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] 1319 | if let Some(next) = (&(*node).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/ordered_skiplist.rs:1347:17 [INFO] [stdout] | [INFO] [stdout] 1347 | mem::replace(&mut (*node).next, mem::replace(&mut next.next, None)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1347 | let _ = mem::replace(&mut (*node).next, mem::replace(&mut next.next, None)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1507:33 [INFO] [stdout] | [INFO] [stdout] 1507 | if let Some(next) = (*self.start).links[0] { [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:1507:33 [INFO] [stdout] | [INFO] [stdout] 1507 | if let Some(next) = (*self.start).links[0] { [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] 1507 | if let Some(next) = (&(*self.start).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1556:33 [INFO] [stdout] | [INFO] [stdout] 1556 | if let Some(next) = (*self.head).links[0] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:1556:33 [INFO] [stdout] | [INFO] [stdout] 1556 | if let Some(next) = (*self.head).links[0] { [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] 1556 | if let Some(next) = (&(*self.head).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1559:51 [INFO] [stdout] | [INFO] [stdout] 1559 | (*self.head).links[lvl] = (*next).links[lvl]; [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:1559:51 [INFO] [stdout] | [INFO] [stdout] 1559 | (*self.head).links[lvl] = (*next).links[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] 1559 | (*self.head).links[lvl] = (&(*next).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1559:25 [INFO] [stdout] | [INFO] [stdout] 1559 | (*self.head).links[lvl] = (*next).links[lvl]; [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/ordered_skiplist.rs:1559:25 [INFO] [stdout] | [INFO] [stdout] 1559 | (*self.head).links[lvl] = (*next).links[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] 1559 | (&mut (*self.head).links)[lvl] = (*next).links[lvl]; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1560:55 [INFO] [stdout] | [INFO] [stdout] 1560 | (*self.head).links_len[lvl] = (*next).links_len[lvl] - 1; [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: `&Vec` [INFO] [stdout] --> src/ordered_skiplist.rs:1560:55 [INFO] [stdout] | [INFO] [stdout] 1560 | (*self.head).links_len[lvl] = (*next).links_len[lvl] - 1; [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] 1560 | (*self.head).links_len[lvl] = (&(*next).links_len)[lvl] - 1; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1560:25 [INFO] [stdout] | [INFO] [stdout] 1560 | (*self.head).links_len[lvl] = (*next).links_len[lvl] - 1; [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/ordered_skiplist.rs:1560:25 [INFO] [stdout] | [INFO] [stdout] 1560 | (*self.head).links_len[lvl] = (*next).links_len[lvl] - 1; [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] 1560 | (&mut (*self.head).links_len)[lvl] = (*next).links_len[lvl] - 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1562:25 [INFO] [stdout] | [INFO] [stdout] 1562 | (*self.head).links_len[lvl] -= 1; [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/ordered_skiplist.rs:1562:25 [INFO] [stdout] | [INFO] [stdout] 1562 | (*self.head).links_len[lvl] -= 1; [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] 1562 | (&mut (*self.head).links_len)[lvl] -= 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1565:37 [INFO] [stdout] | [INFO] [stdout] 1565 | if let Some(next) = (*self.head).links[0] { [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: `&Vec>>` [INFO] [stdout] --> src/ordered_skiplist.rs:1565:37 [INFO] [stdout] | [INFO] [stdout] 1565 | if let Some(next) = (*self.head).links[0] { [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] 1565 | if let Some(next) = (&(*self.head).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/ordered_skiplist.rs:1597:17 [INFO] [stdout] | [INFO] [stdout] 1597 | (*self.end).links[0] = None; [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/ordered_skiplist.rs:1597:17 [INFO] [stdout] | [INFO] [stdout] 1597 | (*self.end).links[0] = None; [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] 1597 | (&mut (*self.end).links)[0] = None; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:206:44 [INFO] [stdout] | [INFO] [stdout] 206 | while let Some(next) = (*node).links[lvl] { [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:206:44 [INFO] [stdout] | [INFO] [stdout] 206 | while let Some(next) = (*node).links[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] 206 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:216:44 [INFO] [stdout] | [INFO] [stdout] 216 | while let Some(next) = (*node).links[lvl] { [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:216:44 [INFO] [stdout] | [INFO] [stdout] 216 | while let Some(next) = (*node).links[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] 216 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:237:24 [INFO] [stdout] | [INFO] [stdout] 237 | if (*node).links[lvl].is_none() { [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:237:24 [INFO] [stdout] | [INFO] [stdout] 237 | if (*node).links[lvl].is_none() { [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] 237 | if (&(*node).links)[lvl].is_none() { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:256:47 [INFO] [stdout] | [INFO] [stdout] 256 | new_node.links[lvl] = (*prev_node).links[lvl]; [INFO] [stdout] | ^^---------^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:256:47 [INFO] [stdout] | [INFO] [stdout] 256 | new_node.links[lvl] = (*prev_node).links[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] 256 | new_node.links[lvl] = (&(*prev_node).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:257:25 [INFO] [stdout] | [INFO] [stdout] 257 | (*prev_node).links[lvl] = Some(new_node_ptr); [INFO] [stdout] | ^^---------^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:257:25 [INFO] [stdout] | [INFO] [stdout] 257 | (*prev_node).links[lvl] = Some(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] 257 | (&mut (*prev_node).links)[lvl] = Some(new_node_ptr); [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:268:55 [INFO] [stdout] | [INFO] [stdout] 268 | ... new_node.links_len[lvl] = (*prev_node).links_len[lvl] - length + 1; [INFO] [stdout] | ^^---------^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:268:55 [INFO] [stdout] | [INFO] [stdout] 268 | ... new_node.links_len[lvl] = (*prev_node).links_len[lvl] - length + 1; [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] 268 | new_node.links_len[lvl] = (&(*prev_node).links_len)[lvl] - length + 1; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:269:29 [INFO] [stdout] | [INFO] [stdout] 269 | ... (*prev_node).links_len[lvl] = length; [INFO] [stdout] | ^^---------^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:269:29 [INFO] [stdout] | [INFO] [stdout] 269 | ... (*prev_node).links_len[lvl] = length; [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] 269 | (&mut (*prev_node).links_len)[lvl] = length; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:272:25 [INFO] [stdout] | [INFO] [stdout] 272 | (*prev_node).links_len[lvl] += 1; [INFO] [stdout] | ^^---------^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:272:25 [INFO] [stdout] | [INFO] [stdout] 272 | (*prev_node).links_len[lvl] += 1; [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] 272 | (&mut (*prev_node).links_len)[lvl] += 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/skipmap.rs:308:17 [INFO] [stdout] | [INFO] [stdout] 308 | mem::replace(&mut (*node).next, mem::replace(&mut next.next, None)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 308 | let _ = mem::replace(&mut (*node).next, mem::replace(&mut next.next, None)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/skipmap.rs:313:9 [INFO] [stdout] | [INFO] [stdout] 313 | mem::replace(&mut self.head, new_head); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 313 | let _ = mem::replace(&mut self.head, new_head); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:489:40 [INFO] [stdout] | [INFO] [stdout] 489 | while let Some(next) = (*node).links[lvl] { [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:489:40 [INFO] [stdout] | [INFO] [stdout] 489 | while let Some(next) = (*node).links[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] 489 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:539:40 [INFO] [stdout] | [INFO] [stdout] 539 | while let Some(next) = (*node).links[lvl] { [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:539:40 [INFO] [stdout] | [INFO] [stdout] 539 | while let Some(next) = (*node).links[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] 539 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:628:40 [INFO] [stdout] | [INFO] [stdout] 628 | while let Some(next) = (*node).links[lvl] { [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:628:40 [INFO] [stdout] | [INFO] [stdout] 628 | while let Some(next) = (*node).links[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] 628 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:685:44 [INFO] [stdout] | [INFO] [stdout] 685 | while let Some(next) = (*node).links[lvl] { [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:685:44 [INFO] [stdout] | [INFO] [stdout] 685 | while let Some(next) = (*node).links[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] 685 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:696:24 [INFO] [stdout] | [INFO] [stdout] 696 | if (*node).links[lvl].is_none() { [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:696:24 [INFO] [stdout] | [INFO] [stdout] 696 | if (*node).links[lvl].is_none() { [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] 696 | if (&(*node).links)[lvl].is_none() { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:700:44 [INFO] [stdout] | [INFO] [stdout] 700 | while let Some(next) = (*node).links[lvl] { [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:700:44 [INFO] [stdout] | [INFO] [stdout] 700 | while let Some(next) = (*node).links[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] 700 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:726:24 [INFO] [stdout] | [INFO] [stdout] 726 | if (*prev_node).links[lvl] == Some(return_node) { [INFO] [stdout] | ^^---------^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:726:24 [INFO] [stdout] | [INFO] [stdout] 726 | if (*prev_node).links[lvl] == Some(return_node) { [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] 726 | if (&(*prev_node).links)[lvl] == Some(return_node) { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:727:51 [INFO] [stdout] | [INFO] [stdout] 727 | (*prev_node).links[lvl] = (*return_node).links[lvl]; [INFO] [stdout] | ^^-----------^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:727:51 [INFO] [stdout] | [INFO] [stdout] 727 | (*prev_node).links[lvl] = (*return_node).links[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] 727 | (*prev_node).links[lvl] = (&(*return_node).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:727:25 [INFO] [stdout] | [INFO] [stdout] 727 | (*prev_node).links[lvl] = (*return_node).links[lvl]; [INFO] [stdout] | ^^---------^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:727:25 [INFO] [stdout] | [INFO] [stdout] 727 | (*prev_node).links[lvl] = (*return_node).links[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] 727 | (&mut (*prev_node).links)[lvl] = (*return_node).links[lvl]; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:728:56 [INFO] [stdout] | [INFO] [stdout] 728 | (*prev_node).links_len[lvl] += (*return_node).links_len[lvl] - 1; [INFO] [stdout] | ^^-----------^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:728:56 [INFO] [stdout] | [INFO] [stdout] 728 | (*prev_node).links_len[lvl] += (*return_node).links_len[lvl] - 1; [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] 728 | (*prev_node).links_len[lvl] += (&(*return_node).links_len)[lvl] - 1; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:728:25 [INFO] [stdout] | [INFO] [stdout] 728 | (*prev_node).links_len[lvl] += (*return_node).links_len[lvl] - 1; [INFO] [stdout] | ^^---------^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:728:25 [INFO] [stdout] | [INFO] [stdout] 728 | (*prev_node).links_len[lvl] += (*return_node).links_len[lvl] - 1; [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] 728 | (&mut (*prev_node).links_len)[lvl] += (*return_node).links_len[lvl] - 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:730:25 [INFO] [stdout] | [INFO] [stdout] 730 | (*prev_node).links_len[lvl] -= 1; [INFO] [stdout] | ^^---------^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:730:25 [INFO] [stdout] | [INFO] [stdout] 730 | (*prev_node).links_len[lvl] -= 1; [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] 730 | (&mut (*prev_node).links_len)[lvl] -= 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:733:42 [INFO] [stdout] | [INFO] [stdout] 733 | if let Some(next_node) = (*return_node).links[0] { [INFO] [stdout] | ^^-----------^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:733:42 [INFO] [stdout] | [INFO] [stdout] 733 | if let Some(next_node) = (*return_node).links[0] { [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] 733 | if let Some(next_node) = (&(*return_node).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:776:41 [INFO] [stdout] | [INFO] [stdout] 776 | while &(index_sum + (*node).links_len[lvl]) < index { [INFO] [stdout] | ^^----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:776:41 [INFO] [stdout] | [INFO] [stdout] 776 | while &(index_sum + (*node).links_len[lvl]) < index { [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] 776 | while &(index_sum + (&(*node).links_len)[lvl]) < index { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:777:38 [INFO] [stdout] | [INFO] [stdout] 777 | index_sum += (*node).links_len[lvl]; [INFO] [stdout] | ^^----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:777:38 [INFO] [stdout] | [INFO] [stdout] 777 | index_sum += (*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] 777 | index_sum += (&(*node).links_len)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:778:32 [INFO] [stdout] | [INFO] [stdout] 778 | node = (*node).links[lvl].unwrap(); [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:778:32 [INFO] [stdout] | [INFO] [stdout] 778 | node = (*node).links[lvl].unwrap(); [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] 778 | node = (&(*node).links)[lvl].unwrap(); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:781:38 [INFO] [stdout] | [INFO] [stdout] 781 | if &(index_sum + (*node).links_len[lvl]) == index { [INFO] [stdout] | ^^----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:781:38 [INFO] [stdout] | [INFO] [stdout] 781 | if &(index_sum + (*node).links_len[lvl]) == index { [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] 781 | if &(index_sum + (&(*node).links_len)[lvl]) == index { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:782:45 [INFO] [stdout] | [INFO] [stdout] 782 | if let Some(next) = (*node).links[lvl] { [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:782:45 [INFO] [stdout] | [INFO] [stdout] 782 | if let Some(next) = (*node).links[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] 782 | if let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:784:50 [INFO] [stdout] | [INFO] [stdout] 784 | ... (*node).links[lvl] = (*next).links[lvl]; [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:784:50 [INFO] [stdout] | [INFO] [stdout] 784 | ... (*node).links[lvl] = (*next).links[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] 784 | (*node).links[lvl] = (&(*next).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:784:29 [INFO] [stdout] | [INFO] [stdout] 784 | ... (*node).links[lvl] = (*next).links[lvl]; [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:784:29 [INFO] [stdout] | [INFO] [stdout] 784 | ... (*node).links[lvl] = (*next).links[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] 784 | (&mut (*node).links)[lvl] = (*next).links[lvl]; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:785:55 [INFO] [stdout] | [INFO] [stdout] 785 | ... (*node).links_len[lvl] += (*next).links_len[lvl] - 1; [INFO] [stdout] | ^^----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:785:55 [INFO] [stdout] | [INFO] [stdout] 785 | ... (*node).links_len[lvl] += (*next).links_len[lvl] - 1; [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] 785 | (*node).links_len[lvl] += (&(*next).links_len)[lvl] - 1; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:785:29 [INFO] [stdout] | [INFO] [stdout] 785 | ... (*node).links_len[lvl] += (*next).links_len[lvl] - 1; [INFO] [stdout] | ^^----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:785:29 [INFO] [stdout] | [INFO] [stdout] 785 | ... (*node).links_len[lvl] += (*next).links_len[lvl] - 1; [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] 785 | (&mut (*node).links_len)[lvl] += (*next).links_len[lvl] - 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:788:25 [INFO] [stdout] | [INFO] [stdout] 788 | (*node).links_len[lvl] -= 1; [INFO] [stdout] | ^^----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:788:25 [INFO] [stdout] | [INFO] [stdout] 788 | (*node).links_len[lvl] -= 1; [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] 788 | (&mut (*node).links_len)[lvl] -= 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:792:37 [INFO] [stdout] | [INFO] [stdout] 792 | if let Some(next) = (*return_node).links[0] { [INFO] [stdout] | ^^-----------^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:792:37 [INFO] [stdout] | [INFO] [stdout] 792 | if let Some(next) = (*return_node).links[0] { [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] 792 | if let Some(next) = (&(*return_node).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/skipmap.rs:840:17 [INFO] [stdout] | [INFO] [stdout] 840 | 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] 840 | 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:865:21 [INFO] [stdout] | [INFO] [stdout] 865 | pub fn iter_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] 865 | pub fn iter_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:888:17 [INFO] [stdout] | [INFO] [stdout] 888 | 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] 888 | 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:910:19 [INFO] [stdout] | [INFO] [stdout] 910 | 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] 910 | 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:937:21 [INFO] [stdout] | [INFO] [stdout] 937 | 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] 937 | pub fn range(&self, min: Bound<&Q>, max: Bound<&Q>) -> Iter<'_, K, V> [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1013:35 [INFO] [stdout] | [INFO] [stdout] 1013 | length_sum += (*node).links_len[lvl]; [INFO] [stdout] | ^^----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:1013:35 [INFO] [stdout] | [INFO] [stdout] 1013 | length_sum += (*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] 1013 | length_sum += (&(*node).links_len)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1016:32 [INFO] [stdout] | [INFO] [stdout] 1016 | assert_eq!((*node).links_len[lvl], [INFO] [stdout] | ^^----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:1016:32 [INFO] [stdout] | [INFO] [stdout] 1016 | assert_eq!((*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] 1016 | assert_eq!((&(*node).links_len)[lvl], [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1018:49 [INFO] [stdout] | [INFO] [stdout] 1018 | ... (*node).links[lvl], [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:1018:49 [INFO] [stdout] | [INFO] [stdout] 1018 | ... (*node).links[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] 1018 | (&(*node).links)[lvl], [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1023:59 [INFO] [stdout] | [INFO] [stdout] 1023 | assert!((*node).next.is_some() == (*node).links[lvl].is_some()); [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:1023:59 [INFO] [stdout] | [INFO] [stdout] 1023 | assert!((*node).next.is_some() == (*node).links[lvl].is_some()); [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] 1023 | assert!((*node).next.is_some() == (&(*node).links)[lvl].is_some()); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1026:40 [INFO] [stdout] | [INFO] [stdout] 1026 | ... assert_eq!((*prev).links[lvl], Some(node as *mut SkipNode)); [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:1026:40 [INFO] [stdout] | [INFO] [stdout] 1026 | ... assert_eq!((*prev).links[lvl], Some(node as *mut SkipNode)); [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] 1026 | assert_eq!((&(*prev).links)[lvl], Some(node as *mut SkipNode)); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1031:41 [INFO] [stdout] | [INFO] [stdout] 1031 | if let Some(next) = (*node).links[lvl] { [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:1031:41 [INFO] [stdout] | [INFO] [stdout] 1031 | if let Some(next) = (*node).links[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] 1031 | if let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1073:27 [INFO] [stdout] | [INFO] [stdout] 1073 | match (*node).links[lvl] { [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:1073:27 [INFO] [stdout] | [INFO] [stdout] 1073 | match (*node).links[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] 1073 | match (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1080:31 [INFO] [stdout] | [INFO] [stdout] 1080 | length += (*node).links_len[lvl - 1]; [INFO] [stdout] | ^^----^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:1080:31 [INFO] [stdout] | [INFO] [stdout] 1080 | length += (*node).links_len[lvl - 1]; [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] 1080 | length += (&(*node).links_len)[lvl - 1]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1081:27 [INFO] [stdout] | [INFO] [stdout] 1081 | match (*node).links[lvl - 1] { [INFO] [stdout] | ^^----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:1081:27 [INFO] [stdout] | [INFO] [stdout] 1081 | match (*node).links[lvl - 1] { [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] 1081 | match (&(*node).links)[lvl - 1] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1106:40 [INFO] [stdout] | [INFO] [stdout] 1106 | while let Some(next) = (*node).links[lvl] { [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:1106:40 [INFO] [stdout] | [INFO] [stdout] 1106 | while let Some(next) = (*node).links[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] 1106 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1133:40 [INFO] [stdout] | [INFO] [stdout] 1133 | while let Some(next) = (*node).links[lvl] { [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:1133:40 [INFO] [stdout] | [INFO] [stdout] 1133 | while let Some(next) = (*node).links[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] 1133 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1168:39 [INFO] [stdout] | [INFO] [stdout] 1168 | while index_sum + (*node).links_len[lvl] <= index { [INFO] [stdout] | ^^----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:1168:39 [INFO] [stdout] | [INFO] [stdout] 1168 | while index_sum + (*node).links_len[lvl] <= index { [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] 1168 | while index_sum + (&(*node).links_len)[lvl] <= index { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1169:38 [INFO] [stdout] | [INFO] [stdout] 1169 | index_sum += (*node).links_len[lvl]; [INFO] [stdout] | ^^----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:1169:38 [INFO] [stdout] | [INFO] [stdout] 1169 | index_sum += (*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] 1169 | index_sum += (&(*node).links_len)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1170:32 [INFO] [stdout] | [INFO] [stdout] 1170 | node = (*node).links[lvl].unwrap(); [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:1170:32 [INFO] [stdout] | [INFO] [stdout] 1170 | node = (*node).links[lvl].unwrap(); [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] 1170 | node = (&(*node).links)[lvl].unwrap(); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1199:61 [INFO] [stdout] | [INFO] [stdout] 1199 | let max_str_len = format!("{} -{}-", value, (*node).links_len[(*node).level]).len(); [INFO] [stdout] | ^^----^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:1199:61 [INFO] [stdout] | [INFO] [stdout] 1199 | 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] 1199 | let max_str_len = format!("{} -{}-", value, (&(*node).links_len)[(*node).level]).len(); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1207:63 [INFO] [stdout] | [INFO] [stdout] 1207 | value_len = format!("{} -{}-", value, (*node).links_len[lvl]); [INFO] [stdout] | ^^----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:1207:63 [INFO] [stdout] | [INFO] [stdout] 1207 | value_len = 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] 1207 | value_len = format!("{} -{}-", value, (&(*node).links_len)[lvl]); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1227:37 [INFO] [stdout] | [INFO] [stdout] 1227 | if let Some(next) = (*node).links[0] { [INFO] [stdout] | ^^----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:1227:37 [INFO] [stdout] | [INFO] [stdout] 1227 | if let Some(next) = (*node).links[0] { [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] 1227 | if let Some(next) = (&(*node).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/skipmap.rs:1255:17 [INFO] [stdout] | [INFO] [stdout] 1255 | mem::replace(&mut (*node).next, mem::replace(&mut next.next, None)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1255 | let _ = mem::replace(&mut (*node).next, mem::replace(&mut next.next, None)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1451:33 [INFO] [stdout] | [INFO] [stdout] 1451 | if let Some(next) = (*self.start).links[0] { [INFO] [stdout] | ^^----------^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:1451:33 [INFO] [stdout] | [INFO] [stdout] 1451 | if let Some(next) = (*self.start).links[0] { [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] 1451 | if let Some(next) = (&(*self.start).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1508:33 [INFO] [stdout] | [INFO] [stdout] 1508 | if let Some(next) = (*self.start).links[0] { [INFO] [stdout] | ^^----------^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:1508:33 [INFO] [stdout] | [INFO] [stdout] 1508 | if let Some(next) = (*self.start).links[0] { [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] 1508 | if let Some(next) = (&(*self.start).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1560:33 [INFO] [stdout] | [INFO] [stdout] 1560 | if let Some(next) = (*self.head).links[0] { [INFO] [stdout] | ^^---------^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:1560:33 [INFO] [stdout] | [INFO] [stdout] 1560 | if let Some(next) = (*self.head).links[0] { [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] 1560 | if let Some(next) = (&(*self.head).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1563:51 [INFO] [stdout] | [INFO] [stdout] 1563 | (*self.head).links[lvl] = (*next).links[lvl]; [INFO] [stdout] | ^^----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:1563:51 [INFO] [stdout] | [INFO] [stdout] 1563 | (*self.head).links[lvl] = (*next).links[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] 1563 | (*self.head).links[lvl] = (&(*next).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1563:25 [INFO] [stdout] | [INFO] [stdout] 1563 | (*self.head).links[lvl] = (*next).links[lvl]; [INFO] [stdout] | ^^---------^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:1563:25 [INFO] [stdout] | [INFO] [stdout] 1563 | (*self.head).links[lvl] = (*next).links[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] 1563 | (&mut (*self.head).links)[lvl] = (*next).links[lvl]; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1564:55 [INFO] [stdout] | [INFO] [stdout] 1564 | (*self.head).links_len[lvl] = (*next).links_len[lvl] - 1; [INFO] [stdout] | ^^----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:1564:55 [INFO] [stdout] | [INFO] [stdout] 1564 | (*self.head).links_len[lvl] = (*next).links_len[lvl] - 1; [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] 1564 | (*self.head).links_len[lvl] = (&(*next).links_len)[lvl] - 1; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1564:25 [INFO] [stdout] | [INFO] [stdout] 1564 | (*self.head).links_len[lvl] = (*next).links_len[lvl] - 1; [INFO] [stdout] | ^^---------^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:1564:25 [INFO] [stdout] | [INFO] [stdout] 1564 | (*self.head).links_len[lvl] = (*next).links_len[lvl] - 1; [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] 1564 | (&mut (*self.head).links_len)[lvl] = (*next).links_len[lvl] - 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1566:25 [INFO] [stdout] | [INFO] [stdout] 1566 | (*self.head).links_len[lvl] -= 1; [INFO] [stdout] | ^^---------^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:1566:25 [INFO] [stdout] | [INFO] [stdout] 1566 | (*self.head).links_len[lvl] -= 1; [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] 1566 | (&mut (*self.head).links_len)[lvl] -= 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1569:37 [INFO] [stdout] | [INFO] [stdout] 1569 | if let Some(next) = (*self.head).links[0] { [INFO] [stdout] | ^^---------^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:1569:37 [INFO] [stdout] | [INFO] [stdout] 1569 | if let Some(next) = (*self.head).links[0] { [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] 1569 | if let Some(next) = (&(*self.head).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1602:17 [INFO] [stdout] | [INFO] [stdout] 1602 | (*self.end).links[0] = None; [INFO] [stdout] | ^^--------^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut skipmap::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/skipmap.rs:1602:17 [INFO] [stdout] | [INFO] [stdout] 1602 | (*self.end).links[0] = None; [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] 1602 | (&mut (*self.end).links)[0] = None; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1627:33 [INFO] [stdout] | [INFO] [stdout] 1627 | if let Some(next) = (*self.start).links[0] { [INFO] [stdout] | ^^----------^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:1627:33 [INFO] [stdout] | [INFO] [stdout] 1627 | if let Some(next) = (*self.start).links[0] { [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] 1627 | if let Some(next) = (&(*self.start).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skipmap.rs:1681:33 [INFO] [stdout] | [INFO] [stdout] 1681 | if let Some(next) = (*self.start).links[0] { [INFO] [stdout] | ^^----------^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const skipmap::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/skipmap.rs:1681:33 [INFO] [stdout] | [INFO] [stdout] 1681 | if let Some(next) = (*self.start).links[0] { [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] 1681 | if let Some(next) = (&(*self.start).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/skiplist.rs:94:17 [INFO] [stdout] | [INFO] [stdout] 94 | mem::replace(&mut (*node).next, mem::replace(&mut next.next, None)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 94 | let _ = mem::replace(&mut (*node).next, mem::replace(&mut next.next, None)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/skiplist.rs:99:9 [INFO] [stdout] | [INFO] [stdout] 99 | mem::replace(&mut self.head, new_head); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 99 | let _ = mem::replace(&mut self.head, new_head); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:176:40 [INFO] [stdout] | [INFO] [stdout] 176 | while let Some(next) = (*node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:176:40 [INFO] [stdout] | [INFO] [stdout] 176 | while let Some(next) = (*node).links[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] 176 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:177:36 [INFO] [stdout] | [INFO] [stdout] 177 | if index_sum + (*node).links_len[lvl] < index { [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: `&Vec` [INFO] [stdout] --> src/skiplist.rs:177:36 [INFO] [stdout] | [INFO] [stdout] 177 | if index_sum + (*node).links_len[lvl] < index { [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] 177 | if index_sum + (&(*node).links_len)[lvl] < index { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:178:38 [INFO] [stdout] | [INFO] [stdout] 178 | index_sum += (*node).links_len[lvl]; [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: `&Vec` [INFO] [stdout] --> src/skiplist.rs:178:38 [INFO] [stdout] | [INFO] [stdout] 178 | index_sum += (*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] 178 | index_sum += (&(*node).links_len)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:191:43 [INFO] [stdout] | [INFO] [stdout] 191 | new_node.links[lvl] = (*node).links[lvl]; [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:191:43 [INFO] [stdout] | [INFO] [stdout] 191 | new_node.links[lvl] = (*node).links[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] 191 | new_node.links[lvl] = (&(*node).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:192:21 [INFO] [stdout] | [INFO] [stdout] 192 | (*node).links[lvl] = Some(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/skiplist.rs:192:21 [INFO] [stdout] | [INFO] [stdout] 192 | (*node).links[lvl] = Some(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] 192 | (&mut (*node).links)[lvl] = Some(new_node_ptr); [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:194:21 [INFO] [stdout] | [INFO] [stdout] 194 | (*node).links_len[lvl] += 1; [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/skiplist.rs:194:21 [INFO] [stdout] | [INFO] [stdout] 194 | (*node).links_len[lvl] += 1; [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] 194 | (&mut (*node).links_len)[lvl] += 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:202:21 [INFO] [stdout] | [INFO] [stdout] 202 | (*node).links_len[lvl] = if (*node).is_head() { [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/skiplist.rs:202:21 [INFO] [stdout] | [INFO] [stdout] 202 | (*node).links_len[lvl] = if (*node).is_head() { [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] 202 | (&mut (*node).links_len)[lvl] = if (*node).is_head() { [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:210:47 [INFO] [stdout] | [INFO] [stdout] 210 | new_node.links_len[lvl] = (*node).links_len[lvl] - length + 1; [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: `&Vec` [INFO] [stdout] --> src/skiplist.rs:210:47 [INFO] [stdout] | [INFO] [stdout] 210 | new_node.links_len[lvl] = (*node).links_len[lvl] - length + 1; [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] 210 | new_node.links_len[lvl] = (&(*node).links_len)[lvl] - length + 1; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:211:21 [INFO] [stdout] | [INFO] [stdout] 211 | (*node).links_len[lvl] = length; [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/skiplist.rs:211:21 [INFO] [stdout] | [INFO] [stdout] 211 | (*node).links_len[lvl] = length; [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] 211 | (&mut (*node).links_len)[lvl] = length; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:479:39 [INFO] [stdout] | [INFO] [stdout] 479 | while index_sum + (*node).links_len[lvl] < index { [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: `&Vec` [INFO] [stdout] --> src/skiplist.rs:479:39 [INFO] [stdout] | [INFO] [stdout] 479 | while index_sum + (*node).links_len[lvl] < index { [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] 479 | while index_sum + (&(*node).links_len)[lvl] < index { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:480:38 [INFO] [stdout] | [INFO] [stdout] 480 | index_sum += (*node).links_len[lvl]; [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: `&Vec` [INFO] [stdout] --> src/skiplist.rs:480:38 [INFO] [stdout] | [INFO] [stdout] 480 | index_sum += (*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] 480 | index_sum += (&(*node).links_len)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:481:32 [INFO] [stdout] | [INFO] [stdout] 481 | node = (*node).links[lvl].unwrap(); [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:481:32 [INFO] [stdout] | [INFO] [stdout] 481 | node = (*node).links[lvl].unwrap(); [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] 481 | node = (&(*node).links)[lvl].unwrap(); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:484:36 [INFO] [stdout] | [INFO] [stdout] 484 | if index_sum + (*node).links_len[lvl] == index { [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: `&Vec` [INFO] [stdout] --> src/skiplist.rs:484:36 [INFO] [stdout] | [INFO] [stdout] 484 | if index_sum + (*node).links_len[lvl] == index { [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] 484 | if index_sum + (&(*node).links_len)[lvl] == index { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:485:45 [INFO] [stdout] | [INFO] [stdout] 485 | if let Some(next) = (*node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:485:45 [INFO] [stdout] | [INFO] [stdout] 485 | if let Some(next) = (*node).links[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] 485 | if let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:487:50 [INFO] [stdout] | [INFO] [stdout] 487 | ... (*node).links[lvl] = (*next).links[lvl]; [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:487:50 [INFO] [stdout] | [INFO] [stdout] 487 | ... (*node).links[lvl] = (*next).links[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] 487 | (*node).links[lvl] = (&(*next).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:487:29 [INFO] [stdout] | [INFO] [stdout] 487 | ... (*node).links[lvl] = (*next).links[lvl]; [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/skiplist.rs:487:29 [INFO] [stdout] | [INFO] [stdout] 487 | ... (*node).links[lvl] = (*next).links[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] 487 | (&mut (*node).links)[lvl] = (*next).links[lvl]; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:488:55 [INFO] [stdout] | [INFO] [stdout] 488 | ... (*node).links_len[lvl] += (*next).links_len[lvl] - 1; [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: `&Vec` [INFO] [stdout] --> src/skiplist.rs:488:55 [INFO] [stdout] | [INFO] [stdout] 488 | ... (*node).links_len[lvl] += (*next).links_len[lvl] - 1; [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] 488 | (*node).links_len[lvl] += (&(*next).links_len)[lvl] - 1; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:488:29 [INFO] [stdout] | [INFO] [stdout] 488 | ... (*node).links_len[lvl] += (*next).links_len[lvl] - 1; [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/skiplist.rs:488:29 [INFO] [stdout] | [INFO] [stdout] 488 | ... (*node).links_len[lvl] += (*next).links_len[lvl] - 1; [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] 488 | (&mut (*node).links_len)[lvl] += (*next).links_len[lvl] - 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:491:25 [INFO] [stdout] | [INFO] [stdout] 491 | (*node).links_len[lvl] -= 1; [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/skiplist.rs:491:25 [INFO] [stdout] | [INFO] [stdout] 491 | (*node).links_len[lvl] -= 1; [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] 491 | (&mut (*node).links_len)[lvl] -= 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:495:37 [INFO] [stdout] | [INFO] [stdout] 495 | if let Some(next) = (*return_node).links[0] { [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:495:37 [INFO] [stdout] | [INFO] [stdout] 495 | if let Some(next) = (*return_node).links[0] { [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] 495 | if let Some(next) = (&(*return_node).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:536:41 [INFO] [stdout] | [INFO] [stdout] 536 | if let Some(next) = (*node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:536:41 [INFO] [stdout] | [INFO] [stdout] 536 | if let Some(next) = (*node).links[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] 536 | if let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:539:54 [INFO] [stdout] | [INFO] [stdout] 539 | ... (*node).links[lvl] = (*next).links[lvl]; [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:539:54 [INFO] [stdout] | [INFO] [stdout] 539 | ... (*node).links[lvl] = (*next).links[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] 539 | (*node).links[lvl] = (&(*next).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:539:33 [INFO] [stdout] | [INFO] [stdout] 539 | ... (*node).links[lvl] = (*next).links[lvl]; [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/skiplist.rs:539:33 [INFO] [stdout] | [INFO] [stdout] 539 | ... (*node).links[lvl] = (*next).links[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] 539 | (&mut (*node).links)[lvl] = (*next).links[lvl]; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:549:69 [INFO] [stdout] | [INFO] [stdout] 549 | (*node).links_len[lvl] = self.link_length(node, (*node).links[lvl], lvl) [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:549:69 [INFO] [stdout] | [INFO] [stdout] 549 | (*node).links_len[lvl] = self.link_length(node, (*node).links[lvl], 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] 549 | (*node).links_len[lvl] = self.link_length(node, (&(*node).links)[lvl], lvl) [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:549:21 [INFO] [stdout] | [INFO] [stdout] 549 | (*node).links_len[lvl] = self.link_length(node, (*node).links[lvl], lvl) [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/skiplist.rs:549:21 [INFO] [stdout] | [INFO] [stdout] 549 | (*node).links_len[lvl] = self.link_length(node, (*node).links[lvl], 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] 549 | (&mut (*node).links_len)[lvl] = self.link_length(node, (*node).links[lvl], lvl) [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:552:41 [INFO] [stdout] | [INFO] [stdout] 552 | if let Some(next) = (*node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:552:41 [INFO] [stdout] | [INFO] [stdout] 552 | if let Some(next) = (*node).links[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] 552 | if let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:563:37 [INFO] [stdout] | [INFO] [stdout] 563 | if let Some(next) = (*node).links[0] { [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:563:37 [INFO] [stdout] | [INFO] [stdout] 563 | if let Some(next) = (*node).links[0] { [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] 563 | if let Some(next) = (&(*node).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/skiplist.rs:567:21 [INFO] [stdout] | [INFO] [stdout] 567 | mem::replace(&mut (*prev).next, mem::replace(&mut (*node).next, None)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 567 | let _ = mem::replace(&mut (*prev).next, mem::replace(&mut (*node).next, None)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/skiplist.rs:608:17 [INFO] [stdout] | [INFO] [stdout] 608 | 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] 608 | 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:630:21 [INFO] [stdout] | [INFO] [stdout] 630 | pub fn iter_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] 630 | pub fn iter_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:657:18 [INFO] [stdout] | [INFO] [stdout] 657 | 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] 657 | 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:720:22 [INFO] [stdout] | [INFO] [stdout] 720 | 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] 720 | pub fn range_mut(&mut self, min: Bound, max: Bound) -> IterMut<'_, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:820:41 [INFO] [stdout] | [INFO] [stdout] 820 | if let Some(next) = (*node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:820:41 [INFO] [stdout] | [INFO] [stdout] 820 | if let Some(next) = (*node).links[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] 820 | if let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:824:58 [INFO] [stdout] | [INFO] [stdout] 824 | ... (*node).links[lvl] = (*next).links[lvl]; [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:824:58 [INFO] [stdout] | [INFO] [stdout] 824 | ... (*node).links[lvl] = (*next).links[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] 824 | (*node).links[lvl] = (&(*next).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:824:37 [INFO] [stdout] | [INFO] [stdout] 824 | ... (*node).links[lvl] = (*next).links[lvl]; [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/skiplist.rs:824:37 [INFO] [stdout] | [INFO] [stdout] 824 | ... (*node).links[lvl] = (*next).links[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] 824 | (&mut (*node).links)[lvl] = (*next).links[lvl]; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:838:54 [INFO] [stdout] | [INFO] [stdout] 838 | ... (*node).links[lvl] = (*next).links[lvl]; [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:838:54 [INFO] [stdout] | [INFO] [stdout] 838 | ... (*node).links[lvl] = (*next).links[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] 838 | (*node).links[lvl] = (&(*next).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:838:33 [INFO] [stdout] | [INFO] [stdout] 838 | ... (*node).links[lvl] = (*next).links[lvl]; [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/skiplist.rs:838:33 [INFO] [stdout] | [INFO] [stdout] 838 | ... (*node).links[lvl] = (*next).links[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] 838 | (&mut (*node).links)[lvl] = (*next).links[lvl]; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:845:69 [INFO] [stdout] | [INFO] [stdout] 845 | (*node).links_len[lvl] = self.link_length(node, (*node).links[lvl], lvl) [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:845:69 [INFO] [stdout] | [INFO] [stdout] 845 | (*node).links_len[lvl] = self.link_length(node, (*node).links[lvl], 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] 845 | (*node).links_len[lvl] = self.link_length(node, (&(*node).links)[lvl], lvl) [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:845:21 [INFO] [stdout] | [INFO] [stdout] 845 | (*node).links_len[lvl] = self.link_length(node, (*node).links[lvl], lvl) [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/skiplist.rs:845:21 [INFO] [stdout] | [INFO] [stdout] 845 | (*node).links_len[lvl] = self.link_length(node, (*node).links[lvl], 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] 845 | (&mut (*node).links_len)[lvl] = self.link_length(node, (*node).links[lvl], lvl) [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:848:41 [INFO] [stdout] | [INFO] [stdout] 848 | if let Some(next) = (*node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:848:41 [INFO] [stdout] | [INFO] [stdout] 848 | if let Some(next) = (*node).links[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] 848 | if let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:859:37 [INFO] [stdout] | [INFO] [stdout] 859 | if let Some(next) = (*node).links[0] { [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:859:37 [INFO] [stdout] | [INFO] [stdout] 859 | if let Some(next) = (*node).links[0] { [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] 859 | if let Some(next) = (&(*node).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/skiplist.rs:863:21 [INFO] [stdout] | [INFO] [stdout] 863 | mem::replace(&mut (*prev).next, mem::replace(&mut (*node).next, None)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 863 | let _ = mem::replace(&mut (*prev).next, mem::replace(&mut (*node).next, None)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:887:35 [INFO] [stdout] | [INFO] [stdout] 887 | length_sum += (*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/skiplist.rs:887:35 [INFO] [stdout] | [INFO] [stdout] 887 | length_sum += (*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] 887 | length_sum += (&(*node).links_len)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:890:32 [INFO] [stdout] | [INFO] [stdout] 890 | assert_eq!((*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/skiplist.rs:890:32 [INFO] [stdout] | [INFO] [stdout] 890 | assert_eq!((*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] 890 | assert_eq!((&(*node).links_len)[lvl], [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:891:75 [INFO] [stdout] | [INFO] [stdout] 891 | ... self.link_length(node as *mut SkipNode, (*node).links[lvl], 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/skiplist.rs:891:75 [INFO] [stdout] | [INFO] [stdout] 891 | ... self.link_length(node as *mut SkipNode, (*node).links[lvl], 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] 891 | self.link_length(node as *mut SkipNode, (&(*node).links)[lvl], lvl) [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:895:59 [INFO] [stdout] | [INFO] [stdout] 895 | assert!((*node).next.is_some() == (*node).links[lvl].is_some()); [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/skiplist.rs:895:59 [INFO] [stdout] | [INFO] [stdout] 895 | assert!((*node).next.is_some() == (*node).links[lvl].is_some()); [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] 895 | assert!((*node).next.is_some() == (&(*node).links)[lvl].is_some()); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:898:40 [INFO] [stdout] | [INFO] [stdout] 898 | ... assert_eq!((*prev).links[lvl], Some(node as *mut SkipNode)); [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:898:40 [INFO] [stdout] | [INFO] [stdout] 898 | ... assert_eq!((*prev).links[lvl], Some(node as *mut SkipNode)); [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] 898 | assert_eq!((&(*prev).links)[lvl], Some(node as *mut SkipNode)); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:903:41 [INFO] [stdout] | [INFO] [stdout] 903 | if let Some(next) = (*node).links[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/skiplist.rs:903:41 [INFO] [stdout] | [INFO] [stdout] 903 | if let Some(next) = (*node).links[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] 903 | if let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:945:27 [INFO] [stdout] | [INFO] [stdout] 945 | match (*node).links[lvl] { [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:945:27 [INFO] [stdout] | [INFO] [stdout] 945 | match (*node).links[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] 945 | match (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:952:31 [INFO] [stdout] | [INFO] [stdout] 952 | length += (*node).links_len[lvl - 1]; [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: `&Vec` [INFO] [stdout] --> src/skiplist.rs:952:31 [INFO] [stdout] | [INFO] [stdout] 952 | length += (*node).links_len[lvl - 1]; [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] 952 | length += (&(*node).links_len)[lvl - 1]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:953:27 [INFO] [stdout] | [INFO] [stdout] 953 | match (*node).links[lvl - 1] { [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:953:27 [INFO] [stdout] | [INFO] [stdout] 953 | match (*node).links[lvl - 1] { [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] 953 | match (&(*node).links)[lvl - 1] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:978:40 [INFO] [stdout] | [INFO] [stdout] 978 | while let Some(next) = (*node).links[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/skiplist.rs:978:40 [INFO] [stdout] | [INFO] [stdout] 978 | while let Some(next) = (*node).links[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] 978 | while let Some(next) = (&(*node).links)[lvl] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `stable-skiplist` (lib test) due to 207 previous errors; 48 warnings emitted [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:1003:39 [INFO] [stdout] | [INFO] [stdout] 1003 | while index_sum + (*node).links_len[lvl] <= index { [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/skiplist.rs:1003:39 [INFO] [stdout] | [INFO] [stdout] 1003 | while index_sum + (*node).links_len[lvl] <= index { [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] 1003 | while index_sum + (&(*node).links_len)[lvl] <= index { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:1004:38 [INFO] [stdout] | [INFO] [stdout] 1004 | index_sum += (*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/skiplist.rs:1004:38 [INFO] [stdout] | [INFO] [stdout] 1004 | index_sum += (*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] 1004 | index_sum += (&(*node).links_len)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:1005:32 [INFO] [stdout] | [INFO] [stdout] 1005 | node = (*node).links[lvl].unwrap(); [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/skiplist.rs:1005:32 [INFO] [stdout] | [INFO] [stdout] 1005 | node = (*node).links[lvl].unwrap(); [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] 1005 | node = (&(*node).links)[lvl].unwrap(); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:1032:61 [INFO] [stdout] | [INFO] [stdout] 1032 | 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/skiplist.rs:1032:61 [INFO] [stdout] | [INFO] [stdout] 1032 | 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] 1032 | let max_str_len = format!("{} -{}-", value, (&(*node).links_len)[(*node).level]).len(); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:1040:63 [INFO] [stdout] | [INFO] [stdout] 1040 | value_len = 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/skiplist.rs:1040:63 [INFO] [stdout] | [INFO] [stdout] 1040 | value_len = 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] 1040 | value_len = format!("{} -{}-", value, (&(*node).links_len)[lvl]); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:1060:37 [INFO] [stdout] | [INFO] [stdout] 1060 | if let Some(next) = (*node).links[0] { [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/skiplist.rs:1060:37 [INFO] [stdout] | [INFO] [stdout] 1060 | if let Some(next) = (*node).links[0] { [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] 1060 | if let Some(next) = (&(*node).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/skiplist.rs:1088:17 [INFO] [stdout] | [INFO] [stdout] 1088 | mem::replace(&mut (*node).next, mem::replace(&mut next.next, None)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1088 | let _ = mem::replace(&mut (*node).next, mem::replace(&mut next.next, None)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:1248:33 [INFO] [stdout] | [INFO] [stdout] 1248 | if let Some(next) = (*self.start).links[0] { [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/skiplist.rs:1248:33 [INFO] [stdout] | [INFO] [stdout] 1248 | if let Some(next) = (*self.start).links[0] { [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] 1248 | if let Some(next) = (&(*self.start).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:1300:33 [INFO] [stdout] | [INFO] [stdout] 1300 | if let Some(next) = (*self.start).links[0] { [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:1300:33 [INFO] [stdout] | [INFO] [stdout] 1300 | if let Some(next) = (*self.start).links[0] { [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] 1300 | if let Some(next) = (&(*self.start).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:1346:33 [INFO] [stdout] | [INFO] [stdout] 1346 | if let Some(next) = (*self.head).links[0] { [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:1346:33 [INFO] [stdout] | [INFO] [stdout] 1346 | if let Some(next) = (*self.head).links[0] { [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] 1346 | if let Some(next) = (&(*self.head).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:1349:51 [INFO] [stdout] | [INFO] [stdout] 1349 | (*self.head).links[lvl] = (*next).links[lvl]; [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:1349:51 [INFO] [stdout] | [INFO] [stdout] 1349 | (*self.head).links[lvl] = (*next).links[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] 1349 | (*self.head).links[lvl] = (&(*next).links)[lvl]; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:1349:25 [INFO] [stdout] | [INFO] [stdout] 1349 | (*self.head).links[lvl] = (*next).links[lvl]; [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/skiplist.rs:1349:25 [INFO] [stdout] | [INFO] [stdout] 1349 | (*self.head).links[lvl] = (*next).links[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] 1349 | (&mut (*self.head).links)[lvl] = (*next).links[lvl]; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:1350:55 [INFO] [stdout] | [INFO] [stdout] 1350 | (*self.head).links_len[lvl] = (*next).links_len[lvl] - 1; [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: `&Vec` [INFO] [stdout] --> src/skiplist.rs:1350:55 [INFO] [stdout] | [INFO] [stdout] 1350 | (*self.head).links_len[lvl] = (*next).links_len[lvl] - 1; [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] 1350 | (*self.head).links_len[lvl] = (&(*next).links_len)[lvl] - 1; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:1350:25 [INFO] [stdout] | [INFO] [stdout] 1350 | (*self.head).links_len[lvl] = (*next).links_len[lvl] - 1; [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/skiplist.rs:1350:25 [INFO] [stdout] | [INFO] [stdout] 1350 | (*self.head).links_len[lvl] = (*next).links_len[lvl] - 1; [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] 1350 | (&mut (*self.head).links_len)[lvl] = (*next).links_len[lvl] - 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:1352:25 [INFO] [stdout] | [INFO] [stdout] 1352 | (*self.head).links_len[lvl] -= 1; [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/skiplist.rs:1352:25 [INFO] [stdout] | [INFO] [stdout] 1352 | (*self.head).links_len[lvl] -= 1; [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] 1352 | (&mut (*self.head).links_len)[lvl] -= 1; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:1355:37 [INFO] [stdout] | [INFO] [stdout] 1355 | if let Some(next) = (*self.head).links[0] { [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: `&Vec>>` [INFO] [stdout] --> src/skiplist.rs:1355:37 [INFO] [stdout] | [INFO] [stdout] 1355 | if let Some(next) = (*self.head).links[0] { [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] 1355 | if let Some(next) = (&(*self.head).links)[0] { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/skiplist.rs:1387:17 [INFO] [stdout] | [INFO] [stdout] 1387 | (*self.end).links[0] = None; [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/skiplist.rs:1387:17 [INFO] [stdout] | [INFO] [stdout] 1387 | (*self.end).links[0] = None; [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] 1387 | (&mut (*self.end).links)[0] = None; [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "9b5d7f78b4f08aa05e06082ea70e82f5dbf002e5ef07ef823f61c091dde5f343", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9b5d7f78b4f08aa05e06082ea70e82f5dbf002e5ef07ef823f61c091dde5f343", kill_on_drop: false }` [INFO] [stdout] 9b5d7f78b4f08aa05e06082ea70e82f5dbf002e5ef07ef823f61c091dde5f343