[INFO] fetching crate extended-collections 0.5.0...
[INFO] checking extended-collections-0.5.0 against master#30f74ff0dc4d66debc8b50724c446f817e5f75f4 for pr-121848-1
[INFO] extracting crate extended-collections 0.5.0 into /workspace/builds/worker-0-tc1/source
[INFO] validating manifest of crates.io crate extended-collections 0.5.0 on toolchain 30f74ff0dc4d66debc8b50724c446f817e5f75f4
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+30f74ff0dc4d66debc8b50724c446f817e5f75f4" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate extended-collections 0.5.0
[INFO] finished tweaking crates.io crate extended-collections 0.5.0
[INFO] tweaked toml for crates.io crate extended-collections 0.5.0 written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+30f74ff0dc4d66debc8b50724c446f817e5f75f4" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+30f74ff0dc4d66debc8b50724c446f817e5f75f4" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded crossbeam-utils v0.2.2
[INFO] [stderr]   Downloaded probabilistic-collections v0.3.0
[INFO] [stderr]   Downloaded memoffset v0.1.0
[INFO] [stderr]   Downloaded crossbeam-epoch v0.2.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+30f74ff0dc4d66debc8b50724c446f817e5f75f4" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2030a12dd457ada45fa615ed9e5d01d0a071d0967429efea4427e12e907f8542
[INFO] running `Command { std: "docker" "start" "-a" "2030a12dd457ada45fa615ed9e5d01d0a071d0967429efea4427e12e907f8542", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2030a12dd457ada45fa615ed9e5d01d0a071d0967429efea4427e12e907f8542", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2030a12dd457ada45fa615ed9e5d01d0a071d0967429efea4427e12e907f8542", kill_on_drop: false }`
[INFO] [stdout] 2030a12dd457ada45fa615ed9e5d01d0a071d0967429efea4427e12e907f8542
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+30f74ff0dc4d66debc8b50724c446f817e5f75f4" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1a67eb5a1117ee727a0afd8f9ddeb030478d44b6cd5a760881456bcc28c46e75
[INFO] running `Command { std: "docker" "start" "-a" "1a67eb5a1117ee727a0afd8f9ddeb030478d44b6cd5a760881456bcc28c46e75", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.197
[INFO] [stderr]    Compiling arrayvec v0.4.12
[INFO] [stderr]     Checking cfg-if v0.1.10
[INFO] [stderr]     Checking nodrop v0.1.14
[INFO] [stderr]     Checking scopeguard v0.3.3
[INFO] [stderr]     Checking lazy_static v0.2.11
[INFO] [stderr]     Checking siphasher v0.2.3
[INFO] [stderr]     Checking memoffset v0.1.0
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking crossbeam-utils v0.2.2
[INFO] [stderr]     Checking crossbeam-epoch v0.2.0
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking serde_test v1.0.176
[INFO] [stderr]     Checking probabilistic-collections v0.3.0
[INFO] [stderr]     Checking extended-collections v0.5.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: the item `Vec` is imported redundantly
[INFO] [stdout]  --> src/arena.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::vec::Vec;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]  --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:105:13
[INFO] [stdout]   |
[INFO] [stdout]   = note: the item `Vec` is already defined here
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/bp_tree/node.rs:112:42
[INFO] [stdout]     |
[INFO] [stdout] 112 |                 &mut split_node.pointers[(1 - offset)],
[INFO] [stdout]     |                                          ^          ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 112 -                 &mut split_node.pointers[(1 - offset)],
[INFO] [stdout] 112 +                 &mut split_node.pointers[1 - offset],
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `bincode` is imported redundantly
[INFO] [stdout]   --> src/bp_tree/pager.rs:1:15
[INFO] [stdout]    |
[INFO] [stdout] 1  | use bincode::{self, deserialize, serialize, serialized_size};
[INFO] [stdout]    |               ^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/lib.rs:31:1
[INFO] [stdout]    |
[INFO] [stdout] 31 | extern crate bincode;
[INFO] [stdout]    | --------------------- the item `bincode` is already imported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Send` is imported redundantly
[INFO] [stdout]   --> src/lsm_tree/compaction/size_tiered.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::marker::Send;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:105:13
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item `Send` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `bincode` is imported redundantly
[INFO] [stdout]   --> src/lsm_tree/mod.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout] 8  | use bincode;
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/lib.rs:31:1
[INFO] [stdout]    |
[INFO] [stdout] 31 | extern crate bincode;
[INFO] [stdout]    | --------------------- the item `bincode` is already imported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `epoch` is imported redundantly
[INFO] [stdout]   --> src/sync/stack.rs:1:13
[INFO] [stdout]    |
[INFO] [stdout] 1  | use epoch::{self, Atomic, Owned};
[INFO] [stdout]    |             ^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/lib.rs:33:1
[INFO] [stdout]    |
[INFO] [stdout] 33 | extern crate crossbeam_epoch as epoch;
[INFO] [stdout]    | -------------------------------------- the item `epoch` is already imported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Vec` is imported redundantly
[INFO] [stdout]  --> src/arena.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::vec::Vec;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]  --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:105:13
[INFO] [stdout]   |
[INFO] [stdout]   = note: the item `Vec` is already defined here
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/bp_tree/node.rs:112:42
[INFO] [stdout]     |
[INFO] [stdout] 112 |                 &mut split_node.pointers[(1 - offset)],
[INFO] [stdout]     |                                          ^          ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 112 -                 &mut split_node.pointers[(1 - offset)],
[INFO] [stdout] 112 +                 &mut split_node.pointers[1 - offset],
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `bincode` is imported redundantly
[INFO] [stdout]   --> src/bp_tree/pager.rs:1:15
[INFO] [stdout]    |
[INFO] [stdout] 1  | use bincode::{self, deserialize, serialize, serialized_size};
[INFO] [stdout]    |               ^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/lib.rs:31:1
[INFO] [stdout]    |
[INFO] [stdout] 31 | extern crate bincode;
[INFO] [stdout]    | --------------------- the item `bincode` is already imported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Send` is imported redundantly
[INFO] [stdout]   --> src/lsm_tree/compaction/size_tiered.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::marker::Send;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:105:13
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item `Send` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `bincode` is imported redundantly
[INFO] [stdout]   --> src/lsm_tree/mod.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout] 8  | use bincode;
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/lib.rs:31:1
[INFO] [stdout]    |
[INFO] [stdout] 31 | extern crate bincode;
[INFO] [stdout]    | --------------------- the item `bincode` is already imported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `epoch` is imported redundantly
[INFO] [stdout]   --> src/sync/stack.rs:1:13
[INFO] [stdout]    |
[INFO] [stdout] 1  | use epoch::{self, Atomic, Owned};
[INFO] [stdout]    |             ^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/lib.rs:33:1
[INFO] [stdout]    |
[INFO] [stdout] 33 | extern crate crossbeam_epoch as epoch;
[INFO] [stdout]    | -------------------------------------- the item `epoch` is already imported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lsm_tree/compaction/mod.rs:15:33
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub type CompactionIter<T, U> = Iterator<Item = Result<(T, U)>>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub type CompactionIter<T, U> = dyn Iterator<Item = Result<(T, U)>>;
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lsm_tree/compaction/mod.rs:15:33
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub type CompactionIter<T, U> = Iterator<Item = Result<(T, U)>>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub type CompactionIter<T, U> = dyn Iterator<Item = Result<(T, U)>>;
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bp_tree/pager.rs:44:32
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn cause(&self) -> Option<&error::Error> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lsm_tree/mod.rs:44:32
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn cause(&self) -> Option<&error::Error> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bp_tree/pager.rs:44:32
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn cause(&self) -> Option<&error::Error> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lsm_tree/mod.rs:44:32
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn cause(&self) -> Option<&error::Error> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bp_tree/pager.rs:39:48
[INFO] [stdout]    |
[INFO] [stdout] 39 |             Error::IOError(ref error) => error.description(),
[INFO] [stdout]    |                                                ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bp_tree/pager.rs:40:51
[INFO] [stdout]    |
[INFO] [stdout] 40 |             Error::SerdeError(ref error) => error.description(),
[INFO] [stdout]    |                                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/bp_tree/pager.rs:46:48
[INFO] [stdout]    |
[INFO] [stdout] 46 |             Error::IOError(ref error) => error.cause(),
[INFO] [stdout]    |                                                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/bp_tree/pager.rs:47:51
[INFO] [stdout]    |
[INFO] [stdout] 47 |             Error::SerdeError(ref error) => error.cause(),
[INFO] [stdout]    |                                                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/lsm_tree/mod.rs:39:48
[INFO] [stdout]    |
[INFO] [stdout] 39 |             Error::IOError(ref error) => error.description(),
[INFO] [stdout]    |                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/lsm_tree/mod.rs:40:51
[INFO] [stdout]    |
[INFO] [stdout] 40 |             Error::SerdeError(ref error) => error.description(),
[INFO] [stdout]    |                                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/lsm_tree/mod.rs:46:48
[INFO] [stdout]    |
[INFO] [stdout] 46 |             Error::IOError(ref error) => error.cause(),
[INFO] [stdout]    |                                                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/lsm_tree/mod.rs:47:51
[INFO] [stdout]    |
[INFO] [stdout] 47 |             Error::SerdeError(ref error) => error.cause(),
[INFO] [stdout]    |                                                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bp_tree/pager.rs:39:48
[INFO] [stdout]    |
[INFO] [stdout] 39 |             Error::IOError(ref error) => error.description(),
[INFO] [stdout]    |                                                ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bp_tree/pager.rs:40:51
[INFO] [stdout]    |
[INFO] [stdout] 40 |             Error::SerdeError(ref error) => error.description(),
[INFO] [stdout]    |                                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/bp_tree/pager.rs:46:48
[INFO] [stdout]    |
[INFO] [stdout] 46 |             Error::IOError(ref error) => error.cause(),
[INFO] [stdout]    |                                                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/bp_tree/pager.rs:47:51
[INFO] [stdout]    |
[INFO] [stdout] 47 |             Error::SerdeError(ref error) => error.cause(),
[INFO] [stdout]    |                                                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/arena.rs:93:21
[INFO] [stdout]    |
[INFO] [stdout] 93 |                 let mut last_chunk = &mut self.chunks[chunk_count - 1];
[INFO] [stdout]    |                     ----^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bp_tree/map.rs:399:30
[INFO] [stdout]     |
[INFO] [stdout] 399 |                         let (mut removed_key, removed_pointer) = sibling_internal_node.remove_at(0, false);
[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/bp_tree/map.rs:410:30
[INFO] [stdout]     |
[INFO] [stdout] 410 |                         let (mut removed_key, removed_pointer) = sibling_internal_node.remove_at(remove_index, true);
[INFO] [stdout]     |                              ----^^^^^^^^^^^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/lsm_tree/mod.rs:39:48
[INFO] [stdout]    |
[INFO] [stdout] 39 |             Error::IOError(ref error) => error.description(),
[INFO] [stdout]    |                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/lsm_tree/mod.rs:40:51
[INFO] [stdout]    |
[INFO] [stdout] 40 |             Error::SerdeError(ref error) => error.description(),
[INFO] [stdout]    |                                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/lsm_tree/mod.rs:46:48
[INFO] [stdout]    |
[INFO] [stdout] 46 |             Error::IOError(ref error) => error.cause(),
[INFO] [stdout]    |                                                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/lsm_tree/mod.rs:47:51
[INFO] [stdout]    |
[INFO] [stdout] 47 |             Error::SerdeError(ref error) => error.cause(),
[INFO] [stdout]    |                                                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lsm_tree/compaction/leveled.rs:357:17
[INFO] [stdout]     |
[INFO] [stdout] 357 |             let mut should_merge = |metadata_snapshot: &LeveledMetadata<T, U>, index: usize| {
[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/lsm_tree/compaction/leveled.rs:402:21
[INFO] [stdout]     |
[INFO] [stdout] 402 |                 let mut compaction_iter = LeveledIter::new(
[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/arena.rs:93:21
[INFO] [stdout]    |
[INFO] [stdout] 93 |                 let mut last_chunk = &mut self.chunks[chunk_count - 1];
[INFO] [stdout]    |                     ----^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0505]: cannot move out of `tree` because it is borrowed
[INFO] [stdout]   --> src/radix/node.rs:39:22
[INFO] [stdout]    |
[INFO] [stdout] 36 |           fn get_mut_inner<T>(tree: &mut Tree<T>, byte: u8) -> &mut Tree<T> {
[INFO] [stdout]    |                                     - let's call the lifetime of this reference `'1`
[INFO] [stdout] 37 | /             match tree {
[INFO] [stdout] 38 | |                 Some(ref mut node) if node.key[0] != byte => get_mut_inner(&mut node.next, byte),
[INFO] [stdout]    | |                      ------------ borrow of `tree.0` occurs here
[INFO] [stdout] 39 | |                 _ => tree,
[INFO] [stdout]    | |                      ^^^^ move out of `tree` occurs here
[INFO] [stdout] 40 | |             }
[INFO] [stdout]    | |_____________- returning this value requires that `tree.0` is borrowed for `'1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/radix/tree.rs:18:17
[INFO] [stdout]    |
[INFO] [stdout] 18 |             let mut child = Node::new(key.split_at(split_index).1.to_vec(), Some(value));
[INFO] [stdout]    |                 ----^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `*next_link.next` as mutable more than once at a time
[INFO] [stdout]    --> src/skiplist/list.rs:157:25
[INFO] [stdout]     |
[INFO] [stdout] 155 |                     curr_node = &mut mem::replace(
[INFO] [stdout]     |                                      ------------ first borrow later used by call
[INFO] [stdout] 156 |                         &mut next_link,
[INFO] [stdout]     |                         -------------- first mutable borrow occurs here
[INFO] [stdout] 157 |                         (*next_link.next).get_pointer_mut(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `*next_link.next` as mutable more than once at a time
[INFO] [stdout]    --> src/skiplist/list.rs:210:25
[INFO] [stdout]     |
[INFO] [stdout] 208 |                     curr_node = &mut mem::replace(
[INFO] [stdout]     |                                      ------------ first borrow later used by call
[INFO] [stdout] 209 |                         &mut next_link,
[INFO] [stdout]     |                         -------------- first mutable borrow occurs here
[INFO] [stdout] 210 |                         (*next_link.next).get_pointer_mut(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*next_link.next` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/list.rs:325:25
[INFO] [stdout]     |
[INFO] [stdout] 323 |                     curr_node = &mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 324 |                         &mut next_link,
[INFO] [stdout]     |                         -------------- mutable borrow occurs here
[INFO] [stdout] 325 |                         (*next_link.next).get_pointer(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `*next_link.next` as mutable more than once at a time
[INFO] [stdout]    --> src/skiplist/list.rs:366:25
[INFO] [stdout]     |
[INFO] [stdout] 364 |                     curr_node = &mut mem::replace(
[INFO] [stdout]     |                                      ------------ first borrow later used by call
[INFO] [stdout] 365 |                         &mut next_link,
[INFO] [stdout]     |                         -------------- first mutable borrow occurs here
[INFO] [stdout] 366 |                         (*next_link.next).get_pointer_mut(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*curr_node` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/list.rs:430:21
[INFO] [stdout]     |
[INFO] [stdout] 428 |                 Node::free(mem::replace(
[INFO] [stdout]     |                            ------------ mutable borrow later used by call
[INFO] [stdout] 429 |                     &mut curr_node,
[INFO] [stdout]     |                     -------------- mutable borrow occurs here
[INFO] [stdout] 430 |                     (*curr_node).get_pointer(0).next,
[INFO] [stdout]     |                     ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/list.rs:493:17
[INFO] [stdout]     |
[INFO] [stdout] 491 |             Node::deallocate(mem::replace(
[INFO] [stdout]     |                              ------------ mutable borrow later used by call
[INFO] [stdout] 492 |                 &mut self.head,
[INFO] [stdout]     |                 -------------- mutable borrow occurs here
[INFO] [stdout] 493 |                 (*self.head).get_pointer(0).next,
[INFO] [stdout]     |                 ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/list.rs:498:21
[INFO] [stdout]     |
[INFO] [stdout] 496 |                 Node::free(mem::replace(
[INFO] [stdout]     |                            ------------ mutable borrow later used by call
[INFO] [stdout] 497 |                     &mut self.head,
[INFO] [stdout]     |                     -------------- mutable borrow occurs here
[INFO] [stdout] 498 |                     (*self.head).get_pointer(0).next,
[INFO] [stdout]     |                     ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self.current` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/list.rs:562:21
[INFO] [stdout]     |
[INFO] [stdout] 560 |                 Node::deallocate(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 561 |                     &mut self.current,
[INFO] [stdout]     |                     ----------------- mutable borrow occurs here
[INFO] [stdout] 562 |                     (*self.current).get_pointer(0).next,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self.current` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/list.rs:577:21
[INFO] [stdout]     |
[INFO] [stdout] 575 |                 Node::free(mem::replace(
[INFO] [stdout]     |                            ------------ mutable borrow later used by call
[INFO] [stdout] 576 |                     &mut self.current,
[INFO] [stdout]     |                     ----------------- mutable borrow occurs here
[INFO] [stdout] 577 |                     (*self.current).get_pointer(0).next,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `**self.current` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/list.rs:606:50
[INFO] [stdout]     |
[INFO] [stdout] 606 |                 mem::replace(&mut self.current, &(**self.current).get_pointer(0).next);
[INFO] [stdout]     |                 ------------ -----------------   ^^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                 |            |
[INFO] [stdout]     |                 |            mutable borrow occurs here
[INFO] [stdout]     |                 mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `**self.current` as mutable more than once at a time
[INFO] [stdout]    --> src/skiplist/list.rs:637:26
[INFO] [stdout]     |
[INFO] [stdout] 635 |                 mem::replace(
[INFO] [stdout]     |                 ------------ first borrow later used by call
[INFO] [stdout] 636 |                     &mut self.current,
[INFO] [stdout]     |                     ----------------- first mutable borrow occurs here
[INFO] [stdout] 637 |                     &mut (**self.current).get_pointer_mut(0).next,
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `**next_node` as mutable more than once at a time
[INFO] [stdout]    --> src/skiplist/map.rs:155:25
[INFO] [stdout]     |
[INFO] [stdout] 153 |                     curr_node = mem::replace(
[INFO] [stdout]     |                                 ------------ first borrow later used by call
[INFO] [stdout] 154 |                         &mut next_node,
[INFO] [stdout]     |                         -------------- first mutable borrow occurs here
[INFO] [stdout] 155 |                         (**next_node).get_pointer_mut(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `**next_node` as mutable more than once at a time
[INFO] [stdout]    --> src/skiplist/map.rs:216:25
[INFO] [stdout]     |
[INFO] [stdout] 214 |                     curr_node = mem::replace(
[INFO] [stdout]     |                                 ------------ first borrow later used by call
[INFO] [stdout] 215 |                         &mut next_node,
[INFO] [stdout]     |                         -------------- first mutable borrow occurs here
[INFO] [stdout] 216 |                         (**next_node).get_pointer_mut(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `**next_node` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:288:25
[INFO] [stdout]     |
[INFO] [stdout] 286 |                     curr_node = mem::replace(
[INFO] [stdout]     |                                 ------------ mutable borrow later used by call
[INFO] [stdout] 287 |                         &mut next_node,
[INFO] [stdout]     |                         -------------- mutable borrow occurs here
[INFO] [stdout] 288 |                         (**next_node).get_pointer(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `**next_node` as mutable more than once at a time
[INFO] [stdout]    --> src/skiplist/map.rs:332:25
[INFO] [stdout]     |
[INFO] [stdout] 330 |                     curr_node = mem::replace(
[INFO] [stdout]     |                                 ------------ first borrow later used by call
[INFO] [stdout] 331 |                         &mut next_node,
[INFO] [stdout]     |                         -------------- first mutable borrow occurs here
[INFO] [stdout] 332 |                         (**next_node).get_pointer_mut(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*curr_node` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:394:58
[INFO] [stdout]     |
[INFO] [stdout] 394 |                 Node::free(mem::replace(&mut curr_node, *(*curr_node).get_pointer(0)));
[INFO] [stdout]     |                            ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                            |            |
[INFO] [stdout]     |                            |            mutable borrow occurs here
[INFO] [stdout]     |                            mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `**next_node` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:426:25
[INFO] [stdout]     |
[INFO] [stdout] 424 |                     curr_node = mem::replace(
[INFO] [stdout]     |                                 ------------ mutable borrow later used by call
[INFO] [stdout] 425 |                         &mut next_node,
[INFO] [stdout]     |                         -------------- mutable borrow occurs here
[INFO] [stdout] 426 |                         (**next_node).get_pointer(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `**next_node` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:469:25
[INFO] [stdout]     |
[INFO] [stdout] 467 |                     curr_node = mem::replace(
[INFO] [stdout]     |                                 ------------ mutable borrow later used by call
[INFO] [stdout] 468 |                         &mut next_node,
[INFO] [stdout]     |                         -------------- mutable borrow occurs here
[INFO] [stdout] 469 |                         (**next_node).get_pointer(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `**next_node` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:535:25
[INFO] [stdout]     |
[INFO] [stdout] 533 |                     curr_node = mem::replace(
[INFO] [stdout]     |                                 ------------ mutable borrow later used by call
[INFO] [stdout] 534 |                         &mut next_node,
[INFO] [stdout]     |                         -------------- mutable borrow occurs here
[INFO] [stdout] 535 |                         (**next_node).get_pointer(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:586:59
[INFO] [stdout]     |
[INFO] [stdout] 586 |             let left_head = mem::replace(&mut left.head, *(*left.head).get_pointer(0));
[INFO] [stdout]     |                             ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                             |            |
[INFO] [stdout]     |                             |            mutable borrow occurs here
[INFO] [stdout]     |                             mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:587:61
[INFO] [stdout]     |
[INFO] [stdout] 587 |             let right_head = mem::replace(&mut right.head, *(*right.head).get_pointer(0));
[INFO] [stdout]     |                              ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                              |            |
[INFO] [stdout]     |                              |            mutable borrow occurs here
[INFO] [stdout]     |                              mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:601:38
[INFO] [stdout]     |
[INFO] [stdout] 599 | ...                   Node::free(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 600 | ...                       &mut right.head,
[INFO] [stdout]     |                           --------------- mutable borrow occurs here
[INFO] [stdout] 601 | ...                       *(*right.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:605:94
[INFO] [stdout]     |
[INFO] [stdout] 605 | ...                   cmp::Ordering::Less => next_node = mem::replace(&mut left.head, *(*left.head).get_pointer(0)),
[INFO] [stdout]     |                                                          ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                                          |            |
[INFO] [stdout]     |                                                          |            mutable borrow occurs here
[INFO] [stdout]     |                                                          mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:606:98
[INFO] [stdout]     |
[INFO] [stdout] 606 | ...                   cmp::Ordering::Greater => next_node = mem::replace(&mut right.head, *(*right.head).get_pointer(0)),
[INFO] [stdout]     |                                                             ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                                             |            |
[INFO] [stdout]     |                                                             |            mutable borrow occurs here
[INFO] [stdout]     |                                                             mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:609:81
[INFO] [stdout]     |
[INFO] [stdout] 609 |                     (true, false) => next_node = mem::replace(&mut right.head, *(*right.head).get_pointer(0)),
[INFO] [stdout]     |                                                  ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                                  |            |
[INFO] [stdout]     |                                                  |            mutable borrow occurs here
[INFO] [stdout]     |                                                  mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:610:80
[INFO] [stdout]     |
[INFO] [stdout] 610 |                     (false, true) => next_node = mem::replace(&mut left.head, *(*left.head).get_pointer(0)),
[INFO] [stdout]     |                                                  ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                                  |            |
[INFO] [stdout]     |                                                  |            mutable borrow occurs here
[INFO] [stdout]     |                                                  mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:661:59
[INFO] [stdout]     |
[INFO] [stdout] 661 |             let left_head = mem::replace(&mut left.head, *(*left.head).get_pointer(0));
[INFO] [stdout]     |                             ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                             |            |
[INFO] [stdout]     |                             |            mutable borrow occurs here
[INFO] [stdout]     |                             mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:662:61
[INFO] [stdout]     |
[INFO] [stdout] 662 |             let right_head = mem::replace(&mut right.head, *(*right.head).get_pointer(0));
[INFO] [stdout]     |                              ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                              |            |
[INFO] [stdout]     |                              |            mutable borrow occurs here
[INFO] [stdout]     |                              mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:674:75
[INFO] [stdout]     |
[INFO] [stdout] 674 | ...                   next_node = mem::replace(&mut left.head, *(*left.head).get_pointer(0));
[INFO] [stdout]     |                                   ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                   |            |
[INFO] [stdout]     |                                   |            mutable borrow occurs here
[INFO] [stdout]     |                                   mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:675:75
[INFO] [stdout]     |
[INFO] [stdout] 675 | ...                   Node::free(mem::replace(&mut right.head, *(*right.head).get_pointer(0)));
[INFO] [stdout]     |                                  ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                  |            |
[INFO] [stdout]     |                                  |            mutable borrow occurs here
[INFO] [stdout]     |                                  mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:680:38
[INFO] [stdout]     |
[INFO] [stdout] 678 | ...                   Node::free(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 679 | ...                       &mut left.head,
[INFO] [stdout]     |                           -------------- mutable borrow occurs here
[INFO] [stdout] 680 | ...                       *(*left.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:687:38
[INFO] [stdout]     |
[INFO] [stdout] 685 | ...                   Node::free(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 686 | ...                       &mut right.head,
[INFO] [stdout]     |                           --------------- mutable borrow occurs here
[INFO] [stdout] 687 | ...                       *(*right.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:694:67
[INFO] [stdout]     |
[INFO] [stdout] 694 |                         Node::free(mem::replace(&mut right.head, *(*right.head).get_pointer(0)));
[INFO] [stdout]     |                                    ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                    |            |
[INFO] [stdout]     |                                    |            mutable borrow occurs here
[INFO] [stdout]     |                                    mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:698:66
[INFO] [stdout]     |
[INFO] [stdout] 698 |                         Node::free(mem::replace(&mut left.head, *(*left.head).get_pointer(0)));
[INFO] [stdout]     |                                    ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                    |            |
[INFO] [stdout]     |                                    |            mutable borrow occurs here
[INFO] [stdout]     |                                    mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:730:59
[INFO] [stdout]     |
[INFO] [stdout] 730 |             let left_head = mem::replace(&mut left.head, *(*left.head).get_pointer(0));
[INFO] [stdout]     |                             ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                             |            |
[INFO] [stdout]     |                             |            mutable borrow occurs here
[INFO] [stdout]     |                             mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:731:61
[INFO] [stdout]     |
[INFO] [stdout] 731 |             let right_head = mem::replace(&mut right.head, *(*right.head).get_pointer(0));
[INFO] [stdout]     |                              ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                              |            |
[INFO] [stdout]     |                              |            mutable borrow occurs here
[INFO] [stdout]     |                              mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:745:38
[INFO] [stdout]     |
[INFO] [stdout] 743 | ...                   Node::free(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 744 | ...                       &mut left.head,
[INFO] [stdout]     |                           -------------- mutable borrow occurs here
[INFO] [stdout] 745 | ...                       *(*left.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:749:38
[INFO] [stdout]     |
[INFO] [stdout] 747 | ...                   Node::free(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 748 | ...                       &mut right.head,
[INFO] [stdout]     |                           --------------- mutable borrow occurs here
[INFO] [stdout] 749 | ...                       *(*right.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:753:94
[INFO] [stdout]     |
[INFO] [stdout] 753 | ...                   cmp::Ordering::Less => next_node = mem::replace(&mut left.head, *(*left.head).get_pointer(0)),
[INFO] [stdout]     |                                                          ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                                          |            |
[INFO] [stdout]     |                                                          |            mutable borrow occurs here
[INFO] [stdout]     |                                                          mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:758:42
[INFO] [stdout]     |
[INFO] [stdout] 756 | ...                   next_node = mem::replace(
[INFO] [stdout]     |                                   ------------ mutable borrow later used by call
[INFO] [stdout] 757 | ...                       &mut right.head,
[INFO] [stdout]     |                           --------------- mutable borrow occurs here
[INFO] [stdout] 758 | ...                       *(*right.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:763:42
[INFO] [stdout]     |
[INFO] [stdout] 761 | ...                   Node::free(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 762 | ...                       &mut right.head,
[INFO] [stdout]     |                           --------------- mutable borrow occurs here
[INFO] [stdout] 763 | ...                       *(*right.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:774:34
[INFO] [stdout]     |
[INFO] [stdout] 772 | ...                   next_node = mem::replace(
[INFO] [stdout]     |                                   ------------ mutable borrow later used by call
[INFO] [stdout] 773 | ...                       &mut right.head,
[INFO] [stdout]     |                           --------------- mutable borrow occurs here
[INFO] [stdout] 774 | ...                       *(*right.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:779:34
[INFO] [stdout]     |
[INFO] [stdout] 777 | ...                   Node::free(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 778 | ...                       &mut right.head,
[INFO] [stdout]     |                           --------------- mutable borrow occurs here
[INFO] [stdout] 779 | ...                       *(*right.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:787:30
[INFO] [stdout]     |
[INFO] [stdout] 785 |                         next_node = mem::replace(
[INFO] [stdout]     |                                     ------------ mutable borrow later used by call
[INFO] [stdout] 786 |                             &mut right.head,
[INFO] [stdout]     |                             --------------- mutable borrow occurs here
[INFO] [stdout] 787 |                             *(*right.head).get_pointer(0),
[INFO] [stdout]     |                              ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:920:60
[INFO] [stdout]     |
[INFO] [stdout] 920 |             Node::deallocate(mem::replace(&mut self.head, *(*self.head).get_pointer(0)));
[INFO] [stdout]     |                              ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                              |            |
[INFO] [stdout]     |                              |            mutable borrow occurs here
[INFO] [stdout]     |                              mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:922:58
[INFO] [stdout]     |
[INFO] [stdout] 922 |                 Node::free(mem::replace(&mut self.head, *(*self.head).get_pointer(0)));
[INFO] [stdout]     |                            ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                            |            |
[INFO] [stdout]     |                            |            mutable borrow occurs here
[INFO] [stdout]     |                            mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self.current` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:987:22
[INFO] [stdout]     |
[INFO] [stdout] 985 |                 Node::deallocate(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 986 |                     &mut self.current,
[INFO] [stdout]     |                     ----------------- mutable borrow occurs here
[INFO] [stdout] 987 |                     *(*self.current).get_pointer(0),
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self.current` as immutable because it is also borrowed as mutable
[INFO] [stdout]     --> src/skiplist/map.rs:1002:22
[INFO] [stdout]      |
[INFO] [stdout] 1000 |                 Node::free(mem::replace(
[INFO] [stdout]      |                            ------------ mutable borrow later used by call
[INFO] [stdout] 1001 |                     &mut self.current,
[INFO] [stdout]      |                     ----------------- mutable borrow occurs here
[INFO] [stdout] 1002 |                     *(*self.current).get_pointer(0),
[INFO] [stdout]      |                      ^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `**self.current` as immutable because it is also borrowed as mutable
[INFO] [stdout]     --> src/skiplist/map.rs:1034:51
[INFO] [stdout]      |
[INFO] [stdout] 1034 |                 mem::replace(&mut self.current, &*(**self.current).get_pointer(0));
[INFO] [stdout]      |                 ------------ -----------------    ^^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]      |                 |            |
[INFO] [stdout]      |                 |            mutable borrow occurs here
[INFO] [stdout]      |                 mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `**self.current` as mutable more than once at a time
[INFO] [stdout]     --> src/skiplist/map.rs:1065:55
[INFO] [stdout]      |
[INFO] [stdout] 1065 |                 mem::replace(&mut self.current, &mut *(**self.current).get_pointer_mut(0));
[INFO] [stdout]      |                 ------------ -----------------        ^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout]      |                 |            |
[INFO] [stdout]      |                 |            first mutable borrow occurs here
[INFO] [stdout]      |                 first borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/treap/implicit_tree.rs:33:21
[INFO] [stdout]    |
[INFO] [stdout] 33 |                 let mut res = split(&mut node.left, index, left_inclusive);
[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/bp_tree/map.rs:399:30
[INFO] [stdout]     |
[INFO] [stdout] 399 |                         let (mut removed_key, removed_pointer) = sibling_internal_node.remove_at(0, false);
[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/bp_tree/map.rs:410:30
[INFO] [stdout]     |
[INFO] [stdout] 410 |                         let (mut removed_key, removed_pointer) = sibling_internal_node.remove_at(remove_index, true);
[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/treap/tree.rs:35:17
[INFO] [stdout]    |
[INFO] [stdout] 35 |             let mut ret;
[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/treap/tree.rs:38:25
[INFO] [stdout]    |
[INFO] [stdout] 38 |                     let mut res = split(&mut node.left, key);
[INFO] [stdout]    |                         ----^^^
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 51 previous errors; 26 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0499, E0502, E0505.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0499`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `extended-collections` (lib) due to 52 previous errors; 26 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/lsm_tree/compaction/leveled.rs:357:17
[INFO] [stdout]     |
[INFO] [stdout] 357 |             let mut should_merge = |metadata_snapshot: &LeveledMetadata<T, U>, index: usize| {
[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/lsm_tree/compaction/leveled.rs:402:21
[INFO] [stdout]     |
[INFO] [stdout] 402 |                 let mut compaction_iter = LeveledIter::new(
[INFO] [stdout]     |                     ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0505]: cannot move out of `tree` because it is borrowed
[INFO] [stdout]   --> src/radix/node.rs:39:22
[INFO] [stdout]    |
[INFO] [stdout] 36 |           fn get_mut_inner<T>(tree: &mut Tree<T>, byte: u8) -> &mut Tree<T> {
[INFO] [stdout]    |                                     - let's call the lifetime of this reference `'1`
[INFO] [stdout] 37 | /             match tree {
[INFO] [stdout] 38 | |                 Some(ref mut node) if node.key[0] != byte => get_mut_inner(&mut node.next, byte),
[INFO] [stdout]    | |                      ------------ borrow of `tree.0` occurs here
[INFO] [stdout] 39 | |                 _ => tree,
[INFO] [stdout]    | |                      ^^^^ move out of `tree` occurs here
[INFO] [stdout] 40 | |             }
[INFO] [stdout]    | |_____________- returning this value requires that `tree.0` is borrowed for `'1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/radix/tree.rs:18:17
[INFO] [stdout]    |
[INFO] [stdout] 18 |             let mut child = Node::new(key.split_at(split_index).1.to_vec(), Some(value));
[INFO] [stdout]    |                 ----^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `*next_link.next` as mutable more than once at a time
[INFO] [stdout]    --> src/skiplist/list.rs:157:25
[INFO] [stdout]     |
[INFO] [stdout] 155 |                     curr_node = &mut mem::replace(
[INFO] [stdout]     |                                      ------------ first borrow later used by call
[INFO] [stdout] 156 |                         &mut next_link,
[INFO] [stdout]     |                         -------------- first mutable borrow occurs here
[INFO] [stdout] 157 |                         (*next_link.next).get_pointer_mut(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `*next_link.next` as mutable more than once at a time
[INFO] [stdout]    --> src/skiplist/list.rs:210:25
[INFO] [stdout]     |
[INFO] [stdout] 208 |                     curr_node = &mut mem::replace(
[INFO] [stdout]     |                                      ------------ first borrow later used by call
[INFO] [stdout] 209 |                         &mut next_link,
[INFO] [stdout]     |                         -------------- first mutable borrow occurs here
[INFO] [stdout] 210 |                         (*next_link.next).get_pointer_mut(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*next_link.next` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/list.rs:325:25
[INFO] [stdout]     |
[INFO] [stdout] 323 |                     curr_node = &mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 324 |                         &mut next_link,
[INFO] [stdout]     |                         -------------- mutable borrow occurs here
[INFO] [stdout] 325 |                         (*next_link.next).get_pointer(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `*next_link.next` as mutable more than once at a time
[INFO] [stdout]    --> src/skiplist/list.rs:366:25
[INFO] [stdout]     |
[INFO] [stdout] 364 |                     curr_node = &mut mem::replace(
[INFO] [stdout]     |                                      ------------ first borrow later used by call
[INFO] [stdout] 365 |                         &mut next_link,
[INFO] [stdout]     |                         -------------- first mutable borrow occurs here
[INFO] [stdout] 366 |                         (*next_link.next).get_pointer_mut(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*curr_node` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/list.rs:430:21
[INFO] [stdout]     |
[INFO] [stdout] 428 |                 Node::free(mem::replace(
[INFO] [stdout]     |                            ------------ mutable borrow later used by call
[INFO] [stdout] 429 |                     &mut curr_node,
[INFO] [stdout]     |                     -------------- mutable borrow occurs here
[INFO] [stdout] 430 |                     (*curr_node).get_pointer(0).next,
[INFO] [stdout]     |                     ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/list.rs:493:17
[INFO] [stdout]     |
[INFO] [stdout] 491 |             Node::deallocate(mem::replace(
[INFO] [stdout]     |                              ------------ mutable borrow later used by call
[INFO] [stdout] 492 |                 &mut self.head,
[INFO] [stdout]     |                 -------------- mutable borrow occurs here
[INFO] [stdout] 493 |                 (*self.head).get_pointer(0).next,
[INFO] [stdout]     |                 ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/list.rs:498:21
[INFO] [stdout]     |
[INFO] [stdout] 496 |                 Node::free(mem::replace(
[INFO] [stdout]     |                            ------------ mutable borrow later used by call
[INFO] [stdout] 497 |                     &mut self.head,
[INFO] [stdout]     |                     -------------- mutable borrow occurs here
[INFO] [stdout] 498 |                     (*self.head).get_pointer(0).next,
[INFO] [stdout]     |                     ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self.current` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/list.rs:562:21
[INFO] [stdout]     |
[INFO] [stdout] 560 |                 Node::deallocate(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 561 |                     &mut self.current,
[INFO] [stdout]     |                     ----------------- mutable borrow occurs here
[INFO] [stdout] 562 |                     (*self.current).get_pointer(0).next,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self.current` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/list.rs:577:21
[INFO] [stdout]     |
[INFO] [stdout] 575 |                 Node::free(mem::replace(
[INFO] [stdout]     |                            ------------ mutable borrow later used by call
[INFO] [stdout] 576 |                     &mut self.current,
[INFO] [stdout]     |                     ----------------- mutable borrow occurs here
[INFO] [stdout] 577 |                     (*self.current).get_pointer(0).next,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `**self.current` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/list.rs:606:50
[INFO] [stdout]     |
[INFO] [stdout] 606 |                 mem::replace(&mut self.current, &(**self.current).get_pointer(0).next);
[INFO] [stdout]     |                 ------------ -----------------   ^^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                 |            |
[INFO] [stdout]     |                 |            mutable borrow occurs here
[INFO] [stdout]     |                 mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `**self.current` as mutable more than once at a time
[INFO] [stdout]    --> src/skiplist/list.rs:637:26
[INFO] [stdout]     |
[INFO] [stdout] 635 |                 mem::replace(
[INFO] [stdout]     |                 ------------ first borrow later used by call
[INFO] [stdout] 636 |                     &mut self.current,
[INFO] [stdout]     |                     ----------------- first mutable borrow occurs here
[INFO] [stdout] 637 |                     &mut (**self.current).get_pointer_mut(0).next,
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `*next_link.next` as mutable more than once at a time
[INFO] [stdout]    --> src/skiplist/list.rs:714:21
[INFO] [stdout]     |
[INFO] [stdout] 712 |                 curr_node = &mut mem::replace(
[INFO] [stdout]     |                                  ------------ first borrow later used by call
[INFO] [stdout] 713 |                     &mut next_link,
[INFO] [stdout]     |                     -------------- first mutable borrow occurs here
[INFO] [stdout] 714 |                     (*next_link.next).get_pointer_mut(0),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `*next_link.next` as mutable more than once at a time
[INFO] [stdout]    --> src/skiplist/list.rs:726:25
[INFO] [stdout]     |
[INFO] [stdout] 724 |                     curr_node = &mut mem::replace(
[INFO] [stdout]     |                                      ------------ first borrow later used by call
[INFO] [stdout] 725 |                         &mut next_link,
[INFO] [stdout]     |                         -------------- first mutable borrow occurs here
[INFO] [stdout] 726 |                         (*next_link.next).get_pointer_mut(0),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `**next_node` as mutable more than once at a time
[INFO] [stdout]    --> src/skiplist/map.rs:155:25
[INFO] [stdout]     |
[INFO] [stdout] 153 |                     curr_node = mem::replace(
[INFO] [stdout]     |                                 ------------ first borrow later used by call
[INFO] [stdout] 154 |                         &mut next_node,
[INFO] [stdout]     |                         -------------- first mutable borrow occurs here
[INFO] [stdout] 155 |                         (**next_node).get_pointer_mut(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `**next_node` as mutable more than once at a time
[INFO] [stdout]    --> src/skiplist/map.rs:216:25
[INFO] [stdout]     |
[INFO] [stdout] 214 |                     curr_node = mem::replace(
[INFO] [stdout]     |                                 ------------ first borrow later used by call
[INFO] [stdout] 215 |                         &mut next_node,
[INFO] [stdout]     |                         -------------- first mutable borrow occurs here
[INFO] [stdout] 216 |                         (**next_node).get_pointer_mut(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `**next_node` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:288:25
[INFO] [stdout]     |
[INFO] [stdout] 286 |                     curr_node = mem::replace(
[INFO] [stdout]     |                                 ------------ mutable borrow later used by call
[INFO] [stdout] 287 |                         &mut next_node,
[INFO] [stdout]     |                         -------------- mutable borrow occurs here
[INFO] [stdout] 288 |                         (**next_node).get_pointer(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `**next_node` as mutable more than once at a time
[INFO] [stdout]    --> src/skiplist/map.rs:332:25
[INFO] [stdout]     |
[INFO] [stdout] 330 |                     curr_node = mem::replace(
[INFO] [stdout]     |                                 ------------ first borrow later used by call
[INFO] [stdout] 331 |                         &mut next_node,
[INFO] [stdout]     |                         -------------- first mutable borrow occurs here
[INFO] [stdout] 332 |                         (**next_node).get_pointer_mut(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*curr_node` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:394:58
[INFO] [stdout]     |
[INFO] [stdout] 394 |                 Node::free(mem::replace(&mut curr_node, *(*curr_node).get_pointer(0)));
[INFO] [stdout]     |                            ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                            |            |
[INFO] [stdout]     |                            |            mutable borrow occurs here
[INFO] [stdout]     |                            mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `**next_node` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:426:25
[INFO] [stdout]     |
[INFO] [stdout] 424 |                     curr_node = mem::replace(
[INFO] [stdout]     |                                 ------------ mutable borrow later used by call
[INFO] [stdout] 425 |                         &mut next_node,
[INFO] [stdout]     |                         -------------- mutable borrow occurs here
[INFO] [stdout] 426 |                         (**next_node).get_pointer(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `**next_node` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:469:25
[INFO] [stdout]     |
[INFO] [stdout] 467 |                     curr_node = mem::replace(
[INFO] [stdout]     |                                 ------------ mutable borrow later used by call
[INFO] [stdout] 468 |                         &mut next_node,
[INFO] [stdout]     |                         -------------- mutable borrow occurs here
[INFO] [stdout] 469 |                         (**next_node).get_pointer(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `**next_node` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:535:25
[INFO] [stdout]     |
[INFO] [stdout] 533 |                     curr_node = mem::replace(
[INFO] [stdout]     |                                 ------------ mutable borrow later used by call
[INFO] [stdout] 534 |                         &mut next_node,
[INFO] [stdout]     |                         -------------- mutable borrow occurs here
[INFO] [stdout] 535 |                         (**next_node).get_pointer(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:586:59
[INFO] [stdout]     |
[INFO] [stdout] 586 |             let left_head = mem::replace(&mut left.head, *(*left.head).get_pointer(0));
[INFO] [stdout]     |                             ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                             |            |
[INFO] [stdout]     |                             |            mutable borrow occurs here
[INFO] [stdout]     |                             mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:587:61
[INFO] [stdout]     |
[INFO] [stdout] 587 |             let right_head = mem::replace(&mut right.head, *(*right.head).get_pointer(0));
[INFO] [stdout]     |                              ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                              |            |
[INFO] [stdout]     |                              |            mutable borrow occurs here
[INFO] [stdout]     |                              mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:601:38
[INFO] [stdout]     |
[INFO] [stdout] 599 | ...                   Node::free(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 600 | ...                       &mut right.head,
[INFO] [stdout]     |                           --------------- mutable borrow occurs here
[INFO] [stdout] 601 | ...                       *(*right.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:605:94
[INFO] [stdout]     |
[INFO] [stdout] 605 | ...                   cmp::Ordering::Less => next_node = mem::replace(&mut left.head, *(*left.head).get_pointer(0)),
[INFO] [stdout]     |                                                          ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                                          |            |
[INFO] [stdout]     |                                                          |            mutable borrow occurs here
[INFO] [stdout]     |                                                          mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:606:98
[INFO] [stdout]     |
[INFO] [stdout] 606 | ...                   cmp::Ordering::Greater => next_node = mem::replace(&mut right.head, *(*right.head).get_pointer(0)),
[INFO] [stdout]     |                                                             ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                                             |            |
[INFO] [stdout]     |                                                             |            mutable borrow occurs here
[INFO] [stdout]     |                                                             mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:609:81
[INFO] [stdout]     |
[INFO] [stdout] 609 |                     (true, false) => next_node = mem::replace(&mut right.head, *(*right.head).get_pointer(0)),
[INFO] [stdout]     |                                                  ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                                  |            |
[INFO] [stdout]     |                                                  |            mutable borrow occurs here
[INFO] [stdout]     |                                                  mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:610:80
[INFO] [stdout]     |
[INFO] [stdout] 610 |                     (false, true) => next_node = mem::replace(&mut left.head, *(*left.head).get_pointer(0)),
[INFO] [stdout]     |                                                  ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                                  |            |
[INFO] [stdout]     |                                                  |            mutable borrow occurs here
[INFO] [stdout]     |                                                  mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:661:59
[INFO] [stdout]     |
[INFO] [stdout] 661 |             let left_head = mem::replace(&mut left.head, *(*left.head).get_pointer(0));
[INFO] [stdout]     |                             ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                             |            |
[INFO] [stdout]     |                             |            mutable borrow occurs here
[INFO] [stdout]     |                             mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:662:61
[INFO] [stdout]     |
[INFO] [stdout] 662 |             let right_head = mem::replace(&mut right.head, *(*right.head).get_pointer(0));
[INFO] [stdout]     |                              ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                              |            |
[INFO] [stdout]     |                              |            mutable borrow occurs here
[INFO] [stdout]     |                              mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:674:75
[INFO] [stdout]     |
[INFO] [stdout] 674 | ...                   next_node = mem::replace(&mut left.head, *(*left.head).get_pointer(0));
[INFO] [stdout]     |                                   ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                   |            |
[INFO] [stdout]     |                                   |            mutable borrow occurs here
[INFO] [stdout]     |                                   mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:675:75
[INFO] [stdout]     |
[INFO] [stdout] 675 | ...                   Node::free(mem::replace(&mut right.head, *(*right.head).get_pointer(0)));
[INFO] [stdout]     |                                  ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                  |            |
[INFO] [stdout]     |                                  |            mutable borrow occurs here
[INFO] [stdout]     |                                  mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:680:38
[INFO] [stdout]     |
[INFO] [stdout] 678 | ...                   Node::free(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 679 | ...                       &mut left.head,
[INFO] [stdout]     |                           -------------- mutable borrow occurs here
[INFO] [stdout] 680 | ...                       *(*left.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:687:38
[INFO] [stdout]     |
[INFO] [stdout] 685 | ...                   Node::free(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 686 | ...                       &mut right.head,
[INFO] [stdout]     |                           --------------- mutable borrow occurs here
[INFO] [stdout] 687 | ...                       *(*right.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:694:67
[INFO] [stdout]     |
[INFO] [stdout] 694 |                         Node::free(mem::replace(&mut right.head, *(*right.head).get_pointer(0)));
[INFO] [stdout]     |                                    ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                    |            |
[INFO] [stdout]     |                                    |            mutable borrow occurs here
[INFO] [stdout]     |                                    mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:698:66
[INFO] [stdout]     |
[INFO] [stdout] 698 |                         Node::free(mem::replace(&mut left.head, *(*left.head).get_pointer(0)));
[INFO] [stdout]     |                                    ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                    |            |
[INFO] [stdout]     |                                    |            mutable borrow occurs here
[INFO] [stdout]     |                                    mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:730:59
[INFO] [stdout]     |
[INFO] [stdout] 730 |             let left_head = mem::replace(&mut left.head, *(*left.head).get_pointer(0));
[INFO] [stdout]     |                             ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                             |            |
[INFO] [stdout]     |                             |            mutable borrow occurs here
[INFO] [stdout]     |                             mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:731:61
[INFO] [stdout]     |
[INFO] [stdout] 731 |             let right_head = mem::replace(&mut right.head, *(*right.head).get_pointer(0));
[INFO] [stdout]     |                              ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                              |            |
[INFO] [stdout]     |                              |            mutable borrow occurs here
[INFO] [stdout]     |                              mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:745:38
[INFO] [stdout]     |
[INFO] [stdout] 743 | ...                   Node::free(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 744 | ...                       &mut left.head,
[INFO] [stdout]     |                           -------------- mutable borrow occurs here
[INFO] [stdout] 745 | ...                       *(*left.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:749:38
[INFO] [stdout]     |
[INFO] [stdout] 747 | ...                   Node::free(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 748 | ...                       &mut right.head,
[INFO] [stdout]     |                           --------------- mutable borrow occurs here
[INFO] [stdout] 749 | ...                       *(*right.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:753:94
[INFO] [stdout]     |
[INFO] [stdout] 753 | ...                   cmp::Ordering::Less => next_node = mem::replace(&mut left.head, *(*left.head).get_pointer(0)),
[INFO] [stdout]     |                                                          ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                                          |            |
[INFO] [stdout]     |                                                          |            mutable borrow occurs here
[INFO] [stdout]     |                                                          mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:758:42
[INFO] [stdout]     |
[INFO] [stdout] 756 | ...                   next_node = mem::replace(
[INFO] [stdout]     |                                   ------------ mutable borrow later used by call
[INFO] [stdout] 757 | ...                       &mut right.head,
[INFO] [stdout]     |                           --------------- mutable borrow occurs here
[INFO] [stdout] 758 | ...                       *(*right.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:763:42
[INFO] [stdout]     |
[INFO] [stdout] 761 | ...                   Node::free(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 762 | ...                       &mut right.head,
[INFO] [stdout]     |                           --------------- mutable borrow occurs here
[INFO] [stdout] 763 | ...                       *(*right.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:774:34
[INFO] [stdout]     |
[INFO] [stdout] 772 | ...                   next_node = mem::replace(
[INFO] [stdout]     |                                   ------------ mutable borrow later used by call
[INFO] [stdout] 773 | ...                       &mut right.head,
[INFO] [stdout]     |                           --------------- mutable borrow occurs here
[INFO] [stdout] 774 | ...                       *(*right.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:779:34
[INFO] [stdout]     |
[INFO] [stdout] 777 | ...                   Node::free(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 778 | ...                       &mut right.head,
[INFO] [stdout]     |                           --------------- mutable borrow occurs here
[INFO] [stdout] 779 | ...                       *(*right.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:787:30
[INFO] [stdout]     |
[INFO] [stdout] 785 |                         next_node = mem::replace(
[INFO] [stdout]     |                                     ------------ mutable borrow later used by call
[INFO] [stdout] 786 |                             &mut right.head,
[INFO] [stdout]     |                             --------------- mutable borrow occurs here
[INFO] [stdout] 787 |                             *(*right.head).get_pointer(0),
[INFO] [stdout]     |                              ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:920:60
[INFO] [stdout]     |
[INFO] [stdout] 920 |             Node::deallocate(mem::replace(&mut self.head, *(*self.head).get_pointer(0)));
[INFO] [stdout]     |                              ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                              |            |
[INFO] [stdout]     |                              |            mutable borrow occurs here
[INFO] [stdout]     |                              mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:922:58
[INFO] [stdout]     |
[INFO] [stdout] 922 |                 Node::free(mem::replace(&mut self.head, *(*self.head).get_pointer(0)));
[INFO] [stdout]     |                            ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                            |            |
[INFO] [stdout]     |                            |            mutable borrow occurs here
[INFO] [stdout]     |                            mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self.current` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:987:22
[INFO] [stdout]     |
[INFO] [stdout] 985 |                 Node::deallocate(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 986 |                     &mut self.current,
[INFO] [stdout]     |                     ----------------- mutable borrow occurs here
[INFO] [stdout] 987 |                     *(*self.current).get_pointer(0),
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self.current` as immutable because it is also borrowed as mutable
[INFO] [stdout]     --> src/skiplist/map.rs:1002:22
[INFO] [stdout]      |
[INFO] [stdout] 1000 |                 Node::free(mem::replace(
[INFO] [stdout]      |                            ------------ mutable borrow later used by call
[INFO] [stdout] 1001 |                     &mut self.current,
[INFO] [stdout]      |                     ----------------- mutable borrow occurs here
[INFO] [stdout] 1002 |                     *(*self.current).get_pointer(0),
[INFO] [stdout]      |                      ^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `**self.current` as immutable because it is also borrowed as mutable
[INFO] [stdout]     --> src/skiplist/map.rs:1034:51
[INFO] [stdout]      |
[INFO] [stdout] 1034 |                 mem::replace(&mut self.current, &*(**self.current).get_pointer(0));
[INFO] [stdout]      |                 ------------ -----------------    ^^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]      |                 |            |
[INFO] [stdout]      |                 |            mutable borrow occurs here
[INFO] [stdout]      |                 mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `**self.current` as mutable more than once at a time
[INFO] [stdout]     --> src/skiplist/map.rs:1065:55
[INFO] [stdout]      |
[INFO] [stdout] 1065 |                 mem::replace(&mut self.current, &mut *(**self.current).get_pointer_mut(0));
[INFO] [stdout]      |                 ------------ -----------------        ^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout]      |                 |            |
[INFO] [stdout]      |                 |            first mutable borrow occurs here
[INFO] [stdout]      |                 first borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/treap/implicit_tree.rs:33:21
[INFO] [stdout]    |
[INFO] [stdout] 33 |                 let mut res = split(&mut node.left, index, left_inclusive);
[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/treap/tree.rs:35:17
[INFO] [stdout]    |
[INFO] [stdout] 35 |             let mut ret;
[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/treap/tree.rs:38:25
[INFO] [stdout]    |
[INFO] [stdout] 38 |                     let mut res = split(&mut node.left, key);
[INFO] [stdout]    |                         ----^^^
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 53 previous errors; 26 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0499, E0502, E0505.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0499`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `extended-collections` (lib test) due to 54 previous errors; 26 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "1a67eb5a1117ee727a0afd8f9ddeb030478d44b6cd5a760881456bcc28c46e75", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1a67eb5a1117ee727a0afd8f9ddeb030478d44b6cd5a760881456bcc28c46e75", kill_on_drop: false }`
[INFO] [stdout] 1a67eb5a1117ee727a0afd8f9ddeb030478d44b6cd5a760881456bcc28c46e75
[INFO] checking extended-collections-0.5.0 against try#72eda894eb3548c7ba774079ce0afab42958d4ee for pr-121848-1
[INFO] extracting crate extended-collections 0.5.0 into /workspace/builds/worker-0-tc2/source
[INFO] validating manifest of crates.io crate extended-collections 0.5.0 on toolchain 72eda894eb3548c7ba774079ce0afab42958d4ee
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+72eda894eb3548c7ba774079ce0afab42958d4ee" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate extended-collections 0.5.0
[INFO] finished tweaking crates.io crate extended-collections 0.5.0
[INFO] tweaked toml for crates.io crate extended-collections 0.5.0 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+72eda894eb3548c7ba774079ce0afab42958d4ee" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+72eda894eb3548c7ba774079ce0afab42958d4ee" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+72eda894eb3548c7ba774079ce0afab42958d4ee" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 7c5c677af4e9cc2cf73b5becdc4d1d170b2de34005ed6ae6af7a1243885a4198
[INFO] running `Command { std: "docker" "start" "-a" "7c5c677af4e9cc2cf73b5becdc4d1d170b2de34005ed6ae6af7a1243885a4198", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7c5c677af4e9cc2cf73b5becdc4d1d170b2de34005ed6ae6af7a1243885a4198", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7c5c677af4e9cc2cf73b5becdc4d1d170b2de34005ed6ae6af7a1243885a4198", kill_on_drop: false }`
[INFO] [stdout] 7c5c677af4e9cc2cf73b5becdc4d1d170b2de34005ed6ae6af7a1243885a4198
[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" "-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+72eda894eb3548c7ba774079ce0afab42958d4ee" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4140bd3e4c1110175e5ba1026c5a87a31ad14b4446109d9e32b2bf0bb7ee76f6
[INFO] running `Command { std: "docker" "start" "-a" "4140bd3e4c1110175e5ba1026c5a87a31ad14b4446109d9e32b2bf0bb7ee76f6", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.197
[INFO] [stderr]    Compiling arrayvec v0.4.12
[INFO] [stderr]     Checking cfg-if v0.1.10
[INFO] [stderr]     Checking nodrop v0.1.14
[INFO] [stderr]     Checking siphasher v0.2.3
[INFO] [stderr]     Checking lazy_static v0.2.11
[INFO] [stderr]     Checking memoffset v0.1.0
[INFO] [stderr]     Checking scopeguard v0.3.3
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking crossbeam-utils v0.2.2
[INFO] [stderr]     Checking crossbeam-epoch v0.2.0
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking serde_test v1.0.176
[INFO] [stderr]     Checking probabilistic-collections v0.3.0
[INFO] [stderr]     Checking extended-collections v0.5.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: the item `Vec` is imported redundantly
[INFO] [stdout]  --> src/arena.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::vec::Vec;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]  --> /rustc/72eda894eb3548c7ba774079ce0afab42958d4ee/library/std/src/prelude/mod.rs:105:13
[INFO] [stdout]   |
[INFO] [stdout]   = note: the item `Vec` is already defined here
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/bp_tree/node.rs:112:42
[INFO] [stdout]     |
[INFO] [stdout] 112 |                 &mut split_node.pointers[(1 - offset)],
[INFO] [stdout]     |                                          ^          ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 112 -                 &mut split_node.pointers[(1 - offset)],
[INFO] [stdout] 112 +                 &mut split_node.pointers[1 - offset],
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `bincode` is imported redundantly
[INFO] [stdout]   --> src/bp_tree/pager.rs:1:15
[INFO] [stdout]    |
[INFO] [stdout] 1  | use bincode::{self, deserialize, serialize, serialized_size};
[INFO] [stdout]    |               ^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/lib.rs:31:1
[INFO] [stdout]    |
[INFO] [stdout] 31 | extern crate bincode;
[INFO] [stdout]    | --------------------- the item `bincode` is already imported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Send` is imported redundantly
[INFO] [stdout]   --> src/lsm_tree/compaction/size_tiered.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::marker::Send;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   --> /rustc/72eda894eb3548c7ba774079ce0afab42958d4ee/library/std/src/prelude/mod.rs:105:13
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item `Send` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `bincode` is imported redundantly
[INFO] [stdout]   --> src/lsm_tree/mod.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout] 8  | use bincode;
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/lib.rs:31:1
[INFO] [stdout]    |
[INFO] [stdout] 31 | extern crate bincode;
[INFO] [stdout]    | --------------------- the item `bincode` is already imported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `epoch` is imported redundantly
[INFO] [stdout]   --> src/sync/stack.rs:1:13
[INFO] [stdout]    |
[INFO] [stdout] 1  | use epoch::{self, Atomic, Owned};
[INFO] [stdout]    |             ^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/lib.rs:33:1
[INFO] [stdout]    |
[INFO] [stdout] 33 | extern crate crossbeam_epoch as epoch;
[INFO] [stdout]    | -------------------------------------- the item `epoch` is already imported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Vec` is imported redundantly
[INFO] [stdout]  --> src/arena.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::vec::Vec;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]  --> /rustc/72eda894eb3548c7ba774079ce0afab42958d4ee/library/std/src/prelude/mod.rs:105:13
[INFO] [stdout]   |
[INFO] [stdout]   = note: the item `Vec` is already defined here
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/bp_tree/node.rs:112:42
[INFO] [stdout]     |
[INFO] [stdout] 112 |                 &mut split_node.pointers[(1 - offset)],
[INFO] [stdout]     |                                          ^          ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 112 -                 &mut split_node.pointers[(1 - offset)],
[INFO] [stdout] 112 +                 &mut split_node.pointers[1 - offset],
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `bincode` is imported redundantly
[INFO] [stdout]   --> src/bp_tree/pager.rs:1:15
[INFO] [stdout]    |
[INFO] [stdout] 1  | use bincode::{self, deserialize, serialize, serialized_size};
[INFO] [stdout]    |               ^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/lib.rs:31:1
[INFO] [stdout]    |
[INFO] [stdout] 31 | extern crate bincode;
[INFO] [stdout]    | --------------------- the item `bincode` is already imported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Send` is imported redundantly
[INFO] [stdout]   --> src/lsm_tree/compaction/size_tiered.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::marker::Send;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   --> /rustc/72eda894eb3548c7ba774079ce0afab42958d4ee/library/std/src/prelude/mod.rs:105:13
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item `Send` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `bincode` is imported redundantly
[INFO] [stdout]   --> src/lsm_tree/mod.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout] 8  | use bincode;
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/lib.rs:31:1
[INFO] [stdout]    |
[INFO] [stdout] 31 | extern crate bincode;
[INFO] [stdout]    | --------------------- the item `bincode` is already imported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `epoch` is imported redundantly
[INFO] [stdout]   --> src/sync/stack.rs:1:13
[INFO] [stdout]    |
[INFO] [stdout] 1  | use epoch::{self, Atomic, Owned};
[INFO] [stdout]    |             ^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/lib.rs:33:1
[INFO] [stdout]    |
[INFO] [stdout] 33 | extern crate crossbeam_epoch as epoch;
[INFO] [stdout]    | -------------------------------------- the item `epoch` is already imported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lsm_tree/compaction/mod.rs:15:33
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub type CompactionIter<T, U> = Iterator<Item = Result<(T, U)>>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub type CompactionIter<T, U> = dyn Iterator<Item = Result<(T, U)>>;
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bp_tree/pager.rs:44:32
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn cause(&self) -> Option<&error::Error> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lsm_tree/mod.rs:44:32
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn cause(&self) -> Option<&error::Error> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lsm_tree/compaction/mod.rs:15:33
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub type CompactionIter<T, U> = Iterator<Item = Result<(T, U)>>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub type CompactionIter<T, U> = dyn Iterator<Item = Result<(T, U)>>;
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bp_tree/pager.rs:44:32
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn cause(&self) -> Option<&error::Error> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lsm_tree/mod.rs:44:32
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn cause(&self) -> Option<&error::Error> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bp_tree/pager.rs:39:48
[INFO] [stdout]    |
[INFO] [stdout] 39 |             Error::IOError(ref error) => error.description(),
[INFO] [stdout]    |                                                ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bp_tree/pager.rs:40:51
[INFO] [stdout]    |
[INFO] [stdout] 40 |             Error::SerdeError(ref error) => error.description(),
[INFO] [stdout]    |                                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/bp_tree/pager.rs:46:48
[INFO] [stdout]    |
[INFO] [stdout] 46 |             Error::IOError(ref error) => error.cause(),
[INFO] [stdout]    |                                                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/bp_tree/pager.rs:47:51
[INFO] [stdout]    |
[INFO] [stdout] 47 |             Error::SerdeError(ref error) => error.cause(),
[INFO] [stdout]    |                                                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/lsm_tree/mod.rs:39:48
[INFO] [stdout]    |
[INFO] [stdout] 39 |             Error::IOError(ref error) => error.description(),
[INFO] [stdout]    |                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/lsm_tree/mod.rs:40:51
[INFO] [stdout]    |
[INFO] [stdout] 40 |             Error::SerdeError(ref error) => error.description(),
[INFO] [stdout]    |                                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/lsm_tree/mod.rs:46:48
[INFO] [stdout]    |
[INFO] [stdout] 46 |             Error::IOError(ref error) => error.cause(),
[INFO] [stdout]    |                                                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/lsm_tree/mod.rs:47:51
[INFO] [stdout]    |
[INFO] [stdout] 47 |             Error::SerdeError(ref error) => error.cause(),
[INFO] [stdout]    |                                                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bp_tree/pager.rs:39:48
[INFO] [stdout]    |
[INFO] [stdout] 39 |             Error::IOError(ref error) => error.description(),
[INFO] [stdout]    |                                                ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bp_tree/pager.rs:40:51
[INFO] [stdout]    |
[INFO] [stdout] 40 |             Error::SerdeError(ref error) => error.description(),
[INFO] [stdout]    |                                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/bp_tree/pager.rs:46:48
[INFO] [stdout]    |
[INFO] [stdout] 46 |             Error::IOError(ref error) => error.cause(),
[INFO] [stdout]    |                                                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/bp_tree/pager.rs:47:51
[INFO] [stdout]    |
[INFO] [stdout] 47 |             Error::SerdeError(ref error) => error.cause(),
[INFO] [stdout]    |                                                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/arena.rs:93:21
[INFO] [stdout]    |
[INFO] [stdout] 93 |                 let mut last_chunk = &mut self.chunks[chunk_count - 1];
[INFO] [stdout]    |                     ----^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bp_tree/map.rs:399:30
[INFO] [stdout]     |
[INFO] [stdout] 399 |                         let (mut removed_key, removed_pointer) = sibling_internal_node.remove_at(0, false);
[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/bp_tree/map.rs:410:30
[INFO] [stdout]     |
[INFO] [stdout] 410 |                         let (mut removed_key, removed_pointer) = sibling_internal_node.remove_at(remove_index, true);
[INFO] [stdout]     |                              ----^^^^^^^^^^^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/lsm_tree/mod.rs:39:48
[INFO] [stdout]    |
[INFO] [stdout] 39 |             Error::IOError(ref error) => error.description(),
[INFO] [stdout]    |                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/lsm_tree/mod.rs:40:51
[INFO] [stdout]    |
[INFO] [stdout] 40 |             Error::SerdeError(ref error) => error.description(),
[INFO] [stdout]    |                                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/lsm_tree/mod.rs:46:48
[INFO] [stdout]    |
[INFO] [stdout] 46 |             Error::IOError(ref error) => error.cause(),
[INFO] [stdout]    |                                                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/lsm_tree/mod.rs:47:51
[INFO] [stdout]    |
[INFO] [stdout] 47 |             Error::SerdeError(ref error) => error.cause(),
[INFO] [stdout]    |                                                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lsm_tree/compaction/leveled.rs:357:17
[INFO] [stdout]     |
[INFO] [stdout] 357 |             let mut should_merge = |metadata_snapshot: &LeveledMetadata<T, U>, index: usize| {
[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/lsm_tree/compaction/leveled.rs:402:21
[INFO] [stdout]     |
[INFO] [stdout] 402 |                 let mut compaction_iter = LeveledIter::new(
[INFO] [stdout]     |                     ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0505]: cannot move out of `tree` because it is borrowed
[INFO] [stdout]   --> src/radix/node.rs:39:22
[INFO] [stdout]    |
[INFO] [stdout] 36 |           fn get_mut_inner<T>(tree: &mut Tree<T>, byte: u8) -> &mut Tree<T> {
[INFO] [stdout]    |                                     - let's call the lifetime of this reference `'1`
[INFO] [stdout] 37 | /             match tree {
[INFO] [stdout] 38 | |                 Some(ref mut node) if node.key[0] != byte => get_mut_inner(&mut node.next, byte),
[INFO] [stdout]    | |                      ------------ borrow of `tree.0` occurs here
[INFO] [stdout] 39 | |                 _ => tree,
[INFO] [stdout]    | |                      ^^^^ move out of `tree` occurs here
[INFO] [stdout] 40 | |             }
[INFO] [stdout]    | |_____________- returning this value requires that `tree.0` is borrowed for `'1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/arena.rs:93:21
[INFO] [stdout]    |
[INFO] [stdout] 93 |                 let mut last_chunk = &mut self.chunks[chunk_count - 1];
[INFO] [stdout]    |                     ----^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/radix/tree.rs:18:17
[INFO] [stdout]    |
[INFO] [stdout] 18 |             let mut child = Node::new(key.split_at(split_index).1.to_vec(), Some(value));
[INFO] [stdout]    |                 ----^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `*next_link.next` as mutable more than once at a time
[INFO] [stdout]    --> src/skiplist/list.rs:157:25
[INFO] [stdout]     |
[INFO] [stdout] 155 |                     curr_node = &mut mem::replace(
[INFO] [stdout]     |                                      ------------ first borrow later used by call
[INFO] [stdout] 156 |                         &mut next_link,
[INFO] [stdout]     |                         -------------- first mutable borrow occurs here
[INFO] [stdout] 157 |                         (*next_link.next).get_pointer_mut(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `*next_link.next` as mutable more than once at a time
[INFO] [stdout]    --> src/skiplist/list.rs:210:25
[INFO] [stdout]     |
[INFO] [stdout] 208 |                     curr_node = &mut mem::replace(
[INFO] [stdout]     |                                      ------------ first borrow later used by call
[INFO] [stdout] 209 |                         &mut next_link,
[INFO] [stdout]     |                         -------------- first mutable borrow occurs here
[INFO] [stdout] 210 |                         (*next_link.next).get_pointer_mut(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*next_link.next` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/list.rs:325:25
[INFO] [stdout]     |
[INFO] [stdout] 323 |                     curr_node = &mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 324 |                         &mut next_link,
[INFO] [stdout]     |                         -------------- mutable borrow occurs here
[INFO] [stdout] 325 |                         (*next_link.next).get_pointer(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `*next_link.next` as mutable more than once at a time
[INFO] [stdout]    --> src/skiplist/list.rs:366:25
[INFO] [stdout]     |
[INFO] [stdout] 364 |                     curr_node = &mut mem::replace(
[INFO] [stdout]     |                                      ------------ first borrow later used by call
[INFO] [stdout] 365 |                         &mut next_link,
[INFO] [stdout]     |                         -------------- first mutable borrow occurs here
[INFO] [stdout] 366 |                         (*next_link.next).get_pointer_mut(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*curr_node` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/list.rs:430:21
[INFO] [stdout]     |
[INFO] [stdout] 428 |                 Node::free(mem::replace(
[INFO] [stdout]     |                            ------------ mutable borrow later used by call
[INFO] [stdout] 429 |                     &mut curr_node,
[INFO] [stdout]     |                     -------------- mutable borrow occurs here
[INFO] [stdout] 430 |                     (*curr_node).get_pointer(0).next,
[INFO] [stdout]     |                     ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/list.rs:493:17
[INFO] [stdout]     |
[INFO] [stdout] 491 |             Node::deallocate(mem::replace(
[INFO] [stdout]     |                              ------------ mutable borrow later used by call
[INFO] [stdout] 492 |                 &mut self.head,
[INFO] [stdout]     |                 -------------- mutable borrow occurs here
[INFO] [stdout] 493 |                 (*self.head).get_pointer(0).next,
[INFO] [stdout]     |                 ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/list.rs:498:21
[INFO] [stdout]     |
[INFO] [stdout] 496 |                 Node::free(mem::replace(
[INFO] [stdout]     |                            ------------ mutable borrow later used by call
[INFO] [stdout] 497 |                     &mut self.head,
[INFO] [stdout]     |                     -------------- mutable borrow occurs here
[INFO] [stdout] 498 |                     (*self.head).get_pointer(0).next,
[INFO] [stdout]     |                     ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self.current` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/list.rs:562:21
[INFO] [stdout]     |
[INFO] [stdout] 560 |                 Node::deallocate(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 561 |                     &mut self.current,
[INFO] [stdout]     |                     ----------------- mutable borrow occurs here
[INFO] [stdout] 562 |                     (*self.current).get_pointer(0).next,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self.current` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/list.rs:577:21
[INFO] [stdout]     |
[INFO] [stdout] 575 |                 Node::free(mem::replace(
[INFO] [stdout]     |                            ------------ mutable borrow later used by call
[INFO] [stdout] 576 |                     &mut self.current,
[INFO] [stdout]     |                     ----------------- mutable borrow occurs here
[INFO] [stdout] 577 |                     (*self.current).get_pointer(0).next,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `**self.current` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/list.rs:606:50
[INFO] [stdout]     |
[INFO] [stdout] 606 |                 mem::replace(&mut self.current, &(**self.current).get_pointer(0).next);
[INFO] [stdout]     |                 ------------ -----------------   ^^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                 |            |
[INFO] [stdout]     |                 |            mutable borrow occurs here
[INFO] [stdout]     |                 mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `**self.current` as mutable more than once at a time
[INFO] [stdout]    --> src/skiplist/list.rs:637:26
[INFO] [stdout]     |
[INFO] [stdout] 635 |                 mem::replace(
[INFO] [stdout]     |                 ------------ first borrow later used by call
[INFO] [stdout] 636 |                     &mut self.current,
[INFO] [stdout]     |                     ----------------- first mutable borrow occurs here
[INFO] [stdout] 637 |                     &mut (**self.current).get_pointer_mut(0).next,
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `**next_node` as mutable more than once at a time
[INFO] [stdout]    --> src/skiplist/map.rs:155:25
[INFO] [stdout]     |
[INFO] [stdout] 153 |                     curr_node = mem::replace(
[INFO] [stdout]     |                                 ------------ first borrow later used by call
[INFO] [stdout] 154 |                         &mut next_node,
[INFO] [stdout]     |                         -------------- first mutable borrow occurs here
[INFO] [stdout] 155 |                         (**next_node).get_pointer_mut(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `**next_node` as mutable more than once at a time
[INFO] [stdout]    --> src/skiplist/map.rs:216:25
[INFO] [stdout]     |
[INFO] [stdout] 214 |                     curr_node = mem::replace(
[INFO] [stdout]     |                                 ------------ first borrow later used by call
[INFO] [stdout] 215 |                         &mut next_node,
[INFO] [stdout]     |                         -------------- first mutable borrow occurs here
[INFO] [stdout] 216 |                         (**next_node).get_pointer_mut(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `**next_node` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:288:25
[INFO] [stdout]     |
[INFO] [stdout] 286 |                     curr_node = mem::replace(
[INFO] [stdout]     |                                 ------------ mutable borrow later used by call
[INFO] [stdout] 287 |                         &mut next_node,
[INFO] [stdout]     |                         -------------- mutable borrow occurs here
[INFO] [stdout] 288 |                         (**next_node).get_pointer(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `**next_node` as mutable more than once at a time
[INFO] [stdout]    --> src/skiplist/map.rs:332:25
[INFO] [stdout]     |
[INFO] [stdout] 330 |                     curr_node = mem::replace(
[INFO] [stdout]     |                                 ------------ first borrow later used by call
[INFO] [stdout] 331 |                         &mut next_node,
[INFO] [stdout]     |                         -------------- first mutable borrow occurs here
[INFO] [stdout] 332 |                         (**next_node).get_pointer_mut(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*curr_node` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:394:58
[INFO] [stdout]     |
[INFO] [stdout] 394 |                 Node::free(mem::replace(&mut curr_node, *(*curr_node).get_pointer(0)));
[INFO] [stdout]     |                            ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                            |            |
[INFO] [stdout]     |                            |            mutable borrow occurs here
[INFO] [stdout]     |                            mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `**next_node` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:426:25
[INFO] [stdout]     |
[INFO] [stdout] 424 |                     curr_node = mem::replace(
[INFO] [stdout]     |                                 ------------ mutable borrow later used by call
[INFO] [stdout] 425 |                         &mut next_node,
[INFO] [stdout]     |                         -------------- mutable borrow occurs here
[INFO] [stdout] 426 |                         (**next_node).get_pointer(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `**next_node` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:469:25
[INFO] [stdout]     |
[INFO] [stdout] 467 |                     curr_node = mem::replace(
[INFO] [stdout]     |                                 ------------ mutable borrow later used by call
[INFO] [stdout] 468 |                         &mut next_node,
[INFO] [stdout]     |                         -------------- mutable borrow occurs here
[INFO] [stdout] 469 |                         (**next_node).get_pointer(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `**next_node` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:535:25
[INFO] [stdout]     |
[INFO] [stdout] 533 |                     curr_node = mem::replace(
[INFO] [stdout]     |                                 ------------ mutable borrow later used by call
[INFO] [stdout] 534 |                         &mut next_node,
[INFO] [stdout]     |                         -------------- mutable borrow occurs here
[INFO] [stdout] 535 |                         (**next_node).get_pointer(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:586:59
[INFO] [stdout]     |
[INFO] [stdout] 586 |             let left_head = mem::replace(&mut left.head, *(*left.head).get_pointer(0));
[INFO] [stdout]     |                             ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                             |            |
[INFO] [stdout]     |                             |            mutable borrow occurs here
[INFO] [stdout]     |                             mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:587:61
[INFO] [stdout]     |
[INFO] [stdout] 587 |             let right_head = mem::replace(&mut right.head, *(*right.head).get_pointer(0));
[INFO] [stdout]     |                              ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                              |            |
[INFO] [stdout]     |                              |            mutable borrow occurs here
[INFO] [stdout]     |                              mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:601:38
[INFO] [stdout]     |
[INFO] [stdout] 599 | ...                   Node::free(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 600 | ...                       &mut right.head,
[INFO] [stdout]     |                           --------------- mutable borrow occurs here
[INFO] [stdout] 601 | ...                       *(*right.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:605:94
[INFO] [stdout]     |
[INFO] [stdout] 605 | ...                   cmp::Ordering::Less => next_node = mem::replace(&mut left.head, *(*left.head).get_pointer(0)),
[INFO] [stdout]     |                                                          ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                                          |            |
[INFO] [stdout]     |                                                          |            mutable borrow occurs here
[INFO] [stdout]     |                                                          mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:606:98
[INFO] [stdout]     |
[INFO] [stdout] 606 | ...                   cmp::Ordering::Greater => next_node = mem::replace(&mut right.head, *(*right.head).get_pointer(0)),
[INFO] [stdout]     |                                                             ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                                             |            |
[INFO] [stdout]     |                                                             |            mutable borrow occurs here
[INFO] [stdout]     |                                                             mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:609:81
[INFO] [stdout]     |
[INFO] [stdout] 609 |                     (true, false) => next_node = mem::replace(&mut right.head, *(*right.head).get_pointer(0)),
[INFO] [stdout]     |                                                  ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                                  |            |
[INFO] [stdout]     |                                                  |            mutable borrow occurs here
[INFO] [stdout]     |                                                  mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:610:80
[INFO] [stdout]     |
[INFO] [stdout] 610 |                     (false, true) => next_node = mem::replace(&mut left.head, *(*left.head).get_pointer(0)),
[INFO] [stdout]     |                                                  ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                                  |            |
[INFO] [stdout]     |                                                  |            mutable borrow occurs here
[INFO] [stdout]     |                                                  mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:661:59
[INFO] [stdout]     |
[INFO] [stdout] 661 |             let left_head = mem::replace(&mut left.head, *(*left.head).get_pointer(0));
[INFO] [stdout]     |                             ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                             |            |
[INFO] [stdout]     |                             |            mutable borrow occurs here
[INFO] [stdout]     |                             mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:662:61
[INFO] [stdout]     |
[INFO] [stdout] 662 |             let right_head = mem::replace(&mut right.head, *(*right.head).get_pointer(0));
[INFO] [stdout]     |                              ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                              |            |
[INFO] [stdout]     |                              |            mutable borrow occurs here
[INFO] [stdout]     |                              mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:674:75
[INFO] [stdout]     |
[INFO] [stdout] 674 | ...                   next_node = mem::replace(&mut left.head, *(*left.head).get_pointer(0));
[INFO] [stdout]     |                                   ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                   |            |
[INFO] [stdout]     |                                   |            mutable borrow occurs here
[INFO] [stdout]     |                                   mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:675:75
[INFO] [stdout]     |
[INFO] [stdout] 675 | ...                   Node::free(mem::replace(&mut right.head, *(*right.head).get_pointer(0)));
[INFO] [stdout]     |                                  ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                  |            |
[INFO] [stdout]     |                                  |            mutable borrow occurs here
[INFO] [stdout]     |                                  mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:680:38
[INFO] [stdout]     |
[INFO] [stdout] 678 | ...                   Node::free(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 679 | ...                       &mut left.head,
[INFO] [stdout]     |                           -------------- mutable borrow occurs here
[INFO] [stdout] 680 | ...                       *(*left.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:687:38
[INFO] [stdout]     |
[INFO] [stdout] 685 | ...                   Node::free(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 686 | ...                       &mut right.head,
[INFO] [stdout]     |                           --------------- mutable borrow occurs here
[INFO] [stdout] 687 | ...                       *(*right.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:694:67
[INFO] [stdout]     |
[INFO] [stdout] 694 |                         Node::free(mem::replace(&mut right.head, *(*right.head).get_pointer(0)));
[INFO] [stdout]     |                                    ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                    |            |
[INFO] [stdout]     |                                    |            mutable borrow occurs here
[INFO] [stdout]     |                                    mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:698:66
[INFO] [stdout]     |
[INFO] [stdout] 698 |                         Node::free(mem::replace(&mut left.head, *(*left.head).get_pointer(0)));
[INFO] [stdout]     |                                    ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                    |            |
[INFO] [stdout]     |                                    |            mutable borrow occurs here
[INFO] [stdout]     |                                    mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:730:59
[INFO] [stdout]     |
[INFO] [stdout] 730 |             let left_head = mem::replace(&mut left.head, *(*left.head).get_pointer(0));
[INFO] [stdout]     |                             ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                             |            |
[INFO] [stdout]     |                             |            mutable borrow occurs here
[INFO] [stdout]     |                             mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:731:61
[INFO] [stdout]     |
[INFO] [stdout] 731 |             let right_head = mem::replace(&mut right.head, *(*right.head).get_pointer(0));
[INFO] [stdout]     |                              ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                              |            |
[INFO] [stdout]     |                              |            mutable borrow occurs here
[INFO] [stdout]     |                              mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:745:38
[INFO] [stdout]     |
[INFO] [stdout] 743 | ...                   Node::free(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 744 | ...                       &mut left.head,
[INFO] [stdout]     |                           -------------- mutable borrow occurs here
[INFO] [stdout] 745 | ...                       *(*left.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:749:38
[INFO] [stdout]     |
[INFO] [stdout] 747 | ...                   Node::free(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 748 | ...                       &mut right.head,
[INFO] [stdout]     |                           --------------- mutable borrow occurs here
[INFO] [stdout] 749 | ...                       *(*right.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:753:94
[INFO] [stdout]     |
[INFO] [stdout] 753 | ...                   cmp::Ordering::Less => next_node = mem::replace(&mut left.head, *(*left.head).get_pointer(0)),
[INFO] [stdout]     |                                                          ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                                          |            |
[INFO] [stdout]     |                                                          |            mutable borrow occurs here
[INFO] [stdout]     |                                                          mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:758:42
[INFO] [stdout]     |
[INFO] [stdout] 756 | ...                   next_node = mem::replace(
[INFO] [stdout]     |                                   ------------ mutable borrow later used by call
[INFO] [stdout] 757 | ...                       &mut right.head,
[INFO] [stdout]     |                           --------------- mutable borrow occurs here
[INFO] [stdout] 758 | ...                       *(*right.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:763:42
[INFO] [stdout]     |
[INFO] [stdout] 761 | ...                   Node::free(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 762 | ...                       &mut right.head,
[INFO] [stdout]     |                           --------------- mutable borrow occurs here
[INFO] [stdout] 763 | ...                       *(*right.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:774:34
[INFO] [stdout]     |
[INFO] [stdout] 772 | ...                   next_node = mem::replace(
[INFO] [stdout]     |                                   ------------ mutable borrow later used by call
[INFO] [stdout] 773 | ...                       &mut right.head,
[INFO] [stdout]     |                           --------------- mutable borrow occurs here
[INFO] [stdout] 774 | ...                       *(*right.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:779:34
[INFO] [stdout]     |
[INFO] [stdout] 777 | ...                   Node::free(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 778 | ...                       &mut right.head,
[INFO] [stdout]     |                           --------------- mutable borrow occurs here
[INFO] [stdout] 779 | ...                       *(*right.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:787:30
[INFO] [stdout]     |
[INFO] [stdout] 785 |                         next_node = mem::replace(
[INFO] [stdout]     |                                     ------------ mutable borrow later used by call
[INFO] [stdout] 786 |                             &mut right.head,
[INFO] [stdout]     |                             --------------- mutable borrow occurs here
[INFO] [stdout] 787 |                             *(*right.head).get_pointer(0),
[INFO] [stdout]     |                              ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:920:60
[INFO] [stdout]     |
[INFO] [stdout] 920 |             Node::deallocate(mem::replace(&mut self.head, *(*self.head).get_pointer(0)));
[INFO] [stdout]     |                              ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                              |            |
[INFO] [stdout]     |                              |            mutable borrow occurs here
[INFO] [stdout]     |                              mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:922:58
[INFO] [stdout]     |
[INFO] [stdout] 922 |                 Node::free(mem::replace(&mut self.head, *(*self.head).get_pointer(0)));
[INFO] [stdout]     |                            ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                            |            |
[INFO] [stdout]     |                            |            mutable borrow occurs here
[INFO] [stdout]     |                            mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self.current` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:987:22
[INFO] [stdout]     |
[INFO] [stdout] 985 |                 Node::deallocate(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 986 |                     &mut self.current,
[INFO] [stdout]     |                     ----------------- mutable borrow occurs here
[INFO] [stdout] 987 |                     *(*self.current).get_pointer(0),
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self.current` as immutable because it is also borrowed as mutable
[INFO] [stdout]     --> src/skiplist/map.rs:1002:22
[INFO] [stdout]      |
[INFO] [stdout] 1000 |                 Node::free(mem::replace(
[INFO] [stdout]      |                            ------------ mutable borrow later used by call
[INFO] [stdout] 1001 |                     &mut self.current,
[INFO] [stdout]      |                     ----------------- mutable borrow occurs here
[INFO] [stdout] 1002 |                     *(*self.current).get_pointer(0),
[INFO] [stdout]      |                      ^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `**self.current` as immutable because it is also borrowed as mutable
[INFO] [stdout]     --> src/skiplist/map.rs:1034:51
[INFO] [stdout]      |
[INFO] [stdout] 1034 |                 mem::replace(&mut self.current, &*(**self.current).get_pointer(0));
[INFO] [stdout]      |                 ------------ -----------------    ^^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]      |                 |            |
[INFO] [stdout]      |                 |            mutable borrow occurs here
[INFO] [stdout]      |                 mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `**self.current` as mutable more than once at a time
[INFO] [stdout]     --> src/skiplist/map.rs:1065:55
[INFO] [stdout]      |
[INFO] [stdout] 1065 |                 mem::replace(&mut self.current, &mut *(**self.current).get_pointer_mut(0));
[INFO] [stdout]      |                 ------------ -----------------        ^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout]      |                 |            |
[INFO] [stdout]      |                 |            first mutable borrow occurs here
[INFO] [stdout]      |                 first borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/treap/implicit_tree.rs:33:21
[INFO] [stdout]    |
[INFO] [stdout] 33 |                 let mut res = split(&mut node.left, index, left_inclusive);
[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/bp_tree/map.rs:399:30
[INFO] [stdout]     |
[INFO] [stdout] 399 |                         let (mut removed_key, removed_pointer) = sibling_internal_node.remove_at(0, false);
[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/bp_tree/map.rs:410:30
[INFO] [stdout]     |
[INFO] [stdout] 410 |                         let (mut removed_key, removed_pointer) = sibling_internal_node.remove_at(remove_index, true);
[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/treap/tree.rs:35:17
[INFO] [stdout]    |
[INFO] [stdout] 35 |             let mut ret;
[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/treap/tree.rs:38:25
[INFO] [stdout]    |
[INFO] [stdout] 38 |                     let mut res = split(&mut node.left, key);
[INFO] [stdout]    |                         ----^^^
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 51 previous errors; 26 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0499, E0502, E0505.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0499`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `extended-collections` (lib) due to 52 previous errors; 26 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/lsm_tree/compaction/leveled.rs:357:17
[INFO] [stdout]     |
[INFO] [stdout] 357 |             let mut should_merge = |metadata_snapshot: &LeveledMetadata<T, U>, index: usize| {
[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/lsm_tree/compaction/leveled.rs:402:21
[INFO] [stdout]     |
[INFO] [stdout] 402 |                 let mut compaction_iter = LeveledIter::new(
[INFO] [stdout]     |                     ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0505]: cannot move out of `tree` because it is borrowed
[INFO] [stdout]   --> src/radix/node.rs:39:22
[INFO] [stdout]    |
[INFO] [stdout] 36 |           fn get_mut_inner<T>(tree: &mut Tree<T>, byte: u8) -> &mut Tree<T> {
[INFO] [stdout]    |                                     - let's call the lifetime of this reference `'1`
[INFO] [stdout] 37 | /             match tree {
[INFO] [stdout] 38 | |                 Some(ref mut node) if node.key[0] != byte => get_mut_inner(&mut node.next, byte),
[INFO] [stdout]    | |                      ------------ borrow of `tree.0` occurs here
[INFO] [stdout] 39 | |                 _ => tree,
[INFO] [stdout]    | |                      ^^^^ move out of `tree` occurs here
[INFO] [stdout] 40 | |             }
[INFO] [stdout]    | |_____________- returning this value requires that `tree.0` is borrowed for `'1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/radix/tree.rs:18:17
[INFO] [stdout]    |
[INFO] [stdout] 18 |             let mut child = Node::new(key.split_at(split_index).1.to_vec(), Some(value));
[INFO] [stdout]    |                 ----^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `*next_link.next` as mutable more than once at a time
[INFO] [stdout]    --> src/skiplist/list.rs:157:25
[INFO] [stdout]     |
[INFO] [stdout] 155 |                     curr_node = &mut mem::replace(
[INFO] [stdout]     |                                      ------------ first borrow later used by call
[INFO] [stdout] 156 |                         &mut next_link,
[INFO] [stdout]     |                         -------------- first mutable borrow occurs here
[INFO] [stdout] 157 |                         (*next_link.next).get_pointer_mut(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `*next_link.next` as mutable more than once at a time
[INFO] [stdout]    --> src/skiplist/list.rs:210:25
[INFO] [stdout]     |
[INFO] [stdout] 208 |                     curr_node = &mut mem::replace(
[INFO] [stdout]     |                                      ------------ first borrow later used by call
[INFO] [stdout] 209 |                         &mut next_link,
[INFO] [stdout]     |                         -------------- first mutable borrow occurs here
[INFO] [stdout] 210 |                         (*next_link.next).get_pointer_mut(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*next_link.next` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/list.rs:325:25
[INFO] [stdout]     |
[INFO] [stdout] 323 |                     curr_node = &mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 324 |                         &mut next_link,
[INFO] [stdout]     |                         -------------- mutable borrow occurs here
[INFO] [stdout] 325 |                         (*next_link.next).get_pointer(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `*next_link.next` as mutable more than once at a time
[INFO] [stdout]    --> src/skiplist/list.rs:366:25
[INFO] [stdout]     |
[INFO] [stdout] 364 |                     curr_node = &mut mem::replace(
[INFO] [stdout]     |                                      ------------ first borrow later used by call
[INFO] [stdout] 365 |                         &mut next_link,
[INFO] [stdout]     |                         -------------- first mutable borrow occurs here
[INFO] [stdout] 366 |                         (*next_link.next).get_pointer_mut(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*curr_node` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/list.rs:430:21
[INFO] [stdout]     |
[INFO] [stdout] 428 |                 Node::free(mem::replace(
[INFO] [stdout]     |                            ------------ mutable borrow later used by call
[INFO] [stdout] 429 |                     &mut curr_node,
[INFO] [stdout]     |                     -------------- mutable borrow occurs here
[INFO] [stdout] 430 |                     (*curr_node).get_pointer(0).next,
[INFO] [stdout]     |                     ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/list.rs:493:17
[INFO] [stdout]     |
[INFO] [stdout] 491 |             Node::deallocate(mem::replace(
[INFO] [stdout]     |                              ------------ mutable borrow later used by call
[INFO] [stdout] 492 |                 &mut self.head,
[INFO] [stdout]     |                 -------------- mutable borrow occurs here
[INFO] [stdout] 493 |                 (*self.head).get_pointer(0).next,
[INFO] [stdout]     |                 ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/list.rs:498:21
[INFO] [stdout]     |
[INFO] [stdout] 496 |                 Node::free(mem::replace(
[INFO] [stdout]     |                            ------------ mutable borrow later used by call
[INFO] [stdout] 497 |                     &mut self.head,
[INFO] [stdout]     |                     -------------- mutable borrow occurs here
[INFO] [stdout] 498 |                     (*self.head).get_pointer(0).next,
[INFO] [stdout]     |                     ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self.current` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/list.rs:562:21
[INFO] [stdout]     |
[INFO] [stdout] 560 |                 Node::deallocate(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 561 |                     &mut self.current,
[INFO] [stdout]     |                     ----------------- mutable borrow occurs here
[INFO] [stdout] 562 |                     (*self.current).get_pointer(0).next,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self.current` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/list.rs:577:21
[INFO] [stdout]     |
[INFO] [stdout] 575 |                 Node::free(mem::replace(
[INFO] [stdout]     |                            ------------ mutable borrow later used by call
[INFO] [stdout] 576 |                     &mut self.current,
[INFO] [stdout]     |                     ----------------- mutable borrow occurs here
[INFO] [stdout] 577 |                     (*self.current).get_pointer(0).next,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `**self.current` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/list.rs:606:50
[INFO] [stdout]     |
[INFO] [stdout] 606 |                 mem::replace(&mut self.current, &(**self.current).get_pointer(0).next);
[INFO] [stdout]     |                 ------------ -----------------   ^^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                 |            |
[INFO] [stdout]     |                 |            mutable borrow occurs here
[INFO] [stdout]     |                 mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `**self.current` as mutable more than once at a time
[INFO] [stdout]    --> src/skiplist/list.rs:637:26
[INFO] [stdout]     |
[INFO] [stdout] 635 |                 mem::replace(
[INFO] [stdout]     |                 ------------ first borrow later used by call
[INFO] [stdout] 636 |                     &mut self.current,
[INFO] [stdout]     |                     ----------------- first mutable borrow occurs here
[INFO] [stdout] 637 |                     &mut (**self.current).get_pointer_mut(0).next,
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `*next_link.next` as mutable more than once at a time
[INFO] [stdout]    --> src/skiplist/list.rs:714:21
[INFO] [stdout]     |
[INFO] [stdout] 712 |                 curr_node = &mut mem::replace(
[INFO] [stdout]     |                                  ------------ first borrow later used by call
[INFO] [stdout] 713 |                     &mut next_link,
[INFO] [stdout]     |                     -------------- first mutable borrow occurs here
[INFO] [stdout] 714 |                     (*next_link.next).get_pointer_mut(0),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `*next_link.next` as mutable more than once at a time
[INFO] [stdout]    --> src/skiplist/list.rs:726:25
[INFO] [stdout]     |
[INFO] [stdout] 724 |                     curr_node = &mut mem::replace(
[INFO] [stdout]     |                                      ------------ first borrow later used by call
[INFO] [stdout] 725 |                         &mut next_link,
[INFO] [stdout]     |                         -------------- first mutable borrow occurs here
[INFO] [stdout] 726 |                         (*next_link.next).get_pointer_mut(0),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `**next_node` as mutable more than once at a time
[INFO] [stdout]    --> src/skiplist/map.rs:155:25
[INFO] [stdout]     |
[INFO] [stdout] 153 |                     curr_node = mem::replace(
[INFO] [stdout]     |                                 ------------ first borrow later used by call
[INFO] [stdout] 154 |                         &mut next_node,
[INFO] [stdout]     |                         -------------- first mutable borrow occurs here
[INFO] [stdout] 155 |                         (**next_node).get_pointer_mut(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `**next_node` as mutable more than once at a time
[INFO] [stdout]    --> src/skiplist/map.rs:216:25
[INFO] [stdout]     |
[INFO] [stdout] 214 |                     curr_node = mem::replace(
[INFO] [stdout]     |                                 ------------ first borrow later used by call
[INFO] [stdout] 215 |                         &mut next_node,
[INFO] [stdout]     |                         -------------- first mutable borrow occurs here
[INFO] [stdout] 216 |                         (**next_node).get_pointer_mut(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `**next_node` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:288:25
[INFO] [stdout]     |
[INFO] [stdout] 286 |                     curr_node = mem::replace(
[INFO] [stdout]     |                                 ------------ mutable borrow later used by call
[INFO] [stdout] 287 |                         &mut next_node,
[INFO] [stdout]     |                         -------------- mutable borrow occurs here
[INFO] [stdout] 288 |                         (**next_node).get_pointer(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `**next_node` as mutable more than once at a time
[INFO] [stdout]    --> src/skiplist/map.rs:332:25
[INFO] [stdout]     |
[INFO] [stdout] 330 |                     curr_node = mem::replace(
[INFO] [stdout]     |                                 ------------ first borrow later used by call
[INFO] [stdout] 331 |                         &mut next_node,
[INFO] [stdout]     |                         -------------- first mutable borrow occurs here
[INFO] [stdout] 332 |                         (**next_node).get_pointer_mut(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*curr_node` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:394:58
[INFO] [stdout]     |
[INFO] [stdout] 394 |                 Node::free(mem::replace(&mut curr_node, *(*curr_node).get_pointer(0)));
[INFO] [stdout]     |                            ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                            |            |
[INFO] [stdout]     |                            |            mutable borrow occurs here
[INFO] [stdout]     |                            mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `**next_node` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:426:25
[INFO] [stdout]     |
[INFO] [stdout] 424 |                     curr_node = mem::replace(
[INFO] [stdout]     |                                 ------------ mutable borrow later used by call
[INFO] [stdout] 425 |                         &mut next_node,
[INFO] [stdout]     |                         -------------- mutable borrow occurs here
[INFO] [stdout] 426 |                         (**next_node).get_pointer(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `**next_node` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:469:25
[INFO] [stdout]     |
[INFO] [stdout] 467 |                     curr_node = mem::replace(
[INFO] [stdout]     |                                 ------------ mutable borrow later used by call
[INFO] [stdout] 468 |                         &mut next_node,
[INFO] [stdout]     |                         -------------- mutable borrow occurs here
[INFO] [stdout] 469 |                         (**next_node).get_pointer(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `**next_node` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:535:25
[INFO] [stdout]     |
[INFO] [stdout] 533 |                     curr_node = mem::replace(
[INFO] [stdout]     |                                 ------------ mutable borrow later used by call
[INFO] [stdout] 534 |                         &mut next_node,
[INFO] [stdout]     |                         -------------- mutable borrow occurs here
[INFO] [stdout] 535 |                         (**next_node).get_pointer(curr_height),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:586:59
[INFO] [stdout]     |
[INFO] [stdout] 586 |             let left_head = mem::replace(&mut left.head, *(*left.head).get_pointer(0));
[INFO] [stdout]     |                             ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                             |            |
[INFO] [stdout]     |                             |            mutable borrow occurs here
[INFO] [stdout]     |                             mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:587:61
[INFO] [stdout]     |
[INFO] [stdout] 587 |             let right_head = mem::replace(&mut right.head, *(*right.head).get_pointer(0));
[INFO] [stdout]     |                              ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                              |            |
[INFO] [stdout]     |                              |            mutable borrow occurs here
[INFO] [stdout]     |                              mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:601:38
[INFO] [stdout]     |
[INFO] [stdout] 599 | ...                   Node::free(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 600 | ...                       &mut right.head,
[INFO] [stdout]     |                           --------------- mutable borrow occurs here
[INFO] [stdout] 601 | ...                       *(*right.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:605:94
[INFO] [stdout]     |
[INFO] [stdout] 605 | ...                   cmp::Ordering::Less => next_node = mem::replace(&mut left.head, *(*left.head).get_pointer(0)),
[INFO] [stdout]     |                                                          ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                                          |            |
[INFO] [stdout]     |                                                          |            mutable borrow occurs here
[INFO] [stdout]     |                                                          mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:606:98
[INFO] [stdout]     |
[INFO] [stdout] 606 | ...                   cmp::Ordering::Greater => next_node = mem::replace(&mut right.head, *(*right.head).get_pointer(0)),
[INFO] [stdout]     |                                                             ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                                             |            |
[INFO] [stdout]     |                                                             |            mutable borrow occurs here
[INFO] [stdout]     |                                                             mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:609:81
[INFO] [stdout]     |
[INFO] [stdout] 609 |                     (true, false) => next_node = mem::replace(&mut right.head, *(*right.head).get_pointer(0)),
[INFO] [stdout]     |                                                  ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                                  |            |
[INFO] [stdout]     |                                                  |            mutable borrow occurs here
[INFO] [stdout]     |                                                  mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:610:80
[INFO] [stdout]     |
[INFO] [stdout] 610 |                     (false, true) => next_node = mem::replace(&mut left.head, *(*left.head).get_pointer(0)),
[INFO] [stdout]     |                                                  ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                                  |            |
[INFO] [stdout]     |                                                  |            mutable borrow occurs here
[INFO] [stdout]     |                                                  mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:661:59
[INFO] [stdout]     |
[INFO] [stdout] 661 |             let left_head = mem::replace(&mut left.head, *(*left.head).get_pointer(0));
[INFO] [stdout]     |                             ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                             |            |
[INFO] [stdout]     |                             |            mutable borrow occurs here
[INFO] [stdout]     |                             mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:662:61
[INFO] [stdout]     |
[INFO] [stdout] 662 |             let right_head = mem::replace(&mut right.head, *(*right.head).get_pointer(0));
[INFO] [stdout]     |                              ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                              |            |
[INFO] [stdout]     |                              |            mutable borrow occurs here
[INFO] [stdout]     |                              mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:674:75
[INFO] [stdout]     |
[INFO] [stdout] 674 | ...                   next_node = mem::replace(&mut left.head, *(*left.head).get_pointer(0));
[INFO] [stdout]     |                                   ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                   |            |
[INFO] [stdout]     |                                   |            mutable borrow occurs here
[INFO] [stdout]     |                                   mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:675:75
[INFO] [stdout]     |
[INFO] [stdout] 675 | ...                   Node::free(mem::replace(&mut right.head, *(*right.head).get_pointer(0)));
[INFO] [stdout]     |                                  ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                  |            |
[INFO] [stdout]     |                                  |            mutable borrow occurs here
[INFO] [stdout]     |                                  mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:680:38
[INFO] [stdout]     |
[INFO] [stdout] 678 | ...                   Node::free(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 679 | ...                       &mut left.head,
[INFO] [stdout]     |                           -------------- mutable borrow occurs here
[INFO] [stdout] 680 | ...                       *(*left.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:687:38
[INFO] [stdout]     |
[INFO] [stdout] 685 | ...                   Node::free(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 686 | ...                       &mut right.head,
[INFO] [stdout]     |                           --------------- mutable borrow occurs here
[INFO] [stdout] 687 | ...                       *(*right.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:694:67
[INFO] [stdout]     |
[INFO] [stdout] 694 |                         Node::free(mem::replace(&mut right.head, *(*right.head).get_pointer(0)));
[INFO] [stdout]     |                                    ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                    |            |
[INFO] [stdout]     |                                    |            mutable borrow occurs here
[INFO] [stdout]     |                                    mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:698:66
[INFO] [stdout]     |
[INFO] [stdout] 698 |                         Node::free(mem::replace(&mut left.head, *(*left.head).get_pointer(0)));
[INFO] [stdout]     |                                    ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                    |            |
[INFO] [stdout]     |                                    |            mutable borrow occurs here
[INFO] [stdout]     |                                    mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:730:59
[INFO] [stdout]     |
[INFO] [stdout] 730 |             let left_head = mem::replace(&mut left.head, *(*left.head).get_pointer(0));
[INFO] [stdout]     |                             ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                             |            |
[INFO] [stdout]     |                             |            mutable borrow occurs here
[INFO] [stdout]     |                             mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:731:61
[INFO] [stdout]     |
[INFO] [stdout] 731 |             let right_head = mem::replace(&mut right.head, *(*right.head).get_pointer(0));
[INFO] [stdout]     |                              ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                              |            |
[INFO] [stdout]     |                              |            mutable borrow occurs here
[INFO] [stdout]     |                              mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:745:38
[INFO] [stdout]     |
[INFO] [stdout] 743 | ...                   Node::free(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 744 | ...                       &mut left.head,
[INFO] [stdout]     |                           -------------- mutable borrow occurs here
[INFO] [stdout] 745 | ...                       *(*left.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:749:38
[INFO] [stdout]     |
[INFO] [stdout] 747 | ...                   Node::free(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 748 | ...                       &mut right.head,
[INFO] [stdout]     |                           --------------- mutable borrow occurs here
[INFO] [stdout] 749 | ...                       *(*right.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:753:94
[INFO] [stdout]     |
[INFO] [stdout] 753 | ...                   cmp::Ordering::Less => next_node = mem::replace(&mut left.head, *(*left.head).get_pointer(0)),
[INFO] [stdout]     |                                                          ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                                                          |            |
[INFO] [stdout]     |                                                          |            mutable borrow occurs here
[INFO] [stdout]     |                                                          mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:758:42
[INFO] [stdout]     |
[INFO] [stdout] 756 | ...                   next_node = mem::replace(
[INFO] [stdout]     |                                   ------------ mutable borrow later used by call
[INFO] [stdout] 757 | ...                       &mut right.head,
[INFO] [stdout]     |                           --------------- mutable borrow occurs here
[INFO] [stdout] 758 | ...                       *(*right.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:763:42
[INFO] [stdout]     |
[INFO] [stdout] 761 | ...                   Node::free(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 762 | ...                       &mut right.head,
[INFO] [stdout]     |                           --------------- mutable borrow occurs here
[INFO] [stdout] 763 | ...                       *(*right.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:774:34
[INFO] [stdout]     |
[INFO] [stdout] 772 | ...                   next_node = mem::replace(
[INFO] [stdout]     |                                   ------------ mutable borrow later used by call
[INFO] [stdout] 773 | ...                       &mut right.head,
[INFO] [stdout]     |                           --------------- mutable borrow occurs here
[INFO] [stdout] 774 | ...                       *(*right.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:779:34
[INFO] [stdout]     |
[INFO] [stdout] 777 | ...                   Node::free(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 778 | ...                       &mut right.head,
[INFO] [stdout]     |                           --------------- mutable borrow occurs here
[INFO] [stdout] 779 | ...                       *(*right.head).get_pointer(0),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:787:30
[INFO] [stdout]     |
[INFO] [stdout] 785 |                         next_node = mem::replace(
[INFO] [stdout]     |                                     ------------ mutable borrow later used by call
[INFO] [stdout] 786 |                             &mut right.head,
[INFO] [stdout]     |                             --------------- mutable borrow occurs here
[INFO] [stdout] 787 |                             *(*right.head).get_pointer(0),
[INFO] [stdout]     |                              ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:920:60
[INFO] [stdout]     |
[INFO] [stdout] 920 |             Node::deallocate(mem::replace(&mut self.head, *(*self.head).get_pointer(0)));
[INFO] [stdout]     |                              ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                              |            |
[INFO] [stdout]     |                              |            mutable borrow occurs here
[INFO] [stdout]     |                              mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self.head` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:922:58
[INFO] [stdout]     |
[INFO] [stdout] 922 |                 Node::free(mem::replace(&mut self.head, *(*self.head).get_pointer(0)));
[INFO] [stdout]     |                            ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |                            |            |
[INFO] [stdout]     |                            |            mutable borrow occurs here
[INFO] [stdout]     |                            mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self.current` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/skiplist/map.rs:987:22
[INFO] [stdout]     |
[INFO] [stdout] 985 |                 Node::deallocate(mem::replace(
[INFO] [stdout]     |                                  ------------ mutable borrow later used by call
[INFO] [stdout] 986 |                     &mut self.current,
[INFO] [stdout]     |                     ----------------- mutable borrow occurs here
[INFO] [stdout] 987 |                     *(*self.current).get_pointer(0),
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self.current` as immutable because it is also borrowed as mutable
[INFO] [stdout]     --> src/skiplist/map.rs:1002:22
[INFO] [stdout]      |
[INFO] [stdout] 1000 |                 Node::free(mem::replace(
[INFO] [stdout]      |                            ------------ mutable borrow later used by call
[INFO] [stdout] 1001 |                     &mut self.current,
[INFO] [stdout]      |                     ----------------- mutable borrow occurs here
[INFO] [stdout] 1002 |                     *(*self.current).get_pointer(0),
[INFO] [stdout]      |                      ^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `**self.current` as immutable because it is also borrowed as mutable
[INFO] [stdout]     --> src/skiplist/map.rs:1034:51
[INFO] [stdout]      |
[INFO] [stdout] 1034 |                 mem::replace(&mut self.current, &*(**self.current).get_pointer(0));
[INFO] [stdout]      |                 ------------ -----------------    ^^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]      |                 |            |
[INFO] [stdout]      |                 |            mutable borrow occurs here
[INFO] [stdout]      |                 mutable borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `**self.current` as mutable more than once at a time
[INFO] [stdout]     --> src/skiplist/map.rs:1065:55
[INFO] [stdout]      |
[INFO] [stdout] 1065 |                 mem::replace(&mut self.current, &mut *(**self.current).get_pointer_mut(0));
[INFO] [stdout]      |                 ------------ -----------------        ^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout]      |                 |            |
[INFO] [stdout]      |                 |            first mutable borrow occurs here
[INFO] [stdout]      |                 first borrow later used by call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/treap/implicit_tree.rs:33:21
[INFO] [stdout]    |
[INFO] [stdout] 33 |                 let mut res = split(&mut node.left, index, left_inclusive);
[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/treap/tree.rs:35:17
[INFO] [stdout]    |
[INFO] [stdout] 35 |             let mut ret;
[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/treap/tree.rs:38:25
[INFO] [stdout]    |
[INFO] [stdout] 38 |                     let mut res = split(&mut node.left, key);
[INFO] [stdout]    |                         ----^^^
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 53 previous errors; 26 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0499, E0502, E0505.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0499`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `extended-collections` (lib test) due to 54 previous errors; 26 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "4140bd3e4c1110175e5ba1026c5a87a31ad14b4446109d9e32b2bf0bb7ee76f6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4140bd3e4c1110175e5ba1026c5a87a31ad14b4446109d9e32b2bf0bb7ee76f6", kill_on_drop: false }`
[INFO] [stdout] 4140bd3e4c1110175e5ba1026c5a87a31ad14b4446109d9e32b2bf0bb7ee76f6
