[INFO] cloning repository https://github.com/taooceros/skiplist
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/taooceros/skiplist" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftaooceros%2Fskiplist", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftaooceros%2Fskiplist'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1b24e8a32288aa47b2057f58d4fe358a70a62a0b
[INFO] checking taooceros/skiplist against try#7b3da9103634dffd4f4365cfd8642427c781d99f+rustflags=-Dinherent-method-on-receiver for 152214-denied
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftaooceros%2Fskiplist" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/taooceros/skiplist
[INFO] finished tweaking git repo https://github.com/taooceros/skiplist
[INFO] tweaked toml for git repo https://github.com/taooceros/skiplist written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/taooceros/skiplist on toolchain 7b3da9103634dffd4f4365cfd8642427c781d99f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+7b3da9103634dffd4f4365cfd8642427c781d99f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/taooceros/skiplist already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+7b3da9103634dffd4f4365cfd8642427c781d99f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded smallvec v1.11.1
[INFO] [stderr]   Downloaded libc v0.2.149
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+7b3da9103634dffd4f4365cfd8642427c781d99f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 9dd9dde1760f18ce5e21826f2b134529229dac033998112b8cbd545468533a55
[INFO] running `Command { std: "docker" "start" "-a" "9dd9dde1760f18ce5e21826f2b134529229dac033998112b8cbd545468533a55", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9dd9dde1760f18ce5e21826f2b134529229dac033998112b8cbd545468533a55", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9dd9dde1760f18ce5e21826f2b134529229dac033998112b8cbd545468533a55", kill_on_drop: false }`
[INFO] [stdout] 9dd9dde1760f18ce5e21826f2b134529229dac033998112b8cbd545468533a55
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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 -Dinherent-method-on-receiver" "-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:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+7b3da9103634dffd4f4365cfd8642427c781d99f" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 39f8ba39e9f4472d9df5da3da8659eb57a3d3ef2e155b2ce7efb168fa7f68073
[INFO] running `Command { std: "docker" "start" "-a" "39f8ba39e9f4472d9df5da3da8659eb57a3d3ef2e155b2ce7efb168fa7f68073", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.149
[INFO] [stderr]    Compiling parking_lot_core v0.9.9
[INFO] [stderr]     Checking smallvec v1.11.1
[INFO] [stderr]    Compiling lock_api v0.4.11
[INFO] [stderr]     Checking getrandom v0.2.10
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking parking_lot v0.12.1
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking skiplist v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: the feature `core_intrinsics` is internal to the compiler or standard library
[INFO] [stdout]  --> src/main.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(core_intrinsics)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: using it is strongly discouraged
[INFO] [stdout]   = note: `#[warn(internal_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MutexGuard` and `Mutex`
[INFO] [stdout]  --> src/lock_base/skiplist.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::{Mutex, MutexGuard};
[INFO] [stdout]   |                 ^^^^^  ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Mutex`
[INFO] [stdout]  --> src/lock_base/skiplist/entry.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::Mutex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::intrinsics::breakpoint`
[INFO] [stdout]  --> src/lock_free/skiplist.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::intrinsics::breakpoint;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr::null`
[INFO] [stdout]  --> src/lock_free/skiplist.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ptr::null;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AtomicBool`
[INFO] [stdout]  --> src/lock_free/skiplist.rs:6:25
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::sync::atomic::{AtomicBool, Ordering::*};
[INFO] [stdout]   |                         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MutexGuard` and `Mutex`
[INFO] [stdout]  --> src/lock_free/skiplist.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::{Mutex, MutexGuard};
[INFO] [stdout]   |                 ^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sync::atomic::AtomicPtr`
[INFO] [stdout]   --> src/lock_free/skiplist.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     sync::atomic::AtomicPtr,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parking_lot::ReentrantMutex`
[INFO] [stdout]   --> src/lock_free/skiplist.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use parking_lot::ReentrantMutex;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Display`
[INFO] [stdout]  --> src/lock_free/skiplist/entry.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fmt::Display;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicBool` and `AtomicPtr`
[INFO] [stdout]  --> src/lock_free/skiplist/entry.rs:3:25
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::atomic::{AtomicBool, AtomicPtr};
[INFO] [stdout]   |                         ^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Mutex`
[INFO] [stdout]  --> src/lock_free/skiplist/entry.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::sync::Mutex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parking_lot::ReentrantMutex`
[INFO] [stdout]  --> src/lock_free/skiplist/entry.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use parking_lot::ReentrantMutex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `strict_provenance` has been stable since 1.84.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/main.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(strict_provenance)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `core_intrinsics` is internal to the compiler or standard library
[INFO] [stdout]  --> src/main.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(core_intrinsics)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: using it is strongly discouraged
[INFO] [stdout]   = note: `#[warn(internal_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MutexGuard` and `Mutex`
[INFO] [stdout]  --> src/lock_base/skiplist.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::{Mutex, MutexGuard};
[INFO] [stdout]   |                 ^^^^^  ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Mutex`
[INFO] [stdout]  --> src/lock_base/skiplist/entry.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::Mutex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::intrinsics::breakpoint`
[INFO] [stdout]  --> src/lock_free/skiplist.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::intrinsics::breakpoint;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr::null`
[INFO] [stdout]  --> src/lock_free/skiplist.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ptr::null;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AtomicBool`
[INFO] [stdout]  --> src/lock_free/skiplist.rs:6:25
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::sync::atomic::{AtomicBool, Ordering::*};
[INFO] [stdout]   |                         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MutexGuard` and `Mutex`
[INFO] [stdout]  --> src/lock_free/skiplist.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::{Mutex, MutexGuard};
[INFO] [stdout]   |                 ^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sync::atomic::AtomicPtr`
[INFO] [stdout]   --> src/lock_free/skiplist.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     sync::atomic::AtomicPtr,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parking_lot::ReentrantMutex`
[INFO] [stdout]   --> src/lock_free/skiplist.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use parking_lot::ReentrantMutex;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Display`
[INFO] [stdout]  --> src/lock_free/skiplist/entry.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fmt::Display;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicBool` and `AtomicPtr`
[INFO] [stdout]  --> src/lock_free/skiplist/entry.rs:3:25
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::atomic::{AtomicBool, AtomicPtr};
[INFO] [stdout]   |                         ^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Mutex`
[INFO] [stdout]  --> src/lock_free/skiplist/entry.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::sync::Mutex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parking_lot::ReentrantMutex`
[INFO] [stdout]  --> src/lock_free/skiplist/entry.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use parking_lot::ReentrantMutex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `strict_provenance` has been stable since 1.84.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/main.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(strict_provenance)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lock_free/skiplist.rs:203:13
[INFO] [stdout]     |
[INFO] [stdout] 203 |         let mut marked = false;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `marked`
[INFO] [stdout]    --> src/lock_free/skiplist.rs:203:13
[INFO] [stdout]     |
[INFO] [stdout] 203 |         let mut marked = false;
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_marked`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `actual`
[INFO] [stdout]    --> src/lock_free/skiplist.rs:244:38
[INFO] [stdout]     |
[INFO] [stdout] 244 | ...                   Err((actual, _)) => {
[INFO] [stdout]     |                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_actual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lock_free/skiplist.rs:272:13
[INFO] [stdout]     |
[INFO] [stdout] 272 |         let mut pred = self.head;
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lock_free/skiplist.rs:277:18
[INFO] [stdout]     |
[INFO] [stdout] 277 |             let (mut current_ptr, mut marked) = unsafe { (*pred).nexts[level].load(Relaxed) };
[INFO] [stdout]     |                  ----^^^^^^^^^^^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lock_free/skiplist.rs:277:35
[INFO] [stdout]     |
[INFO] [stdout] 277 |             let (mut current_ptr, mut marked) = unsafe { (*pred).nexts[level].load(Relaxed) };
[INFO] [stdout]     |                                   ----^^^^^^
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lock_free/skiplist.rs:278:17
[INFO] [stdout]     |
[INFO] [stdout] 278 |             let mut current = unsafe { current_ptr.as_mut().unwrap() };
[INFO] [stdout]     |                 ----^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/lock_free/skiplist.rs:274:13
[INFO] [stdout]     |
[INFO] [stdout] 274 |         let key = Key::Entry(key);
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `marked`
[INFO] [stdout]    --> src/lock_free/skiplist.rs:277:35
[INFO] [stdout]     |
[INFO] [stdout] 277 |             let (mut current_ptr, mut marked) = unsafe { (*pred).nexts[level].load(Relaxed) };
[INFO] [stdout]     |                                   ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_marked`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current`
[INFO] [stdout]    --> src/lock_free/skiplist.rs:278:17
[INFO] [stdout]     |
[INFO] [stdout] 278 |             let mut current = unsafe { current_ptr.as_mut().unwrap() };
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `key_cmp` is never read
[INFO] [stdout]   --> src/lock_base/skiplist.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct SkipList<K, V, C = fn(&K, &K) -> Ordering>
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     key_cmp: C,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get` is never used
[INFO] [stdout]    --> src/lock_base/skiplist.rs:269:12
[INFO] [stdout]     |
[INFO] [stdout]  54 | / impl<K, V, C> SkipList<K, V, C>
[INFO] [stdout]  55 | | where
[INFO] [stdout]  56 | |     K: Ord + Debug,
[INFO] [stdout]  57 | |     C: Fn(&K, &K) -> Ordering,
[INFO] [stdout]     | |______________________________- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 269 |       pub fn get(&self, key: K) -> Option<&V> {
[INFO] [stdout]     |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/lock_free/markable_atomic_ptr.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl<T> MarkableAtomicPtr<T> {
[INFO] [stdout]    | ---------------------------- associated function in this implementation
[INFO] [stdout] 11 |     pub fn new(ptr: *mut T, mark: bool) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MASK` is never used
[INFO] [stdout]   --> src/lock_free/skiplist.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const MASK: usize = !0b1;
[INFO] [stdout]    |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_ptr` is never used
[INFO] [stdout]   --> src/lock_free/skiplist.rs:22:4
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn extract_ptr<'a, T>(ptr: *mut T) -> (&'a mut T, bool) {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mark_ptr` is never used
[INFO] [stdout]   --> src/lock_free/skiplist.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn mark_ptr<T>(ptr: *mut T) -> *mut T {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `key_cmp` is never read
[INFO] [stdout]   --> src/lock_free/skiplist.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct SkipList<K, V, C = fn(&K, &K) -> Ordering>
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     key_cmp: C,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get` is never used
[INFO] [stdout]    --> src/lock_free/skiplist.rs:271:12
[INFO] [stdout]     |
[INFO] [stdout]  72 | / impl<K, V, C> SkipList<K, V, C>
[INFO] [stdout]  73 | | where
[INFO] [stdout]  74 | |     K: Ord + Debug,
[INFO] [stdout]  75 | |     C: Fn(&K, &K) -> Ordering,
[INFO] [stdout]     | |______________________________- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 271 |       pub fn get(&self, key: K) -> Option<&V> {
[INFO] [stdout]     |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `key_cmp` is never read
[INFO] [stdout]   --> src/sequencial/skiplist.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct SkipList<K, V, C = fn(&K, &K) -> Ordering>
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 17 |     key_cmp: C,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]   --> src/lock_base/skiplist.rs:82:17
[INFO] [stdout]    |
[INFO] [stdout] 82 |                 (*head).nexts[level].store(tail, Relaxed);
[INFO] [stdout]    |                 ^^----^^^^^^^^^^^^^^
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   this raw pointer has type `*mut lock_base::skiplist::entry::Entry<K, V, C>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<AtomicPtr<lock_base::skiplist::entry::Entry<K, V, C>>>`
[INFO] [stdout]   --> src/lock_base/skiplist.rs:82:17
[INFO] [stdout]    |
[INFO] [stdout] 82 |                 (*head).nexts[level].store(tail, Relaxed);
[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] 82 |                 (&(*head).nexts)[level].store(tail, Relaxed);
[INFO] [stdout]    |                 ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lock_base/skiplist.rs:148:21
[INFO] [stdout]     |
[INFO] [stdout] 148 |                     (*new_entry).nexts[level].store(succs[level], Relaxed);
[INFO] [stdout]     |                     ^^---------^^^^^^^^^^^^^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this raw pointer has type `*mut lock_base::skiplist::entry::Entry<K, V, C>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<AtomicPtr<lock_base::skiplist::entry::Entry<K, V, C>>>`
[INFO] [stdout]    --> src/lock_base/skiplist.rs:148:21
[INFO] [stdout]     |
[INFO] [stdout] 148 |                     (*new_entry).nexts[level].store(succs[level], Relaxed);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 148 |                     (&(*new_entry).nexts)[level].store(succs[level], Relaxed);
[INFO] [stdout]     |                     ++                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lock_base/skiplist.rs:149:21
[INFO] [stdout]     |
[INFO] [stdout] 149 |                     (*preds[level]).nexts[level].store(new_entry, Relaxed);
[INFO] [stdout]     |                     ^^------------^^^^^^^^^^^^^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this raw pointer has type `*mut lock_base::skiplist::entry::Entry<K, V, C>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<AtomicPtr<lock_base::skiplist::entry::Entry<K, V, C>>>`
[INFO] [stdout]    --> src/lock_base/skiplist.rs:149:21
[INFO] [stdout]     |
[INFO] [stdout] 149 |                     (*preds[level]).nexts[level].store(new_entry, Relaxed);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 149 |                     (&(*preds[level]).nexts)[level].store(new_entry, Relaxed);
[INFO] [stdout]     |                     ++                     +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lock_base/skiplist.rs:223:25
[INFO] [stdout]     |
[INFO] [stdout] 223 |                         (*preds[level]).nexts[level]
[INFO] [stdout]     |                         ^^------------^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this raw pointer has type `*mut lock_base::skiplist::entry::Entry<K, V, C>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<AtomicPtr<lock_base::skiplist::entry::Entry<K, V, C>>>`
[INFO] [stdout]    --> src/lock_base/skiplist.rs:223:25
[INFO] [stdout]     |
[INFO] [stdout] 223 |                         (*preds[level]).nexts[level]
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 223 |                         (&(*preds[level]).nexts)[level]
[INFO] [stdout]     |                         ++                     +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lock_base/skiplist.rs:224:36
[INFO] [stdout]     |
[INFO] [stdout] 224 | ...                   .store((*succs[level]).nexts[level].load(Relaxed), Relaxed);
[INFO] [stdout]     |                              ^^------------^^^^^^^^^^^^^^
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                this raw pointer has type `*mut lock_base::skiplist::entry::Entry<K, V, C>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<AtomicPtr<lock_base::skiplist::entry::Entry<K, V, C>>>`
[INFO] [stdout]    --> src/lock_base/skiplist.rs:224:36
[INFO] [stdout]     |
[INFO] [stdout] 224 | ...                   .store((*succs[level]).nexts[level].load(Relaxed), Relaxed);
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 224 |                             .store((&(*succs[level]).nexts)[level].load(Relaxed), Relaxed);
[INFO] [stdout]     |                                    ++                     +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lock_base/skiplist.rs:275:40
[INFO] [stdout]     |
[INFO] [stdout] 275 |             let mut current = unsafe { (*pred).nexts[level].load(Relaxed).as_mut().unwrap() };
[INFO] [stdout]     |                                        ^^----^^^^^^^^^^^^^^
[INFO] [stdout]     |                                          |
[INFO] [stdout]     |                                          this raw pointer has type `*mut lock_base::skiplist::entry::Entry<K, V, C>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<AtomicPtr<lock_base::skiplist::entry::Entry<K, V, C>>>`
[INFO] [stdout]    --> src/lock_base/skiplist.rs:275:40
[INFO] [stdout]     |
[INFO] [stdout] 275 |             let mut current = unsafe { (*pred).nexts[level].load(Relaxed).as_mut().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] 275 |             let mut current = unsafe { (&(*pred).nexts)[level].load(Relaxed).as_mut().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/lock_free/skiplist.rs:109:21
[INFO] [stdout]     |
[INFO] [stdout] 109 |                     (*new_entry).nexts[level].store(succs[level], false, Relaxed);
[INFO] [stdout]     |                     ^^---------^^^^^^^^^^^^^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this raw pointer has type `*mut lock_free::skiplist::entry::Entry<K, V, C>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<MarkableAtomicPtr<lock_free::skiplist::entry::Entry<K, V, C>>>`
[INFO] [stdout]    --> src/lock_free/skiplist.rs:109:21
[INFO] [stdout]     |
[INFO] [stdout] 109 |                     (*new_entry).nexts[level].store(succs[level], false, Relaxed);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 109 |                     (&(*new_entry).nexts)[level].store(succs[level], false, Relaxed);
[INFO] [stdout]     |                     ++                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lock_free/skiplist.rs:216:40
[INFO] [stdout]     |
[INFO] [stdout] 216 |                 current_ptr = unsafe { (*pred).nexts[level].load_ptr(Acquire) };
[INFO] [stdout]     |                                        ^^----^^^^^^^^^^^^^^
[INFO] [stdout]     |                                          |
[INFO] [stdout]     |                                          this raw pointer has type `*mut lock_free::skiplist::entry::Entry<K, V, C>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<MarkableAtomicPtr<lock_free::skiplist::entry::Entry<K, V, C>>>`
[INFO] [stdout]    --> src/lock_free/skiplist.rs:216:40
[INFO] [stdout]     |
[INFO] [stdout] 216 |                 current_ptr = unsafe { (*pred).nexts[level].load_ptr(Acquire) };
[INFO] [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 |                 current_ptr = unsafe { (&(*pred).nexts)[level].load_ptr(Acquire) };
[INFO] [stdout]     |                                        ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lock_free/skiplist.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 | ...                   match (*pred).nexts[level].compare_exchange(
[INFO] [stdout]     |                             ^^----^^^^^^^^^^^^^^
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this raw pointer has type `*mut lock_free::skiplist::entry::Entry<K, V, C>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<MarkableAtomicPtr<lock_free::skiplist::entry::Entry<K, V, C>>>`
[INFO] [stdout]    --> src/lock_free/skiplist.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 | ...                   match (*pred).nexts[level].compare_exchange(
[INFO] [stdout]     |                             ^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 228 |                             match (&(*pred).nexts)[level].compare_exchange(
[INFO] [stdout]     |                                   ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lock_free/skiplist.rs:237:51
[INFO] [stdout]     |
[INFO] [stdout] 237 | ...                   current_ptr = (*pred).nexts[level].load_ptr(Acquire);
[INFO] [stdout]     |                                     ^^----^^^^^^^^^^^^^^
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       this raw pointer has type `*mut lock_free::skiplist::entry::Entry<K, V, C>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<MarkableAtomicPtr<lock_free::skiplist::entry::Entry<K, V, C>>>`
[INFO] [stdout]    --> src/lock_free/skiplist.rs:237:51
[INFO] [stdout]     |
[INFO] [stdout] 237 | ...                   current_ptr = (*pred).nexts[level].load_ptr(Acquire);
[INFO] [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 |                                     current_ptr = (&(*pred).nexts)[level].load_ptr(Acquire);
[INFO] [stdout]     |                                                   ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lock_free/skiplist.rs:277:58
[INFO] [stdout]     |
[INFO] [stdout] 277 |             let (mut current_ptr, mut marked) = unsafe { (*pred).nexts[level].load(Relaxed) };
[INFO] [stdout]     |                                                          ^^----^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                            |
[INFO] [stdout]     |                                                            this raw pointer has type `*mut lock_free::skiplist::entry::Entry<K, V, C>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<MarkableAtomicPtr<lock_free::skiplist::entry::Entry<K, V, C>>>`
[INFO] [stdout]    --> src/lock_free/skiplist.rs:277:58
[INFO] [stdout]     |
[INFO] [stdout] 277 |             let (mut current_ptr, mut marked) = unsafe { (*pred).nexts[level].load(Relaxed) };
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 277 |             let (mut current_ptr, mut marked) = unsafe { (&(*pred).nexts)[level].load(Relaxed) };
[INFO] [stdout]     |                                                          ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]   --> src/sequencial/skiplist.rs:53:17
[INFO] [stdout]    |
[INFO] [stdout] 53 |                 (*head).nexts[level] = tail;
[INFO] [stdout]    |                 ^^----^^^^^^^^^^^^^^
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   this raw pointer has type `*mut sequencial::skiplist::entry::Entry<K, V, C>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: creating a 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<*mut sequencial::skiplist::entry::Entry<K, V, C>>`
[INFO] [stdout]   --> src/sequencial/skiplist.rs:53:17
[INFO] [stdout]    |
[INFO] [stdout] 53 |                 (*head).nexts[level] = tail;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]    |
[INFO] [stdout] 53 |                 (&mut (*head).nexts)[level] = tail;
[INFO] [stdout]    |                 +++++              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]   --> src/sequencial/skiplist.rs:81:17
[INFO] [stdout]    |
[INFO] [stdout] 81 |                 (*new_entry).nexts[level] = succs[level];
[INFO] [stdout]    |                 ^^---------^^^^^^^^^^^^^^
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   this raw pointer has type `*mut sequencial::skiplist::entry::Entry<K, V, C>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: creating a 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<*mut sequencial::skiplist::entry::Entry<K, V, C>>`
[INFO] [stdout]   --> src/sequencial/skiplist.rs:81:17
[INFO] [stdout]    |
[INFO] [stdout] 81 |                 (*new_entry).nexts[level] = succs[level];
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]    |
[INFO] [stdout] 81 |                 (&mut (*new_entry).nexts)[level] = succs[level];
[INFO] [stdout]    |                 +++++                   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]   --> src/sequencial/skiplist.rs:82:17
[INFO] [stdout]    |
[INFO] [stdout] 82 |                 (*preds[level]).nexts[level] = new_entry;
[INFO] [stdout]    |                 ^^------------^^^^^^^^^^^^^^
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   this raw pointer has type `*mut sequencial::skiplist::entry::Entry<K, V, C>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: creating a 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<*mut sequencial::skiplist::entry::Entry<K, V, C>>`
[INFO] [stdout]   --> src/sequencial/skiplist.rs:82:17
[INFO] [stdout]    |
[INFO] [stdout] 82 |                 (*preds[level]).nexts[level] = new_entry;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]    |
[INFO] [stdout] 82 |                 (&mut (*preds[level]).nexts)[level] = new_entry;
[INFO] [stdout]    |                 +++++                      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/sequencial/skiplist.rs:105:48
[INFO] [stdout]     |
[INFO] [stdout] 105 |                 (*preds[level]).nexts[level] = (*entry_to_remove).nexts[level];
[INFO] [stdout]     |                                                ^^---------------^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                  |
[INFO] [stdout]     |                                                  this raw pointer has type `*mut sequencial::skiplist::entry::Entry<K, V, C>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<*mut sequencial::skiplist::entry::Entry<K, V, C>>`
[INFO] [stdout]    --> src/sequencial/skiplist.rs:105:48
[INFO] [stdout]     |
[INFO] [stdout] 105 |                 (*preds[level]).nexts[level] = (*entry_to_remove).nexts[level];
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 105 |                 (*preds[level]).nexts[level] = (&(*entry_to_remove).nexts)[level];
[INFO] [stdout]     |                                                ++                        +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/sequencial/skiplist.rs:105:17
[INFO] [stdout]     |
[INFO] [stdout] 105 |                 (*preds[level]).nexts[level] = (*entry_to_remove).nexts[level];
[INFO] [stdout]     |                 ^^------------^^^^^^^^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this raw pointer has type `*mut sequencial::skiplist::entry::Entry<K, V, C>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a 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<*mut sequencial::skiplist::entry::Entry<K, V, C>>`
[INFO] [stdout]    --> src/sequencial/skiplist.rs:105:17
[INFO] [stdout]     |
[INFO] [stdout] 105 |                 (*preds[level]).nexts[level] = (*entry_to_remove).nexts[level];
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 105 |                 (&mut (*preds[level]).nexts)[level] = (*entry_to_remove).nexts[level];
[INFO] [stdout]     |                 +++++                      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/sequencial/skiplist.rs:155:40
[INFO] [stdout]     |
[INFO] [stdout] 155 |             let mut current = unsafe { (*pred).nexts[level].as_mut().unwrap() };
[INFO] [stdout]     |                                        ^^----^^^^^^^^^^^^^^
[INFO] [stdout]     |                                          |
[INFO] [stdout]     |                                          this raw pointer has type `*mut sequencial::skiplist::entry::Entry<K, V, C>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<*mut sequencial::skiplist::entry::Entry<K, V, C>>`
[INFO] [stdout]    --> src/sequencial/skiplist.rs:155:40
[INFO] [stdout]     |
[INFO] [stdout] 155 |             let mut current = unsafe { (*pred).nexts[level].as_mut().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] 155 |             let mut current = unsafe { (&(*pred).nexts)[level].as_mut().unwrap() };
[INFO] [stdout]     |                                        ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `skiplist` (bin "skiplist" test) due to 17 previous errors; 33 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lock_free/skiplist.rs:203:13
[INFO] [stdout]     |
[INFO] [stdout] 203 |         let mut marked = false;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `marked`
[INFO] [stdout]    --> src/lock_free/skiplist.rs:203:13
[INFO] [stdout]     |
[INFO] [stdout] 203 |         let mut marked = false;
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_marked`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `actual`
[INFO] [stdout]    --> src/lock_free/skiplist.rs:244:38
[INFO] [stdout]     |
[INFO] [stdout] 244 | ...                   Err((actual, _)) => {
[INFO] [stdout]     |                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_actual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lock_free/skiplist.rs:272:13
[INFO] [stdout]     |
[INFO] [stdout] 272 |         let mut pred = self.head;
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lock_free/skiplist.rs:277:18
[INFO] [stdout]     |
[INFO] [stdout] 277 |             let (mut current_ptr, mut marked) = unsafe { (*pred).nexts[level].load(Relaxed) };
[INFO] [stdout]     |                  ----^^^^^^^^^^^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lock_free/skiplist.rs:277:35
[INFO] [stdout]     |
[INFO] [stdout] 277 |             let (mut current_ptr, mut marked) = unsafe { (*pred).nexts[level].load(Relaxed) };
[INFO] [stdout]     |                                   ----^^^^^^
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lock_free/skiplist.rs:278:17
[INFO] [stdout]     |
[INFO] [stdout] 278 |             let mut current = unsafe { current_ptr.as_mut().unwrap() };
[INFO] [stdout]     |                 ----^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/lock_free/skiplist.rs:274:13
[INFO] [stdout]     |
[INFO] [stdout] 274 |         let key = Key::Entry(key);
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `marked`
[INFO] [stdout]    --> src/lock_free/skiplist.rs:277:35
[INFO] [stdout]     |
[INFO] [stdout] 277 |             let (mut current_ptr, mut marked) = unsafe { (*pred).nexts[level].load(Relaxed) };
[INFO] [stdout]     |                                   ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_marked`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current`
[INFO] [stdout]    --> src/lock_free/skiplist.rs:278:17
[INFO] [stdout]     |
[INFO] [stdout] 278 |             let mut current = unsafe { current_ptr.as_mut().unwrap() };
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `key_cmp` is never read
[INFO] [stdout]   --> src/lock_base/skiplist.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct SkipList<K, V, C = fn(&K, &K) -> Ordering>
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     key_cmp: C,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get` is never used
[INFO] [stdout]    --> src/lock_base/skiplist.rs:269:12
[INFO] [stdout]     |
[INFO] [stdout]  54 | / impl<K, V, C> SkipList<K, V, C>
[INFO] [stdout]  55 | | where
[INFO] [stdout]  56 | |     K: Ord + Debug,
[INFO] [stdout]  57 | |     C: Fn(&K, &K) -> Ordering,
[INFO] [stdout]     | |______________________________- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 269 |       pub fn get(&self, key: K) -> Option<&V> {
[INFO] [stdout]     |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/lock_free/markable_atomic_ptr.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl<T> MarkableAtomicPtr<T> {
[INFO] [stdout]    | ---------------------------- associated function in this implementation
[INFO] [stdout] 11 |     pub fn new(ptr: *mut T, mark: bool) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MASK` is never used
[INFO] [stdout]   --> src/lock_free/skiplist.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const MASK: usize = !0b1;
[INFO] [stdout]    |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_ptr` is never used
[INFO] [stdout]   --> src/lock_free/skiplist.rs:22:4
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn extract_ptr<'a, T>(ptr: *mut T) -> (&'a mut T, bool) {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mark_ptr` is never used
[INFO] [stdout]   --> src/lock_free/skiplist.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn mark_ptr<T>(ptr: *mut T) -> *mut T {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `key_cmp` is never read
[INFO] [stdout]   --> src/lock_free/skiplist.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct SkipList<K, V, C = fn(&K, &K) -> Ordering>
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     key_cmp: C,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get` is never used
[INFO] [stdout]    --> src/lock_free/skiplist.rs:271:12
[INFO] [stdout]     |
[INFO] [stdout]  72 | / impl<K, V, C> SkipList<K, V, C>
[INFO] [stdout]  73 | | where
[INFO] [stdout]  74 | |     K: Ord + Debug,
[INFO] [stdout]  75 | |     C: Fn(&K, &K) -> Ordering,
[INFO] [stdout]     | |______________________________- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 271 |       pub fn get(&self, key: K) -> Option<&V> {
[INFO] [stdout]     |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `key_cmp` is never read
[INFO] [stdout]   --> src/sequencial/skiplist.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct SkipList<K, V, C = fn(&K, &K) -> Ordering>
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 17 |     key_cmp: C,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]   --> src/lock_base/skiplist.rs:82:17
[INFO] [stdout]    |
[INFO] [stdout] 82 |                 (*head).nexts[level].store(tail, Relaxed);
[INFO] [stdout]    |                 ^^----^^^^^^^^^^^^^^
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   this raw pointer has type `*mut lock_base::skiplist::entry::Entry<K, V, C>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<AtomicPtr<lock_base::skiplist::entry::Entry<K, V, C>>>`
[INFO] [stdout]   --> src/lock_base/skiplist.rs:82:17
[INFO] [stdout]    |
[INFO] [stdout] 82 |                 (*head).nexts[level].store(tail, Relaxed);
[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] 82 |                 (&(*head).nexts)[level].store(tail, Relaxed);
[INFO] [stdout]    |                 ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lock_base/skiplist.rs:148:21
[INFO] [stdout]     |
[INFO] [stdout] 148 |                     (*new_entry).nexts[level].store(succs[level], Relaxed);
[INFO] [stdout]     |                     ^^---------^^^^^^^^^^^^^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this raw pointer has type `*mut lock_base::skiplist::entry::Entry<K, V, C>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<AtomicPtr<lock_base::skiplist::entry::Entry<K, V, C>>>`
[INFO] [stdout]    --> src/lock_base/skiplist.rs:148:21
[INFO] [stdout]     |
[INFO] [stdout] 148 |                     (*new_entry).nexts[level].store(succs[level], Relaxed);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 148 |                     (&(*new_entry).nexts)[level].store(succs[level], Relaxed);
[INFO] [stdout]     |                     ++                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lock_base/skiplist.rs:149:21
[INFO] [stdout]     |
[INFO] [stdout] 149 |                     (*preds[level]).nexts[level].store(new_entry, Relaxed);
[INFO] [stdout]     |                     ^^------------^^^^^^^^^^^^^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this raw pointer has type `*mut lock_base::skiplist::entry::Entry<K, V, C>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<AtomicPtr<lock_base::skiplist::entry::Entry<K, V, C>>>`
[INFO] [stdout]    --> src/lock_base/skiplist.rs:149:21
[INFO] [stdout]     |
[INFO] [stdout] 149 |                     (*preds[level]).nexts[level].store(new_entry, Relaxed);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 149 |                     (&(*preds[level]).nexts)[level].store(new_entry, Relaxed);
[INFO] [stdout]     |                     ++                     +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lock_base/skiplist.rs:223:25
[INFO] [stdout]     |
[INFO] [stdout] 223 |                         (*preds[level]).nexts[level]
[INFO] [stdout]     |                         ^^------------^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this raw pointer has type `*mut lock_base::skiplist::entry::Entry<K, V, C>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<AtomicPtr<lock_base::skiplist::entry::Entry<K, V, C>>>`
[INFO] [stdout]    --> src/lock_base/skiplist.rs:223:25
[INFO] [stdout]     |
[INFO] [stdout] 223 |                         (*preds[level]).nexts[level]
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 223 |                         (&(*preds[level]).nexts)[level]
[INFO] [stdout]     |                         ++                     +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lock_base/skiplist.rs:224:36
[INFO] [stdout]     |
[INFO] [stdout] 224 | ...                   .store((*succs[level]).nexts[level].load(Relaxed), Relaxed);
[INFO] [stdout]     |                              ^^------------^^^^^^^^^^^^^^
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                this raw pointer has type `*mut lock_base::skiplist::entry::Entry<K, V, C>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<AtomicPtr<lock_base::skiplist::entry::Entry<K, V, C>>>`
[INFO] [stdout]    --> src/lock_base/skiplist.rs:224:36
[INFO] [stdout]     |
[INFO] [stdout] 224 | ...                   .store((*succs[level]).nexts[level].load(Relaxed), Relaxed);
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 224 |                             .store((&(*succs[level]).nexts)[level].load(Relaxed), Relaxed);
[INFO] [stdout]     |                                    ++                     +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lock_base/skiplist.rs:275:40
[INFO] [stdout]     |
[INFO] [stdout] 275 |             let mut current = unsafe { (*pred).nexts[level].load(Relaxed).as_mut().unwrap() };
[INFO] [stdout]     |                                        ^^----^^^^^^^^^^^^^^
[INFO] [stdout]     |                                          |
[INFO] [stdout]     |                                          this raw pointer has type `*mut lock_base::skiplist::entry::Entry<K, V, C>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<AtomicPtr<lock_base::skiplist::entry::Entry<K, V, C>>>`
[INFO] [stdout]    --> src/lock_base/skiplist.rs:275:40
[INFO] [stdout]     |
[INFO] [stdout] 275 |             let mut current = unsafe { (*pred).nexts[level].load(Relaxed).as_mut().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] 275 |             let mut current = unsafe { (&(*pred).nexts)[level].load(Relaxed).as_mut().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/lock_free/skiplist.rs:109:21
[INFO] [stdout]     |
[INFO] [stdout] 109 |                     (*new_entry).nexts[level].store(succs[level], false, Relaxed);
[INFO] [stdout]     |                     ^^---------^^^^^^^^^^^^^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this raw pointer has type `*mut lock_free::skiplist::entry::Entry<K, V, C>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<MarkableAtomicPtr<lock_free::skiplist::entry::Entry<K, V, C>>>`
[INFO] [stdout]    --> src/lock_free/skiplist.rs:109:21
[INFO] [stdout]     |
[INFO] [stdout] 109 |                     (*new_entry).nexts[level].store(succs[level], false, Relaxed);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 109 |                     (&(*new_entry).nexts)[level].store(succs[level], false, Relaxed);
[INFO] [stdout]     |                     ++                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lock_free/skiplist.rs:216:40
[INFO] [stdout]     |
[INFO] [stdout] 216 |                 current_ptr = unsafe { (*pred).nexts[level].load_ptr(Acquire) };
[INFO] [stdout]     |                                        ^^----^^^^^^^^^^^^^^
[INFO] [stdout]     |                                          |
[INFO] [stdout]     |                                          this raw pointer has type `*mut lock_free::skiplist::entry::Entry<K, V, C>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<MarkableAtomicPtr<lock_free::skiplist::entry::Entry<K, V, C>>>`
[INFO] [stdout]    --> src/lock_free/skiplist.rs:216:40
[INFO] [stdout]     |
[INFO] [stdout] 216 |                 current_ptr = unsafe { (*pred).nexts[level].load_ptr(Acquire) };
[INFO] [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 |                 current_ptr = unsafe { (&(*pred).nexts)[level].load_ptr(Acquire) };
[INFO] [stdout]     |                                        ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lock_free/skiplist.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 | ...                   match (*pred).nexts[level].compare_exchange(
[INFO] [stdout]     |                             ^^----^^^^^^^^^^^^^^
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this raw pointer has type `*mut lock_free::skiplist::entry::Entry<K, V, C>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<MarkableAtomicPtr<lock_free::skiplist::entry::Entry<K, V, C>>>`
[INFO] [stdout]    --> src/lock_free/skiplist.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 | ...                   match (*pred).nexts[level].compare_exchange(
[INFO] [stdout]     |                             ^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 228 |                             match (&(*pred).nexts)[level].compare_exchange(
[INFO] [stdout]     |                                   ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lock_free/skiplist.rs:237:51
[INFO] [stdout]     |
[INFO] [stdout] 237 | ...                   current_ptr = (*pred).nexts[level].load_ptr(Acquire);
[INFO] [stdout]     |                                     ^^----^^^^^^^^^^^^^^
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       this raw pointer has type `*mut lock_free::skiplist::entry::Entry<K, V, C>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<MarkableAtomicPtr<lock_free::skiplist::entry::Entry<K, V, C>>>`
[INFO] [stdout]    --> src/lock_free/skiplist.rs:237:51
[INFO] [stdout]     |
[INFO] [stdout] 237 | ...                   current_ptr = (*pred).nexts[level].load_ptr(Acquire);
[INFO] [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 |                                     current_ptr = (&(*pred).nexts)[level].load_ptr(Acquire);
[INFO] [stdout]     |                                                   ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lock_free/skiplist.rs:277:58
[INFO] [stdout]     |
[INFO] [stdout] 277 |             let (mut current_ptr, mut marked) = unsafe { (*pred).nexts[level].load(Relaxed) };
[INFO] [stdout]     |                                                          ^^----^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                            |
[INFO] [stdout]     |                                                            this raw pointer has type `*mut lock_free::skiplist::entry::Entry<K, V, C>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<MarkableAtomicPtr<lock_free::skiplist::entry::Entry<K, V, C>>>`
[INFO] [stdout]    --> src/lock_free/skiplist.rs:277:58
[INFO] [stdout]     |
[INFO] [stdout] 277 |             let (mut current_ptr, mut marked) = unsafe { (*pred).nexts[level].load(Relaxed) };
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 277 |             let (mut current_ptr, mut marked) = unsafe { (&(*pred).nexts)[level].load(Relaxed) };
[INFO] [stdout]     |                                                          ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]   --> src/sequencial/skiplist.rs:53:17
[INFO] [stdout]    |
[INFO] [stdout] 53 |                 (*head).nexts[level] = tail;
[INFO] [stdout]    |                 ^^----^^^^^^^^^^^^^^
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   this raw pointer has type `*mut sequencial::skiplist::entry::Entry<K, V, C>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: creating a 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<*mut sequencial::skiplist::entry::Entry<K, V, C>>`
[INFO] [stdout]   --> src/sequencial/skiplist.rs:53:17
[INFO] [stdout]    |
[INFO] [stdout] 53 |                 (*head).nexts[level] = tail;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]    |
[INFO] [stdout] 53 |                 (&mut (*head).nexts)[level] = tail;
[INFO] [stdout]    |                 +++++              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]   --> src/sequencial/skiplist.rs:81:17
[INFO] [stdout]    |
[INFO] [stdout] 81 |                 (*new_entry).nexts[level] = succs[level];
[INFO] [stdout]    |                 ^^---------^^^^^^^^^^^^^^
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   this raw pointer has type `*mut sequencial::skiplist::entry::Entry<K, V, C>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: creating a 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<*mut sequencial::skiplist::entry::Entry<K, V, C>>`
[INFO] [stdout]   --> src/sequencial/skiplist.rs:81:17
[INFO] [stdout]    |
[INFO] [stdout] 81 |                 (*new_entry).nexts[level] = succs[level];
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]    |
[INFO] [stdout] 81 |                 (&mut (*new_entry).nexts)[level] = succs[level];
[INFO] [stdout]    |                 +++++                   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]   --> src/sequencial/skiplist.rs:82:17
[INFO] [stdout]    |
[INFO] [stdout] 82 |                 (*preds[level]).nexts[level] = new_entry;
[INFO] [stdout]    |                 ^^------------^^^^^^^^^^^^^^
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   this raw pointer has type `*mut sequencial::skiplist::entry::Entry<K, V, C>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: creating a 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<*mut sequencial::skiplist::entry::Entry<K, V, C>>`
[INFO] [stdout]   --> src/sequencial/skiplist.rs:82:17
[INFO] [stdout]    |
[INFO] [stdout] 82 |                 (*preds[level]).nexts[level] = new_entry;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]    |
[INFO] [stdout] 82 |                 (&mut (*preds[level]).nexts)[level] = new_entry;
[INFO] [stdout]    |                 +++++                      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/sequencial/skiplist.rs:105:48
[INFO] [stdout]     |
[INFO] [stdout] 105 |                 (*preds[level]).nexts[level] = (*entry_to_remove).nexts[level];
[INFO] [stdout]     |                                                ^^---------------^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                  |
[INFO] [stdout]     |                                                  this raw pointer has type `*mut sequencial::skiplist::entry::Entry<K, V, C>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<*mut sequencial::skiplist::entry::Entry<K, V, C>>`
[INFO] [stdout]    --> src/sequencial/skiplist.rs:105:48
[INFO] [stdout]     |
[INFO] [stdout] 105 |                 (*preds[level]).nexts[level] = (*entry_to_remove).nexts[level];
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 105 |                 (*preds[level]).nexts[level] = (&(*entry_to_remove).nexts)[level];
[INFO] [stdout]     |                                                ++                        +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/sequencial/skiplist.rs:105:17
[INFO] [stdout]     |
[INFO] [stdout] 105 |                 (*preds[level]).nexts[level] = (*entry_to_remove).nexts[level];
[INFO] [stdout]     |                 ^^------------^^^^^^^^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this raw pointer has type `*mut sequencial::skiplist::entry::Entry<K, V, C>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a 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<*mut sequencial::skiplist::entry::Entry<K, V, C>>`
[INFO] [stdout]    --> src/sequencial/skiplist.rs:105:17
[INFO] [stdout]     |
[INFO] [stdout] 105 |                 (*preds[level]).nexts[level] = (*entry_to_remove).nexts[level];
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 105 |                 (&mut (*preds[level]).nexts)[level] = (*entry_to_remove).nexts[level];
[INFO] [stdout]     |                 +++++                      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/sequencial/skiplist.rs:155:40
[INFO] [stdout]     |
[INFO] [stdout] 155 |             let mut current = unsafe { (*pred).nexts[level].as_mut().unwrap() };
[INFO] [stdout]     |                                        ^^----^^^^^^^^^^^^^^
[INFO] [stdout]     |                                          |
[INFO] [stdout]     |                                          this raw pointer has type `*mut sequencial::skiplist::entry::Entry<K, V, C>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<*mut sequencial::skiplist::entry::Entry<K, V, C>>`
[INFO] [stdout]    --> src/sequencial/skiplist.rs:155:40
[INFO] [stdout]     |
[INFO] [stdout] 155 |             let mut current = unsafe { (*pred).nexts[level].as_mut().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] 155 |             let mut current = unsafe { (&(*pred).nexts)[level].as_mut().unwrap() };
[INFO] [stdout]     |                                        ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `skiplist` (bin "skiplist") due to 17 previous errors; 33 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "39f8ba39e9f4472d9df5da3da8659eb57a3d3ef2e155b2ce7efb168fa7f68073", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "39f8ba39e9f4472d9df5da3da8659eb57a3d3ef2e155b2ce7efb168fa7f68073", kill_on_drop: false }`
[INFO] [stdout] 39f8ba39e9f4472d9df5da3da8659eb57a3d3ef2e155b2ce7efb168fa7f68073
