[INFO] cloning repository https://github.com/esdras-santos/data_structures_rust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/esdras-santos/data_structures_rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fesdras-santos%2Fdata_structures_rust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fesdras-santos%2Fdata_structures_rust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] cd0cf05dc09efb7051973e1080b99e896cba9ea2 [INFO] testing esdras-santos/data_structures_rust against 1.60.0 for beta-1.61-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fesdras-santos%2Fdata_structures_rust" "/workspace/builds/worker-5/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/esdras-santos/data_structures_rust on toolchain 1.60.0 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.60.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/esdras-santos/data_structures_rust [INFO] finished tweaking git repo https://github.com/esdras-santos/data_structures_rust [INFO] tweaked toml for git repo https://github.com/esdras-santos/data_structures_rust written to /workspace/builds/worker-5/source/Cargo.toml [INFO] crate git repo https://github.com/esdras-santos/data_structures_rust already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.60.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:eaef2f80f755933c374d2ae5edccceec0c1312ceb8a4e0b6404e8ab76561e1e5" "/opt/rustwide/cargo-home/bin/cargo" "+1.60.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] cef5ba80cbb27a8c9f8f654c7629ea8e9a96a1cadc3ee40a0b899859c987fa2e [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "cef5ba80cbb27a8c9f8f654c7629ea8e9a96a1cadc3ee40a0b899859c987fa2e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "cef5ba80cbb27a8c9f8f654c7629ea8e9a96a1cadc3ee40a0b899859c987fa2e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "cef5ba80cbb27a8c9f8f654c7629ea8e9a96a1cadc3ee40a0b899859c987fa2e", kill_on_drop: false }` [INFO] [stdout] cef5ba80cbb27a8c9f8f654c7629ea8e9a96a1cadc3ee40a0b899859c987fa2e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:eaef2f80f755933c374d2ae5edccceec0c1312ceb8a4e0b6404e8ab76561e1e5" "/opt/rustwide/cargo-home/bin/cargo" "+1.60.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] bd8a60f8c8728cfcd9ea5aa1c1d50e431cfdb90b4bc0aa134025d2788a846d67 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "bd8a60f8c8728cfcd9ea5aa1c1d50e431cfdb90b4bc0aa134025d2788a846d67", kill_on_drop: false }` [INFO] [stderr] Compiling data_structures v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: denote infinite loops with `loop { ... }` [INFO] [stdout] --> src/structures/priority_queue.rs:90:9 [INFO] [stdout] | [INFO] [stdout] 90 | while true{ [INFO] [stdout] | ^^^^^^^^^^ help: use `loop` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(while_true)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `heap` [INFO] [stdout] --> src/structures/priority_queue.rs:17:17 [INFO] [stdout] | [INFO] [stdout] 17 | let heap: Vec = Vec::with_capacity(elems.as_ref().unwrap().len()); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_heap` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `node` is never read [INFO] [stdout] --> src/structures/binary_search_tree.rs:85:17 [INFO] [stdout] | [INFO] [stdout] 85 | node = &None; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `node` is never read [INFO] [stdout] --> src/structures/binary_search_tree.rs:90:17 [INFO] [stdout] | [INFO] [stdout] 90 | node = &None; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/structures/union_find.rs:33:17 [INFO] [stdout] | [INFO] [stdout] 33 | let mut next = self.id[p as usize]; [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `self.root` which is behind a mutable reference [INFO] [stdout] --> src/structures/binary_search_tree.rs:37:39 [INFO] [stdout] | [INFO] [stdout] 37 | self.root = self.add_node(self.root ,elem); [INFO] [stdout] | ^^^^^^^^^ move occurs because `self.root` has type `Option>`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider borrowing the `Option`'s content [INFO] [stdout] | [INFO] [stdout] 37 | self.root = self.add_node(self.root.as_ref() ,elem); [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.root` because it is borrowed [INFO] [stdout] --> src/structures/binary_search_tree.rs:37:39 [INFO] [stdout] | [INFO] [stdout] 37 | self.root = self.add_node(self.root ,elem); [INFO] [stdout] | --------------^^^^^^^^^------- [INFO] [stdout] | | | [INFO] [stdout] | | move out of `self.root` occurs here [INFO] [stdout] | borrow of `*self` occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/structures/binary_search_tree.rs:49:21 [INFO] [stdout] | [INFO] [stdout] 49 | let mut parent = *node.unwrap().left.unwrap(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/structures/binary_search_tree.rs:52:21 [INFO] [stdout] | [INFO] [stdout] 52 | let mut parent = *node.unwrap().right.unwrap(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0382]: use of moved value: `node` [INFO] [stdout] --> src/structures/binary_search_tree.rs:49:35 [INFO] [stdout] | [INFO] [stdout] 43 | fn add_node(&self, mut node: Option>, elem: T) -> Option>{ [INFO] [stdout] | -------- move occurs because `node` has type `Option>`, which does not implement the `Copy` trait [INFO] [stdout] ... [INFO] [stdout] 48 | if elem < node.unwrap().data.unwrap(){ [INFO] [stdout] | -------- `node` moved due to this method call [INFO] [stdout] 49 | let mut parent = *node.unwrap().left.unwrap(); [INFO] [stdout] | ^^^^ value used here after move [INFO] [stdout] | [INFO] [stdout] note: this function takes ownership of the receiver `self`, which moves `node` [INFO] [stdout] help: consider calling `.as_ref()` to borrow the type's contents [INFO] [stdout] | [INFO] [stdout] 48 | if elem < node.as_ref().unwrap().data.unwrap(){ [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0382]: use of moved value: `node` [INFO] [stdout] --> src/structures/binary_search_tree.rs:50:17 [INFO] [stdout] | [INFO] [stdout] 43 | fn add_node(&self, mut node: Option>, elem: T) -> Option>{ [INFO] [stdout] | -------- move occurs because `node` has type `Option>`, which does not implement the `Copy` trait [INFO] [stdout] ... [INFO] [stdout] 49 | let mut parent = *node.unwrap().left.unwrap(); [INFO] [stdout] | -------- `node` moved due to this method call [INFO] [stdout] 50 | node.unwrap().left = Some(Box::new(self.add_node(Some(parent), elem).unwrap())) [INFO] [stdout] | ^^^^ value used here after move [INFO] [stdout] | [INFO] [stdout] help: consider calling `.as_ref()` to borrow the type's contents [INFO] [stdout] | [INFO] [stdout] 49 | let mut parent = *node.as_ref().unwrap().left.unwrap(); [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0382]: use of moved value: `node` [INFO] [stdout] --> src/structures/binary_search_tree.rs:53:17 [INFO] [stdout] | [INFO] [stdout] 43 | fn add_node(&self, mut node: Option>, elem: T) -> Option>{ [INFO] [stdout] | -------- move occurs because `node` has type `Option>`, which does not implement the `Copy` trait [INFO] [stdout] ... [INFO] [stdout] 52 | let mut parent = *node.unwrap().right.unwrap(); [INFO] [stdout] | -------- `node` moved due to this method call [INFO] [stdout] 53 | node.unwrap().right = Some(Box::new(self.add_node(Some(parent), elem).unwrap())) [INFO] [stdout] | ^^^^ value used here after move [INFO] [stdout] | [INFO] [stdout] help: consider calling `.as_ref()` to borrow the type's contents [INFO] [stdout] | [INFO] [stdout] 52 | let mut parent = *node.as_ref().unwrap().right.unwrap(); [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0382]: use of moved value: `node` [INFO] [stdout] --> src/structures/binary_search_tree.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 43 | fn add_node(&self, mut node: Option>, elem: T) -> Option>{ [INFO] [stdout] | -------- move occurs because `node` has type `Option>`, which does not implement the `Copy` trait [INFO] [stdout] ... [INFO] [stdout] 50 | node.unwrap().left = Some(Box::new(self.add_node(Some(parent), elem).unwrap())) [INFO] [stdout] | -------- `node` moved due to this method call [INFO] [stdout] ... [INFO] [stdout] 53 | node.unwrap().right = Some(Box::new(self.add_node(Some(parent), elem).unwrap())) [INFO] [stdout] | -------- `node` moved due to this method call [INFO] [stdout] ... [INFO] [stdout] 57 | node [INFO] [stdout] | ^^^^ value used here after move [INFO] [stdout] | [INFO] [stdout] help: consider calling `.as_ref()` to borrow the type's contents [INFO] [stdout] | [INFO] [stdout] 53 | node.as_ref().unwrap().right = Some(Box::new(self.add_node(Some(parent), elem).unwrap())) [INFO] [stdout] | +++++++++ [INFO] [stdout] help: consider calling `.as_ref()` to borrow the type's contents [INFO] [stdout] | [INFO] [stdout] 50 | node.as_ref().unwrap().left = Some(Box::new(self.add_node(Some(parent), elem).unwrap())) [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `self.root` which is behind a mutable reference [INFO] [stdout] --> src/structures/binary_search_tree.rs:62:23 [INFO] [stdout] | [INFO] [stdout] 62 | let aux = self.root.unwrap(); [INFO] [stdout] | ^^^^^^^^^ move occurs because `self.root` has type `Option>`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider borrowing the `Option`'s content [INFO] [stdout] | [INFO] [stdout] 62 | let aux = self.root.as_ref().unwrap(); [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `*node` which is behind a shared reference [INFO] [stdout] --> src/structures/binary_search_tree.rs:75:19 [INFO] [stdout] | [INFO] [stdout] 75 | if elem < node.unwrap().data.unwrap(){ [INFO] [stdout] | ^^^^^^^^^^^^^ move occurs because `*node` has type `Option>`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider borrowing the `Option`'s content [INFO] [stdout] | [INFO] [stdout] 75 | if elem < node.unwrap().as_ref().data.unwrap(){ [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `*node` which is behind a shared reference [INFO] [stdout] --> src/structures/binary_search_tree.rs:76:24 [INFO] [stdout] | [INFO] [stdout] 76 | let aux = *node.unwrap().left.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^ move occurs because `*node` has type `Option>`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider borrowing the `Option`'s content [INFO] [stdout] | [INFO] [stdout] 76 | let aux = *node.unwrap().as_ref().left.unwrap(); [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `*node` which is behind a shared reference [INFO] [stdout] --> src/structures/binary_search_tree.rs:77:13 [INFO] [stdout] | [INFO] [stdout] 77 | node.unwrap().left = Some(Box::new(self.remove_node(&Some(aux), elem).unwrap())); [INFO] [stdout] | ^^^^^^^^^^^^^ move occurs because `*node` has type `Option>`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider borrowing the `Option`'s content [INFO] [stdout] | [INFO] [stdout] 77 | node.unwrap().as_ref().left = Some(Box::new(self.remove_node(&Some(aux), elem).unwrap())); [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `*node` which is behind a shared reference [INFO] [stdout] --> src/structures/binary_search_tree.rs:78:26 [INFO] [stdout] | [INFO] [stdout] 78 | } else if elem > node.unwrap().data.unwrap(){ [INFO] [stdout] | ^^^^^^^^^^^^^ move occurs because `*node` has type `Option>`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider borrowing the `Option`'s content [INFO] [stdout] | [INFO] [stdout] 78 | } else if elem > node.unwrap().as_ref().data.unwrap(){ [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `*node` which is behind a shared reference [INFO] [stdout] --> src/structures/binary_search_tree.rs:79:24 [INFO] [stdout] | [INFO] [stdout] 79 | let aux = *node.unwrap().right.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^ move occurs because `*node` has type `Option>`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider borrowing the `Option`'s content [INFO] [stdout] | [INFO] [stdout] 79 | let aux = *node.unwrap().as_ref().right.unwrap(); [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `*node` which is behind a shared reference [INFO] [stdout] --> src/structures/binary_search_tree.rs:80:13 [INFO] [stdout] | [INFO] [stdout] 80 | node.unwrap().right = Some(Box::new(self.remove_node(&Some(aux), elem).unwrap())); [INFO] [stdout] | ^^^^^^^^^^^^^ move occurs because `*node` has type `Option>`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider borrowing the `Option`'s content [INFO] [stdout] | [INFO] [stdout] 80 | node.unwrap().as_ref().right = Some(Box::new(self.remove_node(&Some(aux), elem).unwrap())); [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `*node` which is behind a shared reference [INFO] [stdout] --> src/structures/binary_search_tree.rs:82:16 [INFO] [stdout] | [INFO] [stdout] 82 | if node.unwrap().left.is_none(){ [INFO] [stdout] | ^^^^^^^^^^^^^ move occurs because `*node` has type `Option>`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider borrowing the `Option`'s content [INFO] [stdout] | [INFO] [stdout] 82 | if node.unwrap().as_ref().left.is_none(){ [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `*node` which is behind a shared reference [INFO] [stdout] --> src/structures/binary_search_tree.rs:83:30 [INFO] [stdout] | [INFO] [stdout] 83 | let right = *node.unwrap().right.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^ move occurs because `*node` has type `Option>`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider borrowing the `Option`'s content [INFO] [stdout] | [INFO] [stdout] 83 | let right = *node.unwrap().as_ref().right.unwrap(); [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `*node` which is behind a shared reference [INFO] [stdout] --> src/structures/binary_search_tree.rs:84:17 [INFO] [stdout] | [INFO] [stdout] 84 | node.unwrap().data = None; [INFO] [stdout] | ^^^^^^^^^^^^^ move occurs because `*node` has type `Option>`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider borrowing the `Option`'s content [INFO] [stdout] | [INFO] [stdout] 84 | node.unwrap().as_ref().data = None; [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `*node` which is behind a shared reference [INFO] [stdout] --> src/structures/binary_search_tree.rs:87:23 [INFO] [stdout] | [INFO] [stdout] 87 | } else if node.unwrap().right.is_none(){ [INFO] [stdout] | ^^^^^^^^^^^^^ move occurs because `*node` has type `Option>`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider borrowing the `Option`'s content [INFO] [stdout] | [INFO] [stdout] 87 | } else if node.unwrap().as_ref().right.is_none(){ [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `*node` which is behind a shared reference [INFO] [stdout] --> src/structures/binary_search_tree.rs:88:29 [INFO] [stdout] | [INFO] [stdout] 88 | let left = *node.unwrap().left.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^ move occurs because `*node` has type `Option>`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider borrowing the `Option`'s content [INFO] [stdout] | [INFO] [stdout] 88 | let left = *node.unwrap().as_ref().left.unwrap(); [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `*node` which is behind a shared reference [INFO] [stdout] --> src/structures/binary_search_tree.rs:89:17 [INFO] [stdout] | [INFO] [stdout] 89 | node.unwrap().data = None; [INFO] [stdout] | ^^^^^^^^^^^^^ move occurs because `*node` has type `Option>`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider borrowing the `Option`'s content [INFO] [stdout] | [INFO] [stdout] 89 | node.unwrap().as_ref().data = None; [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `*node` which is behind a shared reference [INFO] [stdout] --> src/structures/binary_search_tree.rs:93:42 [INFO] [stdout] | [INFO] [stdout] 93 | let tmp = self.dig_left(*node.unwrap().right.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^ move occurs because `*node` has type `Option>`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider borrowing the `Option`'s content [INFO] [stdout] | [INFO] [stdout] 93 | let tmp = self.dig_left(*node.unwrap().as_ref().right.unwrap()); [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `*node` which is behind a shared reference [INFO] [stdout] --> src/structures/binary_search_tree.rs:94:28 [INFO] [stdout] | [INFO] [stdout] 94 | let aux = *node.unwrap().right.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^ move occurs because `*node` has type `Option>`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider borrowing the `Option`'s content [INFO] [stdout] | [INFO] [stdout] 94 | let aux = *node.unwrap().as_ref().right.unwrap(); [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `*node` which is behind a shared reference [INFO] [stdout] --> src/structures/binary_search_tree.rs:95:17 [INFO] [stdout] | [INFO] [stdout] 95 | node.unwrap().data = tmp.data; [INFO] [stdout] | ^^^^^^^^^^^^^ move occurs because `*node` has type `Option>`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider borrowing the `Option`'s content [INFO] [stdout] | [INFO] [stdout] 95 | node.unwrap().as_ref().data = tmp.data; [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `*node` which is behind a shared reference [INFO] [stdout] --> src/structures/binary_search_tree.rs:96:17 [INFO] [stdout] | [INFO] [stdout] 96 | node.unwrap().right = Some(Box::new(self.remove_node(&Some(aux), tmp.data.unwrap()).unwrap())); [INFO] [stdout] | ^^^^^^^^^^^^^ move occurs because `*node` has type `Option>`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider borrowing the `Option`'s content [INFO] [stdout] | [INFO] [stdout] 96 | node.unwrap().as_ref().right = Some(Box::new(self.remove_node(&Some(aux), tmp.data.unwrap()).unwrap())); [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 23 previous errors; 7 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0382, E0505, E0507. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0382`. [INFO] [stdout] [INFO] [stderr] error: could not compile `data_structures` due to 24 previous errors; 7 warnings emitted [INFO] running `Command { std: "docker" "inspect" "bd8a60f8c8728cfcd9ea5aa1c1d50e431cfdb90b4bc0aa134025d2788a846d67", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "bd8a60f8c8728cfcd9ea5aa1c1d50e431cfdb90b4bc0aa134025d2788a846d67", kill_on_drop: false }` [INFO] [stdout] bd8a60f8c8728cfcd9ea5aa1c1d50e431cfdb90b4bc0aa134025d2788a846d67