[INFO] crate extended-collections 0.5.0 is already in cache
[INFO] checking extended-collections-0.5.0 against master#209b2be09fcaff937480d1fbbe8b31646e361c7a for pr-70917
[INFO] extracting crate extended-collections 0.5.0 into /workspace/builds/worker-9/source
[INFO] validating manifest of crates.io crate extended-collections 0.5.0 on toolchain 209b2be09fcaff937480d1fbbe8b31646e361c7a
[INFO] running `"/workspace/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "read-manifest" "--manifest-path" "Cargo.toml"`
[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-9/source/Cargo.toml
[INFO] running `"/workspace/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `"/workspace/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "fetch" "--locked" "--manifest-path" "Cargo.toml"`
[INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "check" "--frozen" "--all" "--all-targets"`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] a1eac3bf6fa7d5c63350056560023858e63752e2f0a40d6deccd833e39053ed4
[INFO] running `"docker" "start" "-a" "a1eac3bf6fa7d5c63350056560023858e63752e2f0a40d6deccd833e39053ed4"`
[INFO] [stderr]    Compiling serde v1.0.106
[INFO] [stderr]     Checking memoffset v0.1.0
[INFO] [stderr]     Checking crossbeam-utils v0.2.2
[INFO] [stderr]     Checking crossbeam-epoch v0.2.0
[INFO] [stderr]     Checking bincode v1.2.1
[INFO] [stderr]     Checking serde_test v1.0.106
[INFO] [stderr]     Checking probabilistic-collections v0.3.0
[INFO] [stderr]     Checking extended-collections v0.5.0 (/opt/rustwide/workdir)
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/bp_tree/pager.rs:44:32
[INFO] [stderr]    |
[INFO] [stderr] 44 |     fn cause(&self) -> Option<&error::Error> {
[INFO] [stderr]    |                                ^^^^^^^^^^^^ help: use `dyn`: `dyn error::Error`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/lsm_tree/compaction/mod.rs:15:33
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub type CompactionIter<T, U> = Iterator<Item = Result<(T, U)>>;
[INFO] [stderr]    |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Iterator<Item = Result<(T, U)>>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/lsm_tree/mod.rs:44:32
[INFO] [stderr]    |
[INFO] [stderr] 44 |     fn cause(&self) -> Option<&error::Error> {
[INFO] [stderr]    |                                ^^^^^^^^^^^^ help: use `dyn`: `dyn error::Error`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/bp_tree/pager.rs:44:32
[INFO] [stderr]    |
[INFO] [stderr] 44 |     fn cause(&self) -> Option<&error::Error> {
[INFO] [stderr]    |                                ^^^^^^^^^^^^ help: use `dyn`: `dyn error::Error`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/lsm_tree/compaction/mod.rs:15:33
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub type CompactionIter<T, U> = Iterator<Item = Result<(T, U)>>;
[INFO] [stderr]    |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Iterator<Item = Result<(T, U)>>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/lsm_tree/mod.rs:44:32
[INFO] [stderr]    |
[INFO] [stderr] 44 |     fn cause(&self) -> Option<&error::Error> {
[INFO] [stderr]    |                                ^^^^^^^^^^^^ help: use `dyn`: `dyn error::Error`
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string()
[INFO] [stderr]   --> src/bp_tree/pager.rs:39:48
[INFO] [stderr]    |
[INFO] [stderr] 39 |             Error::IOError(ref error) => error.description(),
[INFO] [stderr]    |                                                ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string()
[INFO] [stderr]   --> src/bp_tree/pager.rs:40:51
[INFO] [stderr]    |
[INFO] [stderr] 40 |             Error::SerdeError(ref error) => error.description(),
[INFO] [stderr]    |                                                   ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'std::error::Error::cause': replaced by Error::source, which can support downcasting
[INFO] [stderr]   --> src/bp_tree/pager.rs:46:48
[INFO] [stderr]    |
[INFO] [stderr] 46 |             Error::IOError(ref error) => error.cause(),
[INFO] [stderr]    |                                                ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'std::error::Error::cause': replaced by Error::source, which can support downcasting
[INFO] [stderr]   --> src/bp_tree/pager.rs:47:51
[INFO] [stderr]    |
[INFO] [stderr] 47 |             Error::SerdeError(ref error) => error.cause(),
[INFO] [stderr]    |                                                   ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string()
[INFO] [stderr]   --> src/lsm_tree/mod.rs:39:48
[INFO] [stderr]    |
[INFO] [stderr] 39 |             Error::IOError(ref error) => error.description(),
[INFO] [stderr]    |                                                ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string()
[INFO] [stderr]   --> src/lsm_tree/mod.rs:40:51
[INFO] [stderr]    |
[INFO] [stderr] 40 |             Error::SerdeError(ref error) => error.description(),
[INFO] [stderr]    |                                                   ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'std::error::Error::cause': replaced by Error::source, which can support downcasting
[INFO] [stderr]   --> src/lsm_tree/mod.rs:46:48
[INFO] [stderr]    |
[INFO] [stderr] 46 |             Error::IOError(ref error) => error.cause(),
[INFO] [stderr]    |                                                ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'std::error::Error::cause': replaced by Error::source, which can support downcasting
[INFO] [stderr]   --> src/lsm_tree/mod.rs:47:51
[INFO] [stderr]    |
[INFO] [stderr] 47 |             Error::SerdeError(ref error) => error.cause(),
[INFO] [stderr]    |                                                   ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string()
[INFO] [stderr]   --> src/bp_tree/pager.rs:39:48
[INFO] [stderr]    |
[INFO] [stderr] 39 |             Error::IOError(ref error) => error.description(),
[INFO] [stderr]    |                                                ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string()
[INFO] [stderr]   --> src/bp_tree/pager.rs:40:51
[INFO] [stderr]    |
[INFO] [stderr] 40 |             Error::SerdeError(ref error) => error.description(),
[INFO] [stderr]    |                                                   ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'std::error::Error::cause': replaced by Error::source, which can support downcasting
[INFO] [stderr]   --> src/bp_tree/pager.rs:46:48
[INFO] [stderr]    |
[INFO] [stderr] 46 |             Error::IOError(ref error) => error.cause(),
[INFO] [stderr]    |                                                ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'std::error::Error::cause': replaced by Error::source, which can support downcasting
[INFO] [stderr]   --> src/bp_tree/pager.rs:47:51
[INFO] [stderr]    |
[INFO] [stderr] 47 |             Error::SerdeError(ref error) => error.cause(),
[INFO] [stderr]    |                                                   ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/arena.rs:93:21
[INFO] [stderr]    |
[INFO] [stderr] 93 |                 let mut last_chunk = &mut self.chunks[chunk_count - 1];
[INFO] [stderr]    |                     ----^^^^^^^^^^
[INFO] [stderr]    |                     |
[INFO] [stderr]    |                     help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string()
[INFO] [stderr]   --> src/lsm_tree/mod.rs:39:48
[INFO] [stderr]    |
[INFO] [stderr] 39 |             Error::IOError(ref error) => error.description(),
[INFO] [stderr]    |                                                ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string()
[INFO] [stderr]   --> src/lsm_tree/mod.rs:40:51
[INFO] [stderr]    |
[INFO] [stderr] 40 |             Error::SerdeError(ref error) => error.description(),
[INFO] [stderr]    |                                                   ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'std::error::Error::cause': replaced by Error::source, which can support downcasting
[INFO] [stderr]   --> src/lsm_tree/mod.rs:46:48
[INFO] [stderr]    |
[INFO] [stderr] 46 |             Error::IOError(ref error) => error.cause(),
[INFO] [stderr]    |                                                ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'std::error::Error::cause': replaced by Error::source, which can support downcasting
[INFO] [stderr]   --> src/lsm_tree/mod.rs:47:51
[INFO] [stderr]    |
[INFO] [stderr] 47 |             Error::SerdeError(ref error) => error.cause(),
[INFO] [stderr]    |                                                   ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/bp_tree/map.rs:399:30
[INFO] [stderr]     |
[INFO] [stderr] 399 |                         let (mut removed_key, removed_pointer) = sibling_internal_node.remove_at(0, false);
[INFO] [stderr]     |                              ----^^^^^^^^^^^
[INFO] [stderr]     |                              |
[INFO] [stderr]     |                              help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/bp_tree/map.rs:410:30
[INFO] [stderr]     |
[INFO] [stderr] 410 |                         let (mut removed_key, removed_pointer) = sibling_internal_node.remove_at(remove_index, true);
[INFO] [stderr]     |                              ----^^^^^^^^^^^
[INFO] [stderr]     |                              |
[INFO] [stderr]     |                              help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/lsm_tree/compaction/leveled.rs:357:17
[INFO] [stderr]     |
[INFO] [stderr] 357 |             let mut should_merge = |metadata_snapshot: &LeveledMetadata<T, U>, index: usize| {
[INFO] [stderr]     |                 ----^^^^^^^^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/lsm_tree/compaction/leveled.rs:402:21
[INFO] [stderr]     |
[INFO] [stderr] 402 |                 let mut compaction_iter = LeveledIter::new(
[INFO] [stderr]     |                     ----^^^^^^^^^^^^^^^
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] error[E0499]: cannot borrow `*tree` as mutable more than once at a time
[INFO] [stderr]   --> src/radix/node.rs:39:22
[INFO] [stderr]    |
[INFO] [stderr] 36 |           fn get_mut_inner<T>(tree: &mut Tree<T>, byte: u8) -> &mut Tree<T> {
[INFO] [stderr]    |                                     - let's call the lifetime of this reference `'1`
[INFO] [stderr] 37 | /             match tree {
[INFO] [stderr] 38 | |                 Some(ref mut node) if node.key[0] != byte => get_mut_inner(&mut node.next, byte),
[INFO] [stderr]    | |                      ------------ first mutable borrow occurs here
[INFO] [stderr] 39 | |                 _ => tree,
[INFO] [stderr]    | |                      ^^^^ second mutable borrow occurs here
[INFO] [stderr] 40 | |             }
[INFO] [stderr]    | |_____________- returning this value requires that `tree.0` is borrowed for `'1`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/radix/tree.rs:18:17
[INFO] [stderr]    |
[INFO] [stderr] 18 |             let mut child = Node::new(key.split_at(split_index).1.to_vec(), Some(value));
[INFO] [stderr]    |                 ----^^^^^
[INFO] [stderr]    |                 |
[INFO] [stderr]    |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] error[E0499]: cannot borrow `*next_link.next` as mutable more than once at a time
[INFO] [stderr]    --> src/skiplist/list.rs:157:25
[INFO] [stderr]     |
[INFO] [stderr] 155 |                     curr_node = &mut mem::replace(
[INFO] [stderr]     |                                      ------------ first borrow later used by call
[INFO] [stderr] 156 |                         &mut next_link,
[INFO] [stderr]     |                         -------------- first mutable borrow occurs here
[INFO] [stderr] 157 |                         (*next_link.next).get_pointer_mut(curr_height),
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0499]: cannot borrow `*next_link.next` as mutable more than once at a time
[INFO] [stderr]    --> src/skiplist/list.rs:210:25
[INFO] [stderr]     |
[INFO] [stderr] 208 |                     curr_node = &mut mem::replace(
[INFO] [stderr]     |                                      ------------ first borrow later used by call
[INFO] [stderr] 209 |                         &mut next_link,
[INFO] [stderr]     |                         -------------- first mutable borrow occurs here
[INFO] [stderr] 210 |                         (*next_link.next).get_pointer_mut(curr_height),
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*next_link.next` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/list.rs:325:25
[INFO] [stderr]     |
[INFO] [stderr] 323 |                     curr_node = &mem::replace(
[INFO] [stderr]     |                                  ------------ mutable borrow later used by call
[INFO] [stderr] 324 |                         &mut next_link,
[INFO] [stderr]     |                         -------------- mutable borrow occurs here
[INFO] [stderr] 325 |                         (*next_link.next).get_pointer(curr_height),
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0499]: cannot borrow `*next_link.next` as mutable more than once at a time
[INFO] [stderr]    --> src/skiplist/list.rs:366:25
[INFO] [stderr]     |
[INFO] [stderr] 364 |                     curr_node = &mut mem::replace(
[INFO] [stderr]     |                                      ------------ first borrow later used by call
[INFO] [stderr] 365 |                         &mut next_link,
[INFO] [stderr]     |                         -------------- first mutable borrow occurs here
[INFO] [stderr] 366 |                         (*next_link.next).get_pointer_mut(curr_height),
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*curr_node` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/list.rs:430:21
[INFO] [stderr]     |
[INFO] [stderr] 428 |                 Node::free(mem::replace(
[INFO] [stderr]     |                            ------------ mutable borrow later used by call
[INFO] [stderr] 429 |                     &mut curr_node,
[INFO] [stderr]     |                     -------------- mutable borrow occurs here
[INFO] [stderr] 430 |                     (*curr_node).get_pointer(0).next,
[INFO] [stderr]     |                     ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*self.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/list.rs:493:17
[INFO] [stderr]     |
[INFO] [stderr] 491 |             Node::deallocate(mem::replace(
[INFO] [stderr]     |                              ------------ mutable borrow later used by call
[INFO] [stderr] 492 |                 &mut self.head,
[INFO] [stderr]     |                 -------------- mutable borrow occurs here
[INFO] [stderr] 493 |                 (*self.head).get_pointer(0).next,
[INFO] [stderr]     |                 ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*self.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/list.rs:498:21
[INFO] [stderr]     |
[INFO] [stderr] 496 |                 Node::free(mem::replace(
[INFO] [stderr]     |                            ------------ mutable borrow later used by call
[INFO] [stderr] 497 |                     &mut self.head,
[INFO] [stderr]     |                     -------------- mutable borrow occurs here
[INFO] [stderr] 498 |                     (*self.head).get_pointer(0).next,
[INFO] [stderr]     |                     ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*self.current` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/list.rs:562:21
[INFO] [stderr]     |
[INFO] [stderr] 560 |                 Node::deallocate(mem::replace(
[INFO] [stderr]     |                                  ------------ mutable borrow later used by call
[INFO] [stderr] 561 |                     &mut self.current,
[INFO] [stderr]     |                     ----------------- mutable borrow occurs here
[INFO] [stderr] 562 |                     (*self.current).get_pointer(0).next,
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*self.current` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/list.rs:577:21
[INFO] [stderr]     |
[INFO] [stderr] 575 |                 Node::free(mem::replace(
[INFO] [stderr]     |                            ------------ mutable borrow later used by call
[INFO] [stderr] 576 |                     &mut self.current,
[INFO] [stderr]     |                     ----------------- mutable borrow occurs here
[INFO] [stderr] 577 |                     (*self.current).get_pointer(0).next,
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `**self.current` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/list.rs:606:50
[INFO] [stderr]     |
[INFO] [stderr] 606 |                 mem::replace(&mut self.current, &(**self.current).get_pointer(0).next);
[INFO] [stderr]     |                 ------------ -----------------   ^^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                 |            |
[INFO] [stderr]     |                 |            mutable borrow occurs here
[INFO] [stderr]     |                 mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0499]: cannot borrow `**self.current` as mutable more than once at a time
[INFO] [stderr]    --> src/skiplist/list.rs:637:26
[INFO] [stderr]     |
[INFO] [stderr] 635 |                 mem::replace(
[INFO] [stderr]     |                 ------------ first borrow later used by call
[INFO] [stderr] 636 |                     &mut self.current,
[INFO] [stderr]     |                     ----------------- first mutable borrow occurs here
[INFO] [stderr] 637 |                     &mut (**self.current).get_pointer_mut(0).next,
[INFO] [stderr]     |                          ^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0499]: cannot borrow `**next_node` as mutable more than once at a time
[INFO] [stderr]    --> src/skiplist/map.rs:155:25
[INFO] [stderr]     |
[INFO] [stderr] 153 |                     curr_node = mem::replace(
[INFO] [stderr]     |                                 ------------ first borrow later used by call
[INFO] [stderr] 154 |                         &mut next_node,
[INFO] [stderr]     |                         -------------- first mutable borrow occurs here
[INFO] [stderr] 155 |                         (**next_node).get_pointer_mut(curr_height),
[INFO] [stderr]     |                         ^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0499]: cannot borrow `**next_node` as mutable more than once at a time
[INFO] [stderr]    --> src/skiplist/map.rs:216:25
[INFO] [stderr]     |
[INFO] [stderr] 214 |                     curr_node = mem::replace(
[INFO] [stderr]     |                                 ------------ first borrow later used by call
[INFO] [stderr] 215 |                         &mut next_node,
[INFO] [stderr]     |                         -------------- first mutable borrow occurs here
[INFO] [stderr] 216 |                         (**next_node).get_pointer_mut(curr_height),
[INFO] [stderr]     |                         ^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `**next_node` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:288:25
[INFO] [stderr]     |
[INFO] [stderr] 286 |                     curr_node = mem::replace(
[INFO] [stderr]     |                                 ------------ mutable borrow later used by call
[INFO] [stderr] 287 |                         &mut next_node,
[INFO] [stderr]     |                         -------------- mutable borrow occurs here
[INFO] [stderr] 288 |                         (**next_node).get_pointer(curr_height),
[INFO] [stderr]     |                         ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0499]: cannot borrow `**next_node` as mutable more than once at a time
[INFO] [stderr]    --> src/skiplist/map.rs:332:25
[INFO] [stderr]     |
[INFO] [stderr] 330 |                     curr_node = mem::replace(
[INFO] [stderr]     |                                 ------------ first borrow later used by call
[INFO] [stderr] 331 |                         &mut next_node,
[INFO] [stderr]     |                         -------------- first mutable borrow occurs here
[INFO] [stderr] 332 |                         (**next_node).get_pointer_mut(curr_height),
[INFO] [stderr]     |                         ^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*curr_node` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:394:58
[INFO] [stderr]     |
[INFO] [stderr] 394 |                 Node::free(mem::replace(&mut curr_node, *(*curr_node).get_pointer(0)));
[INFO] [stderr]     |                            ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                            |            |
[INFO] [stderr]     |                            |            mutable borrow occurs here
[INFO] [stderr]     |                            mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `**next_node` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:426:25
[INFO] [stderr]     |
[INFO] [stderr] 424 |                     curr_node = mem::replace(
[INFO] [stderr]     |                                 ------------ mutable borrow later used by call
[INFO] [stderr] 425 |                         &mut next_node,
[INFO] [stderr]     |                         -------------- mutable borrow occurs here
[INFO] [stderr] 426 |                         (**next_node).get_pointer(curr_height),
[INFO] [stderr]     |                         ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `**next_node` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:469:25
[INFO] [stderr]     |
[INFO] [stderr] 467 |                     curr_node = mem::replace(
[INFO] [stderr]     |                                 ------------ mutable borrow later used by call
[INFO] [stderr] 468 |                         &mut next_node,
[INFO] [stderr]     |                         -------------- mutable borrow occurs here
[INFO] [stderr] 469 |                         (**next_node).get_pointer(curr_height),
[INFO] [stderr]     |                         ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `**next_node` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:535:25
[INFO] [stderr]     |
[INFO] [stderr] 533 |                     curr_node = mem::replace(
[INFO] [stderr]     |                                 ------------ mutable borrow later used by call
[INFO] [stderr] 534 |                         &mut next_node,
[INFO] [stderr]     |                         -------------- mutable borrow occurs here
[INFO] [stderr] 535 |                         (**next_node).get_pointer(curr_height),
[INFO] [stderr]     |                         ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:586:59
[INFO] [stderr]     |
[INFO] [stderr] 586 |             let left_head = mem::replace(&mut left.head, *(*left.head).get_pointer(0));
[INFO] [stderr]     |                             ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                             |            |
[INFO] [stderr]     |                             |            mutable borrow occurs here
[INFO] [stderr]     |                             mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:587:61
[INFO] [stderr]     |
[INFO] [stderr] 587 |             let right_head = mem::replace(&mut right.head, *(*right.head).get_pointer(0));
[INFO] [stderr]     |                              ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                              |            |
[INFO] [stderr]     |                              |            mutable borrow occurs here
[INFO] [stderr]     |                              mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:601:38
[INFO] [stderr]     |
[INFO] [stderr] 599 | ...                   Node::free(mem::replace(
[INFO] [stderr]     |                                  ------------ mutable borrow later used by call
[INFO] [stderr] 600 | ...                       &mut right.head,
[INFO] [stderr]     |                           --------------- mutable borrow occurs here
[INFO] [stderr] 601 | ...                       *(*right.head).get_pointer(0),
[INFO] [stderr]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:605:94
[INFO] [stderr]     |
[INFO] [stderr] 605 | ...                   cmp::Ordering::Less => next_node = mem::replace(&mut left.head, *(*left.head).get_pointer(0)),
[INFO] [stderr]     |                                                          ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                                                          |            |
[INFO] [stderr]     |                                                          |            mutable borrow occurs here
[INFO] [stderr]     |                                                          mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:606:98
[INFO] [stderr]     |
[INFO] [stderr] 606 | ...                   cmp::Ordering::Greater => next_node = mem::replace(&mut right.head, *(*right.head).get_pointer(0)),
[INFO] [stderr]     |                                                             ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                                                             |            |
[INFO] [stderr]     |                                                             |            mutable borrow occurs here
[INFO] [stderr]     |                                                             mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:609:81
[INFO] [stderr]     |
[INFO] [stderr] 609 |                     (true, false) => next_node = mem::replace(&mut right.head, *(*right.head).get_pointer(0)),
[INFO] [stderr]     |                                                  ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                                                  |            |
[INFO] [stderr]     |                                                  |            mutable borrow occurs here
[INFO] [stderr]     |                                                  mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:610:80
[INFO] [stderr]     |
[INFO] [stderr] 610 |                     (false, true) => next_node = mem::replace(&mut left.head, *(*left.head).get_pointer(0)),
[INFO] [stderr]     |                                                  ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                                                  |            |
[INFO] [stderr]     |                                                  |            mutable borrow occurs here
[INFO] [stderr]     |                                                  mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:661:59
[INFO] [stderr]     |
[INFO] [stderr] 661 |             let left_head = mem::replace(&mut left.head, *(*left.head).get_pointer(0));
[INFO] [stderr]     |                             ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                             |            |
[INFO] [stderr]     |                             |            mutable borrow occurs here
[INFO] [stderr]     |                             mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:662:61
[INFO] [stderr]     |
[INFO] [stderr] 662 |             let right_head = mem::replace(&mut right.head, *(*right.head).get_pointer(0));
[INFO] [stderr]     |                              ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                              |            |
[INFO] [stderr]     |                              |            mutable borrow occurs here
[INFO] [stderr]     |                              mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:674:75
[INFO] [stderr]     |
[INFO] [stderr] 674 | ...                   next_node = mem::replace(&mut left.head, *(*left.head).get_pointer(0));
[INFO] [stderr]     |                                   ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                                   |            |
[INFO] [stderr]     |                                   |            mutable borrow occurs here
[INFO] [stderr]     |                                   mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:675:75
[INFO] [stderr]     |
[INFO] [stderr] 675 | ...                   Node::free(mem::replace(&mut right.head, *(*right.head).get_pointer(0)));
[INFO] [stderr]     |                                  ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                                  |            |
[INFO] [stderr]     |                                  |            mutable borrow occurs here
[INFO] [stderr]     |                                  mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:680:38
[INFO] [stderr]     |
[INFO] [stderr] 678 | ...                   Node::free(mem::replace(
[INFO] [stderr]     |                                  ------------ mutable borrow later used by call
[INFO] [stderr] 679 | ...                       &mut left.head,
[INFO] [stderr]     |                           -------------- mutable borrow occurs here
[INFO] [stderr] 680 | ...                       *(*left.head).get_pointer(0),
[INFO] [stderr]     |                            ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:687:38
[INFO] [stderr]     |
[INFO] [stderr] 685 | ...                   Node::free(mem::replace(
[INFO] [stderr]     |                                  ------------ mutable borrow later used by call
[INFO] [stderr] 686 | ...                       &mut right.head,
[INFO] [stderr]     |                           --------------- mutable borrow occurs here
[INFO] [stderr] 687 | ...                       *(*right.head).get_pointer(0),
[INFO] [stderr]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:694:67
[INFO] [stderr]     |
[INFO] [stderr] 694 |                         Node::free(mem::replace(&mut right.head, *(*right.head).get_pointer(0)));
[INFO] [stderr]     |                                    ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                                    |            |
[INFO] [stderr]     |                                    |            mutable borrow occurs here
[INFO] [stderr]     |                                    mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:698:66
[INFO] [stderr]     |
[INFO] [stderr] 698 |                         Node::free(mem::replace(&mut left.head, *(*left.head).get_pointer(0)));
[INFO] [stderr]     |                                    ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                                    |            |
[INFO] [stderr]     |                                    |            mutable borrow occurs here
[INFO] [stderr]     |                                    mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:730:59
[INFO] [stderr]     |
[INFO] [stderr] 730 |             let left_head = mem::replace(&mut left.head, *(*left.head).get_pointer(0));
[INFO] [stderr]     |                             ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                             |            |
[INFO] [stderr]     |                             |            mutable borrow occurs here
[INFO] [stderr]     |                             mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:731:61
[INFO] [stderr]     |
[INFO] [stderr] 731 |             let right_head = mem::replace(&mut right.head, *(*right.head).get_pointer(0));
[INFO] [stderr]     |                              ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                              |            |
[INFO] [stderr]     |                              |            mutable borrow occurs here
[INFO] [stderr]     |                              mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:745:38
[INFO] [stderr]     |
[INFO] [stderr] 743 | ...                   Node::free(mem::replace(
[INFO] [stderr]     |                                  ------------ mutable borrow later used by call
[INFO] [stderr] 744 | ...                       &mut left.head,
[INFO] [stderr]     |                           -------------- mutable borrow occurs here
[INFO] [stderr] 745 | ...                       *(*left.head).get_pointer(0),
[INFO] [stderr]     |                            ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:749:38
[INFO] [stderr]     |
[INFO] [stderr] 747 | ...                   Node::free(mem::replace(
[INFO] [stderr]     |                                  ------------ mutable borrow later used by call
[INFO] [stderr] 748 | ...                       &mut right.head,
[INFO] [stderr]     |                           --------------- mutable borrow occurs here
[INFO] [stderr] 749 | ...                       *(*right.head).get_pointer(0),
[INFO] [stderr]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:753:94
[INFO] [stderr]     |
[INFO] [stderr] 753 | ...                   cmp::Ordering::Less => next_node = mem::replace(&mut left.head, *(*left.head).get_pointer(0)),
[INFO] [stderr]     |                                                          ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                                                          |            |
[INFO] [stderr]     |                                                          |            mutable borrow occurs here
[INFO] [stderr]     |                                                          mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:758:42
[INFO] [stderr]     |
[INFO] [stderr] 756 | ...                   next_node = mem::replace(
[INFO] [stderr]     |                                   ------------ mutable borrow later used by call
[INFO] [stderr] 757 | ...                       &mut right.head,
[INFO] [stderr]     |                           --------------- mutable borrow occurs here
[INFO] [stderr] 758 | ...                       *(*right.head).get_pointer(0),
[INFO] [stderr]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:763:42
[INFO] [stderr]     |
[INFO] [stderr] 761 | ...                   Node::free(mem::replace(
[INFO] [stderr]     |                                  ------------ mutable borrow later used by call
[INFO] [stderr] 762 | ...                       &mut right.head,
[INFO] [stderr]     |                           --------------- mutable borrow occurs here
[INFO] [stderr] 763 | ...                       *(*right.head).get_pointer(0),
[INFO] [stderr]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:774:34
[INFO] [stderr]     |
[INFO] [stderr] 772 | ...                   next_node = mem::replace(
[INFO] [stderr]     |                                   ------------ mutable borrow later used by call
[INFO] [stderr] 773 | ...                       &mut right.head,
[INFO] [stderr]     |                           --------------- mutable borrow occurs here
[INFO] [stderr] 774 | ...                       *(*right.head).get_pointer(0),
[INFO] [stderr]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:779:34
[INFO] [stderr]     |
[INFO] [stderr] 777 | ...                   Node::free(mem::replace(
[INFO] [stderr]     |                                  ------------ mutable borrow later used by call
[INFO] [stderr] 778 | ...                       &mut right.head,
[INFO] [stderr]     |                           --------------- mutable borrow occurs here
[INFO] [stderr] 779 | ...                       *(*right.head).get_pointer(0),
[INFO] [stderr]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:787:30
[INFO] [stderr]     |
[INFO] [stderr] 785 |                         next_node = mem::replace(
[INFO] [stderr]     |                                     ------------ mutable borrow later used by call
[INFO] [stderr] 786 |                             &mut right.head,
[INFO] [stderr]     |                             --------------- mutable borrow occurs here
[INFO] [stderr] 787 |                             *(*right.head).get_pointer(0),
[INFO] [stderr]     |                              ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*self.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:920:60
[INFO] [stderr]     |
[INFO] [stderr] 920 |             Node::deallocate(mem::replace(&mut self.head, *(*self.head).get_pointer(0)));
[INFO] [stderr]     |                              ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                              |            |
[INFO] [stderr]     |                              |            mutable borrow occurs here
[INFO] [stderr]     |                              mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*self.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:922:58
[INFO] [stderr]     |
[INFO] [stderr] 922 |                 Node::free(mem::replace(&mut self.head, *(*self.head).get_pointer(0)));
[INFO] [stderr]     |                            ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                            |            |
[INFO] [stderr]     |                            |            mutable borrow occurs here
[INFO] [stderr]     |                            mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*self.current` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:987:22
[INFO] [stderr]     |
[INFO] [stderr] 985 |                 Node::deallocate(mem::replace(
[INFO] [stderr]     |                                  ------------ mutable borrow later used by call
[INFO] [stderr] 986 |                     &mut self.current,
[INFO] [stderr]     |                     ----------------- mutable borrow occurs here
[INFO] [stderr] 987 |                     *(*self.current).get_pointer(0),
[INFO] [stderr]     |                      ^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*self.current` as immutable because it is also borrowed as mutable
[INFO] [stderr]     --> src/skiplist/map.rs:1002:22
[INFO] [stderr]      |
[INFO] [stderr] 1000 |                 Node::free(mem::replace(
[INFO] [stderr]      |                            ------------ mutable borrow later used by call
[INFO] [stderr] 1001 |                     &mut self.current,
[INFO] [stderr]      |                     ----------------- mutable borrow occurs here
[INFO] [stderr] 1002 |                     *(*self.current).get_pointer(0),
[INFO] [stderr]      |                      ^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `**self.current` as immutable because it is also borrowed as mutable
[INFO] [stderr]     --> src/skiplist/map.rs:1034:51
[INFO] [stderr]      |
[INFO] [stderr] 1034 |                 mem::replace(&mut self.current, &*(**self.current).get_pointer(0));
[INFO] [stderr]      |                 ------------ -----------------    ^^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]      |                 |            |
[INFO] [stderr]      |                 |            mutable borrow occurs here
[INFO] [stderr]      |                 mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0499]: cannot borrow `**self.current` as mutable more than once at a time
[INFO] [stderr]     --> src/skiplist/map.rs:1065:55
[INFO] [stderr]      |
[INFO] [stderr] 1065 |                 mem::replace(&mut self.current, &mut *(**self.current).get_pointer_mut(0));
[INFO] [stderr]      |                 ------------ -----------------        ^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stderr]      |                 |            |
[INFO] [stderr]      |                 |            first mutable borrow occurs here
[INFO] [stderr]      |                 first borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/treap/implicit_tree.rs:33:21
[INFO] [stderr]    |
[INFO] [stderr] 33 |                 let mut res = split(&mut node.left, index, left_inclusive);
[INFO] [stderr]    |                     ----^^^
[INFO] [stderr]    |                     |
[INFO] [stderr]    |                     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/treap/tree.rs:35:17
[INFO] [stderr]    |
[INFO] [stderr] 35 |             let mut ret;
[INFO] [stderr]    |                 ----^^^
[INFO] [stderr]    |                 |
[INFO] [stderr]    |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/treap/tree.rs:38:25
[INFO] [stderr]    |
[INFO] [stderr] 38 |                     let mut res = split(&mut node.left, key);
[INFO] [stderr]    |                         ----^^^
[INFO] [stderr]    |                         |
[INFO] [stderr]    |                         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] error: aborting due to 51 previous errors
[INFO] [stderr] 
[INFO] [stderr] Some errors have detailed explanations: E0499, E0502.
[INFO] [stderr] For more information about an error, try `rustc --explain E0499`.
[INFO] [stderr] error: could not compile `extended-collections`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/arena.rs:93:21
[INFO] [stderr]    |
[INFO] [stderr] 93 |                 let mut last_chunk = &mut self.chunks[chunk_count - 1];
[INFO] [stderr]    |                     ----^^^^^^^^^^
[INFO] [stderr]    |                     |
[INFO] [stderr]    |                     help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/bp_tree/map.rs:399:30
[INFO] [stderr]     |
[INFO] [stderr] 399 |                         let (mut removed_key, removed_pointer) = sibling_internal_node.remove_at(0, false);
[INFO] [stderr]     |                              ----^^^^^^^^^^^
[INFO] [stderr]     |                              |
[INFO] [stderr]     |                              help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/bp_tree/map.rs:410:30
[INFO] [stderr]     |
[INFO] [stderr] 410 |                         let (mut removed_key, removed_pointer) = sibling_internal_node.remove_at(remove_index, true);
[INFO] [stderr]     |                              ----^^^^^^^^^^^
[INFO] [stderr]     |                              |
[INFO] [stderr]     |                              help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/lsm_tree/compaction/leveled.rs:357:17
[INFO] [stderr]     |
[INFO] [stderr] 357 |             let mut should_merge = |metadata_snapshot: &LeveledMetadata<T, U>, index: usize| {
[INFO] [stderr]     |                 ----^^^^^^^^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/lsm_tree/compaction/leveled.rs:402:21
[INFO] [stderr]     |
[INFO] [stderr] 402 |                 let mut compaction_iter = LeveledIter::new(
[INFO] [stderr]     |                     ----^^^^^^^^^^^^^^^
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] error[E0499]: cannot borrow `*tree` as mutable more than once at a time
[INFO] [stderr]   --> src/radix/node.rs:39:22
[INFO] [stderr]    |
[INFO] [stderr] 36 |           fn get_mut_inner<T>(tree: &mut Tree<T>, byte: u8) -> &mut Tree<T> {
[INFO] [stderr]    |                                     - let's call the lifetime of this reference `'1`
[INFO] [stderr] 37 | /             match tree {
[INFO] [stderr] 38 | |                 Some(ref mut node) if node.key[0] != byte => get_mut_inner(&mut node.next, byte),
[INFO] [stderr]    | |                      ------------ first mutable borrow occurs here
[INFO] [stderr] 39 | |                 _ => tree,
[INFO] [stderr]    | |                      ^^^^ second mutable borrow occurs here
[INFO] [stderr] 40 | |             }
[INFO] [stderr]    | |_____________- returning this value requires that `tree.0` is borrowed for `'1`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/radix/tree.rs:18:17
[INFO] [stderr]    |
[INFO] [stderr] 18 |             let mut child = Node::new(key.split_at(split_index).1.to_vec(), Some(value));
[INFO] [stderr]    |                 ----^^^^^
[INFO] [stderr]    |                 |
[INFO] [stderr]    |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] error[E0499]: cannot borrow `*next_link.next` as mutable more than once at a time
[INFO] [stderr]    --> src/skiplist/list.rs:157:25
[INFO] [stderr]     |
[INFO] [stderr] 155 |                     curr_node = &mut mem::replace(
[INFO] [stderr]     |                                      ------------ first borrow later used by call
[INFO] [stderr] 156 |                         &mut next_link,
[INFO] [stderr]     |                         -------------- first mutable borrow occurs here
[INFO] [stderr] 157 |                         (*next_link.next).get_pointer_mut(curr_height),
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0499]: cannot borrow `*next_link.next` as mutable more than once at a time
[INFO] [stderr]    --> src/skiplist/list.rs:210:25
[INFO] [stderr]     |
[INFO] [stderr] 208 |                     curr_node = &mut mem::replace(
[INFO] [stderr]     |                                      ------------ first borrow later used by call
[INFO] [stderr] 209 |                         &mut next_link,
[INFO] [stderr]     |                         -------------- first mutable borrow occurs here
[INFO] [stderr] 210 |                         (*next_link.next).get_pointer_mut(curr_height),
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*next_link.next` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/list.rs:325:25
[INFO] [stderr]     |
[INFO] [stderr] 323 |                     curr_node = &mem::replace(
[INFO] [stderr]     |                                  ------------ mutable borrow later used by call
[INFO] [stderr] 324 |                         &mut next_link,
[INFO] [stderr]     |                         -------------- mutable borrow occurs here
[INFO] [stderr] 325 |                         (*next_link.next).get_pointer(curr_height),
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0499]: cannot borrow `*next_link.next` as mutable more than once at a time
[INFO] [stderr]    --> src/skiplist/list.rs:366:25
[INFO] [stderr]     |
[INFO] [stderr] 364 |                     curr_node = &mut mem::replace(
[INFO] [stderr]     |                                      ------------ first borrow later used by call
[INFO] [stderr] 365 |                         &mut next_link,
[INFO] [stderr]     |                         -------------- first mutable borrow occurs here
[INFO] [stderr] 366 |                         (*next_link.next).get_pointer_mut(curr_height),
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*curr_node` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/list.rs:430:21
[INFO] [stderr]     |
[INFO] [stderr] 428 |                 Node::free(mem::replace(
[INFO] [stderr]     |                            ------------ mutable borrow later used by call
[INFO] [stderr] 429 |                     &mut curr_node,
[INFO] [stderr]     |                     -------------- mutable borrow occurs here
[INFO] [stderr] 430 |                     (*curr_node).get_pointer(0).next,
[INFO] [stderr]     |                     ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*self.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/list.rs:493:17
[INFO] [stderr]     |
[INFO] [stderr] 491 |             Node::deallocate(mem::replace(
[INFO] [stderr]     |                              ------------ mutable borrow later used by call
[INFO] [stderr] 492 |                 &mut self.head,
[INFO] [stderr]     |                 -------------- mutable borrow occurs here
[INFO] [stderr] 493 |                 (*self.head).get_pointer(0).next,
[INFO] [stderr]     |                 ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*self.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/list.rs:498:21
[INFO] [stderr]     |
[INFO] [stderr] 496 |                 Node::free(mem::replace(
[INFO] [stderr]     |                            ------------ mutable borrow later used by call
[INFO] [stderr] 497 |                     &mut self.head,
[INFO] [stderr]     |                     -------------- mutable borrow occurs here
[INFO] [stderr] 498 |                     (*self.head).get_pointer(0).next,
[INFO] [stderr]     |                     ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*self.current` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/list.rs:562:21
[INFO] [stderr]     |
[INFO] [stderr] 560 |                 Node::deallocate(mem::replace(
[INFO] [stderr]     |                                  ------------ mutable borrow later used by call
[INFO] [stderr] 561 |                     &mut self.current,
[INFO] [stderr]     |                     ----------------- mutable borrow occurs here
[INFO] [stderr] 562 |                     (*self.current).get_pointer(0).next,
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*self.current` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/list.rs:577:21
[INFO] [stderr]     |
[INFO] [stderr] 575 |                 Node::free(mem::replace(
[INFO] [stderr]     |                            ------------ mutable borrow later used by call
[INFO] [stderr] 576 |                     &mut self.current,
[INFO] [stderr]     |                     ----------------- mutable borrow occurs here
[INFO] [stderr] 577 |                     (*self.current).get_pointer(0).next,
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `**self.current` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/list.rs:606:50
[INFO] [stderr]     |
[INFO] [stderr] 606 |                 mem::replace(&mut self.current, &(**self.current).get_pointer(0).next);
[INFO] [stderr]     |                 ------------ -----------------   ^^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                 |            |
[INFO] [stderr]     |                 |            mutable borrow occurs here
[INFO] [stderr]     |                 mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0499]: cannot borrow `**self.current` as mutable more than once at a time
[INFO] [stderr]    --> src/skiplist/list.rs:637:26
[INFO] [stderr]     |
[INFO] [stderr] 635 |                 mem::replace(
[INFO] [stderr]     |                 ------------ first borrow later used by call
[INFO] [stderr] 636 |                     &mut self.current,
[INFO] [stderr]     |                     ----------------- first mutable borrow occurs here
[INFO] [stderr] 637 |                     &mut (**self.current).get_pointer_mut(0).next,
[INFO] [stderr]     |                          ^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0499]: cannot borrow `*next_link.next` as mutable more than once at a time
[INFO] [stderr]    --> src/skiplist/list.rs:714:21
[INFO] [stderr]     |
[INFO] [stderr] 712 |                 curr_node = &mut mem::replace(
[INFO] [stderr]     |                                  ------------ first borrow later used by call
[INFO] [stderr] 713 |                     &mut next_link,
[INFO] [stderr]     |                     -------------- first mutable borrow occurs here
[INFO] [stderr] 714 |                     (*next_link.next).get_pointer_mut(0),
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0499]: cannot borrow `*next_link.next` as mutable more than once at a time
[INFO] [stderr]    --> src/skiplist/list.rs:726:25
[INFO] [stderr]     |
[INFO] [stderr] 724 |                     curr_node = &mut mem::replace(
[INFO] [stderr]     |                                      ------------ first borrow later used by call
[INFO] [stderr] 725 |                         &mut next_link,
[INFO] [stderr]     |                         -------------- first mutable borrow occurs here
[INFO] [stderr] 726 |                         (*next_link.next).get_pointer_mut(0),
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0499]: cannot borrow `**next_node` as mutable more than once at a time
[INFO] [stderr]    --> src/skiplist/map.rs:155:25
[INFO] [stderr]     |
[INFO] [stderr] 153 |                     curr_node = mem::replace(
[INFO] [stderr]     |                                 ------------ first borrow later used by call
[INFO] [stderr] 154 |                         &mut next_node,
[INFO] [stderr]     |                         -------------- first mutable borrow occurs here
[INFO] [stderr] 155 |                         (**next_node).get_pointer_mut(curr_height),
[INFO] [stderr]     |                         ^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0499]: cannot borrow `**next_node` as mutable more than once at a time
[INFO] [stderr]    --> src/skiplist/map.rs:216:25
[INFO] [stderr]     |
[INFO] [stderr] 214 |                     curr_node = mem::replace(
[INFO] [stderr]     |                                 ------------ first borrow later used by call
[INFO] [stderr] 215 |                         &mut next_node,
[INFO] [stderr]     |                         -------------- first mutable borrow occurs here
[INFO] [stderr] 216 |                         (**next_node).get_pointer_mut(curr_height),
[INFO] [stderr]     |                         ^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `**next_node` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:288:25
[INFO] [stderr]     |
[INFO] [stderr] 286 |                     curr_node = mem::replace(
[INFO] [stderr]     |                                 ------------ mutable borrow later used by call
[INFO] [stderr] 287 |                         &mut next_node,
[INFO] [stderr]     |                         -------------- mutable borrow occurs here
[INFO] [stderr] 288 |                         (**next_node).get_pointer(curr_height),
[INFO] [stderr]     |                         ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0499]: cannot borrow `**next_node` as mutable more than once at a time
[INFO] [stderr]    --> src/skiplist/map.rs:332:25
[INFO] [stderr]     |
[INFO] [stderr] 330 |                     curr_node = mem::replace(
[INFO] [stderr]     |                                 ------------ first borrow later used by call
[INFO] [stderr] 331 |                         &mut next_node,
[INFO] [stderr]     |                         -------------- first mutable borrow occurs here
[INFO] [stderr] 332 |                         (**next_node).get_pointer_mut(curr_height),
[INFO] [stderr]     |                         ^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*curr_node` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:394:58
[INFO] [stderr]     |
[INFO] [stderr] 394 |                 Node::free(mem::replace(&mut curr_node, *(*curr_node).get_pointer(0)));
[INFO] [stderr]     |                            ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                            |            |
[INFO] [stderr]     |                            |            mutable borrow occurs here
[INFO] [stderr]     |                            mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `**next_node` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:426:25
[INFO] [stderr]     |
[INFO] [stderr] 424 |                     curr_node = mem::replace(
[INFO] [stderr]     |                                 ------------ mutable borrow later used by call
[INFO] [stderr] 425 |                         &mut next_node,
[INFO] [stderr]     |                         -------------- mutable borrow occurs here
[INFO] [stderr] 426 |                         (**next_node).get_pointer(curr_height),
[INFO] [stderr]     |                         ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `**next_node` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:469:25
[INFO] [stderr]     |
[INFO] [stderr] 467 |                     curr_node = mem::replace(
[INFO] [stderr]     |                                 ------------ mutable borrow later used by call
[INFO] [stderr] 468 |                         &mut next_node,
[INFO] [stderr]     |                         -------------- mutable borrow occurs here
[INFO] [stderr] 469 |                         (**next_node).get_pointer(curr_height),
[INFO] [stderr]     |                         ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `**next_node` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:535:25
[INFO] [stderr]     |
[INFO] [stderr] 533 |                     curr_node = mem::replace(
[INFO] [stderr]     |                                 ------------ mutable borrow later used by call
[INFO] [stderr] 534 |                         &mut next_node,
[INFO] [stderr]     |                         -------------- mutable borrow occurs here
[INFO] [stderr] 535 |                         (**next_node).get_pointer(curr_height),
[INFO] [stderr]     |                         ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:586:59
[INFO] [stderr]     |
[INFO] [stderr] 586 |             let left_head = mem::replace(&mut left.head, *(*left.head).get_pointer(0));
[INFO] [stderr]     |                             ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                             |            |
[INFO] [stderr]     |                             |            mutable borrow occurs here
[INFO] [stderr]     |                             mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:587:61
[INFO] [stderr]     |
[INFO] [stderr] 587 |             let right_head = mem::replace(&mut right.head, *(*right.head).get_pointer(0));
[INFO] [stderr]     |                              ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                              |            |
[INFO] [stderr]     |                              |            mutable borrow occurs here
[INFO] [stderr]     |                              mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:601:38
[INFO] [stderr]     |
[INFO] [stderr] 599 | ...                   Node::free(mem::replace(
[INFO] [stderr]     |                                  ------------ mutable borrow later used by call
[INFO] [stderr] 600 | ...                       &mut right.head,
[INFO] [stderr]     |                           --------------- mutable borrow occurs here
[INFO] [stderr] 601 | ...                       *(*right.head).get_pointer(0),
[INFO] [stderr]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:605:94
[INFO] [stderr]     |
[INFO] [stderr] 605 | ...                   cmp::Ordering::Less => next_node = mem::replace(&mut left.head, *(*left.head).get_pointer(0)),
[INFO] [stderr]     |                                                          ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                                                          |            |
[INFO] [stderr]     |                                                          |            mutable borrow occurs here
[INFO] [stderr]     |                                                          mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:606:98
[INFO] [stderr]     |
[INFO] [stderr] 606 | ...                   cmp::Ordering::Greater => next_node = mem::replace(&mut right.head, *(*right.head).get_pointer(0)),
[INFO] [stderr]     |                                                             ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                                                             |            |
[INFO] [stderr]     |                                                             |            mutable borrow occurs here
[INFO] [stderr]     |                                                             mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:609:81
[INFO] [stderr]     |
[INFO] [stderr] 609 |                     (true, false) => next_node = mem::replace(&mut right.head, *(*right.head).get_pointer(0)),
[INFO] [stderr]     |                                                  ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                                                  |            |
[INFO] [stderr]     |                                                  |            mutable borrow occurs here
[INFO] [stderr]     |                                                  mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:610:80
[INFO] [stderr]     |
[INFO] [stderr] 610 |                     (false, true) => next_node = mem::replace(&mut left.head, *(*left.head).get_pointer(0)),
[INFO] [stderr]     |                                                  ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                                                  |            |
[INFO] [stderr]     |                                                  |            mutable borrow occurs here
[INFO] [stderr]     |                                                  mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:661:59
[INFO] [stderr]     |
[INFO] [stderr] 661 |             let left_head = mem::replace(&mut left.head, *(*left.head).get_pointer(0));
[INFO] [stderr]     |                             ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                             |            |
[INFO] [stderr]     |                             |            mutable borrow occurs here
[INFO] [stderr]     |                             mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:662:61
[INFO] [stderr]     |
[INFO] [stderr] 662 |             let right_head = mem::replace(&mut right.head, *(*right.head).get_pointer(0));
[INFO] [stderr]     |                              ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                              |            |
[INFO] [stderr]     |                              |            mutable borrow occurs here
[INFO] [stderr]     |                              mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:674:75
[INFO] [stderr]     |
[INFO] [stderr] 674 | ...                   next_node = mem::replace(&mut left.head, *(*left.head).get_pointer(0));
[INFO] [stderr]     |                                   ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                                   |            |
[INFO] [stderr]     |                                   |            mutable borrow occurs here
[INFO] [stderr]     |                                   mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:675:75
[INFO] [stderr]     |
[INFO] [stderr] 675 | ...                   Node::free(mem::replace(&mut right.head, *(*right.head).get_pointer(0)));
[INFO] [stderr]     |                                  ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                                  |            |
[INFO] [stderr]     |                                  |            mutable borrow occurs here
[INFO] [stderr]     |                                  mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:680:38
[INFO] [stderr]     |
[INFO] [stderr] 678 | ...                   Node::free(mem::replace(
[INFO] [stderr]     |                                  ------------ mutable borrow later used by call
[INFO] [stderr] 679 | ...                       &mut left.head,
[INFO] [stderr]     |                           -------------- mutable borrow occurs here
[INFO] [stderr] 680 | ...                       *(*left.head).get_pointer(0),
[INFO] [stderr]     |                            ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:687:38
[INFO] [stderr]     |
[INFO] [stderr] 685 | ...                   Node::free(mem::replace(
[INFO] [stderr]     |                                  ------------ mutable borrow later used by call
[INFO] [stderr] 686 | ...                       &mut right.head,
[INFO] [stderr]     |                           --------------- mutable borrow occurs here
[INFO] [stderr] 687 | ...                       *(*right.head).get_pointer(0),
[INFO] [stderr]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:694:67
[INFO] [stderr]     |
[INFO] [stderr] 694 |                         Node::free(mem::replace(&mut right.head, *(*right.head).get_pointer(0)));
[INFO] [stderr]     |                                    ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                                    |            |
[INFO] [stderr]     |                                    |            mutable borrow occurs here
[INFO] [stderr]     |                                    mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:698:66
[INFO] [stderr]     |
[INFO] [stderr] 698 |                         Node::free(mem::replace(&mut left.head, *(*left.head).get_pointer(0)));
[INFO] [stderr]     |                                    ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                                    |            |
[INFO] [stderr]     |                                    |            mutable borrow occurs here
[INFO] [stderr]     |                                    mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:730:59
[INFO] [stderr]     |
[INFO] [stderr] 730 |             let left_head = mem::replace(&mut left.head, *(*left.head).get_pointer(0));
[INFO] [stderr]     |                             ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                             |            |
[INFO] [stderr]     |                             |            mutable borrow occurs here
[INFO] [stderr]     |                             mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:731:61
[INFO] [stderr]     |
[INFO] [stderr] 731 |             let right_head = mem::replace(&mut right.head, *(*right.head).get_pointer(0));
[INFO] [stderr]     |                              ------------ ---------------   ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                              |            |
[INFO] [stderr]     |                              |            mutable borrow occurs here
[INFO] [stderr]     |                              mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:745:38
[INFO] [stderr]     |
[INFO] [stderr] 743 | ...                   Node::free(mem::replace(
[INFO] [stderr]     |                                  ------------ mutable borrow later used by call
[INFO] [stderr] 744 | ...                       &mut left.head,
[INFO] [stderr]     |                           -------------- mutable borrow occurs here
[INFO] [stderr] 745 | ...                       *(*left.head).get_pointer(0),
[INFO] [stderr]     |                            ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:749:38
[INFO] [stderr]     |
[INFO] [stderr] 747 | ...                   Node::free(mem::replace(
[INFO] [stderr]     |                                  ------------ mutable borrow later used by call
[INFO] [stderr] 748 | ...                       &mut right.head,
[INFO] [stderr]     |                           --------------- mutable borrow occurs here
[INFO] [stderr] 749 | ...                       *(*right.head).get_pointer(0),
[INFO] [stderr]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*left.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:753:94
[INFO] [stderr]     |
[INFO] [stderr] 753 | ...                   cmp::Ordering::Less => next_node = mem::replace(&mut left.head, *(*left.head).get_pointer(0)),
[INFO] [stderr]     |                                                          ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                                                          |            |
[INFO] [stderr]     |                                                          |            mutable borrow occurs here
[INFO] [stderr]     |                                                          mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:758:42
[INFO] [stderr]     |
[INFO] [stderr] 756 | ...                   next_node = mem::replace(
[INFO] [stderr]     |                                   ------------ mutable borrow later used by call
[INFO] [stderr] 757 | ...                       &mut right.head,
[INFO] [stderr]     |                           --------------- mutable borrow occurs here
[INFO] [stderr] 758 | ...                       *(*right.head).get_pointer(0),
[INFO] [stderr]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:763:42
[INFO] [stderr]     |
[INFO] [stderr] 761 | ...                   Node::free(mem::replace(
[INFO] [stderr]     |                                  ------------ mutable borrow later used by call
[INFO] [stderr] 762 | ...                       &mut right.head,
[INFO] [stderr]     |                           --------------- mutable borrow occurs here
[INFO] [stderr] 763 | ...                       *(*right.head).get_pointer(0),
[INFO] [stderr]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:774:34
[INFO] [stderr]     |
[INFO] [stderr] 772 | ...                   next_node = mem::replace(
[INFO] [stderr]     |                                   ------------ mutable borrow later used by call
[INFO] [stderr] 773 | ...                       &mut right.head,
[INFO] [stderr]     |                           --------------- mutable borrow occurs here
[INFO] [stderr] 774 | ...                       *(*right.head).get_pointer(0),
[INFO] [stderr]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:779:34
[INFO] [stderr]     |
[INFO] [stderr] 777 | ...                   Node::free(mem::replace(
[INFO] [stderr]     |                                  ------------ mutable borrow later used by call
[INFO] [stderr] 778 | ...                       &mut right.head,
[INFO] [stderr]     |                           --------------- mutable borrow occurs here
[INFO] [stderr] 779 | ...                       *(*right.head).get_pointer(0),
[INFO] [stderr]     |                            ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*right.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:787:30
[INFO] [stderr]     |
[INFO] [stderr] 785 |                         next_node = mem::replace(
[INFO] [stderr]     |                                     ------------ mutable borrow later used by call
[INFO] [stderr] 786 |                             &mut right.head,
[INFO] [stderr]     |                             --------------- mutable borrow occurs here
[INFO] [stderr] 787 |                             *(*right.head).get_pointer(0),
[INFO] [stderr]     |                              ^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*self.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:920:60
[INFO] [stderr]     |
[INFO] [stderr] 920 |             Node::deallocate(mem::replace(&mut self.head, *(*self.head).get_pointer(0)));
[INFO] [stderr]     |                              ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                              |            |
[INFO] [stderr]     |                              |            mutable borrow occurs here
[INFO] [stderr]     |                              mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*self.head` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:922:58
[INFO] [stderr]     |
[INFO] [stderr] 922 |                 Node::free(mem::replace(&mut self.head, *(*self.head).get_pointer(0)));
[INFO] [stderr]     |                            ------------ --------------   ^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]     |                            |            |
[INFO] [stderr]     |                            |            mutable borrow occurs here
[INFO] [stderr]     |                            mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*self.current` as immutable because it is also borrowed as mutable
[INFO] [stderr]    --> src/skiplist/map.rs:987:22
[INFO] [stderr]     |
[INFO] [stderr] 985 |                 Node::deallocate(mem::replace(
[INFO] [stderr]     |                                  ------------ mutable borrow later used by call
[INFO] [stderr] 986 |                     &mut self.current,
[INFO] [stderr]     |                     ----------------- mutable borrow occurs here
[INFO] [stderr] 987 |                     *(*self.current).get_pointer(0),
[INFO] [stderr]     |                      ^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `*self.current` as immutable because it is also borrowed as mutable
[INFO] [stderr]     --> src/skiplist/map.rs:1002:22
[INFO] [stderr]      |
[INFO] [stderr] 1000 |                 Node::free(mem::replace(
[INFO] [stderr]      |                            ------------ mutable borrow later used by call
[INFO] [stderr] 1001 |                     &mut self.current,
[INFO] [stderr]      |                     ----------------- mutable borrow occurs here
[INFO] [stderr] 1002 |                     *(*self.current).get_pointer(0),
[INFO] [stderr]      |                      ^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr] 
[INFO] [stderr] error[E0502]: cannot borrow `**self.current` as immutable because it is also borrowed as mutable
[INFO] [stderr]     --> src/skiplist/map.rs:1034:51
[INFO] [stderr]      |
[INFO] [stderr] 1034 |                 mem::replace(&mut self.current, &*(**self.current).get_pointer(0));
[INFO] [stderr]      |                 ------------ -----------------    ^^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stderr]      |                 |            |
[INFO] [stderr]      |                 |            mutable borrow occurs here
[INFO] [stderr]      |                 mutable borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] error[E0499]: cannot borrow `**self.current` as mutable more than once at a time
[INFO] [stderr]     --> src/skiplist/map.rs:1065:55
[INFO] [stderr]      |
[INFO] [stderr] 1065 |                 mem::replace(&mut self.current, &mut *(**self.current).get_pointer_mut(0));
[INFO] [stderr]      |                 ------------ -----------------        ^^^^^^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stderr]      |                 |            |
[INFO] [stderr]      |                 |            first mutable borrow occurs here
[INFO] [stderr]      |                 first borrow later used by call
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/treap/implicit_tree.rs:33:21
[INFO] [stderr]    |
[INFO] [stderr] 33 |                 let mut res = split(&mut node.left, index, left_inclusive);
[INFO] [stderr]    |                     ----^^^
[INFO] [stderr]    |                     |
[INFO] [stderr]    |                     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/treap/tree.rs:35:17
[INFO] [stderr]    |
[INFO] [stderr] 35 |             let mut ret;
[INFO] [stderr]    |                 ----^^^
[INFO] [stderr]    |                 |
[INFO] [stderr]    |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/treap/tree.rs:38:25
[INFO] [stderr]    |
[INFO] [stderr] 38 |                     let mut res = split(&mut node.left, key);
[INFO] [stderr]    |                         ----^^^
[INFO] [stderr]    |                         |
[INFO] [stderr]    |                         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] error: aborting due to 53 previous errors
[INFO] [stderr] 
[INFO] [stderr] Some errors have detailed explanations: E0499, E0502.
[INFO] [stderr] For more information about an error, try `rustc --explain E0499`.
[INFO] [stderr] error: could not compile `extended-collections`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] running `"docker" "inspect" "a1eac3bf6fa7d5c63350056560023858e63752e2f0a40d6deccd833e39053ed4"`
[INFO] running `"docker" "rm" "-f" "a1eac3bf6fa7d5c63350056560023858e63752e2f0a40d6deccd833e39053ed4"`
[INFO] [stdout] a1eac3bf6fa7d5c63350056560023858e63752e2f0a40d6deccd833e39053ed4
