[INFO] cloning repository https://github.com/tolumide-ng/coding-challenge [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tolumide-ng/coding-challenge" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftolumide-ng%2Fcoding-challenge", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftolumide-ng%2Fcoding-challenge'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] f086f2c577d12dfbcf99f99bba55dae91f64d928 [INFO] building tolumide-ng/coding-challenge against master#11663cd3bfefef7d34e8f0892c250bf698049392+rustflags=-Dtail-expr-drop-order for pr-134523 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftolumide-ng%2Fcoding-challenge" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/tolumide-ng/coding-challenge on toolchain 11663cd3bfefef7d34e8f0892c250bf698049392 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/tolumide-ng/coding-challenge [INFO] finished tweaking git repo https://github.com/tolumide-ng/coding-challenge [INFO] tweaked toml for git repo https://github.com/tolumide-ng/coding-challenge written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/tolumide-ng/coding-challenge already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 5f0144ec279bd37944694e5040bc21a2d97536491a83bd80211544650d6d596e [INFO] running `Command { std: "docker" "start" "-a" "5f0144ec279bd37944694e5040bc21a2d97536491a83bd80211544650d6d596e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "5f0144ec279bd37944694e5040bc21a2d97536491a83bd80211544650d6d596e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5f0144ec279bd37944694e5040bc21a2d97536491a83bd80211544650d6d596e", kill_on_drop: false }` [INFO] [stdout] 5f0144ec279bd37944694e5040bc21a2d97536491a83bd80211544650d6d596e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dtail-expr-drop-order" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 6cf913e7b42f864f959a809442b84c96ffff0621257b69f35b147a4bc9768d9e [INFO] running `Command { std: "docker" "start" "-a" "6cf913e7b42f864f959a809442b84c96ffff0621257b69f35b147a4bc9768d9e", kill_on_drop: false }` [INFO] [stderr] Compiling data_structures v0.1.0 (/opt/rustwide/workdir/data_structures) [INFO] [stderr] Compiling dynamic_pg v0.1.0 (/opt/rustwide/workdir/dynamic_pg) [INFO] [stdout] warning: fields `memo`, `aggregator`, and `target` are never read [INFO] [stdout] --> dynamic_pg/src/dynamic_programming/all_construct.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 13 | struct AllConstructs { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] 14 | dic: Vec<&'static str>, [INFO] [stdout] 15 | memo: HashMap, [INFO] [stdout] | ^^^^ [INFO] [stdout] 16 | aggregator: ReturnType, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 17 | target: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AllConstructs` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> dynamic_pg/src/dynamic_programming/all_construct.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn recursive_all_construct(target: &'static str, dic: Vec<&'static str>) -> ReturnType { [INFO] [stdout] | ------------------------------------------------------------------------------------------ move the `impl` block outside of this function `recursive_all_construct` [INFO] [stdout] 32 | impl AllConstructs { [INFO] [stdout] | ^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | `AllConstructs` is not local [INFO] [stdout] | [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> dynamic_pg/src/dynamic_programming/all_construct.rs:67:9 [INFO] [stdout] | [INFO] [stdout] 65 | pub fn tabulated_all_construct(target: &'static str, dic: Vec<&'static str>) -> TabReturnType { [INFO] [stdout] | --------------------------------------------------------------------------------------------- move the `impl` block outside of this function `tabulated_all_construct` [INFO] [stdout] 66 | // use std::collections::HashMap; [INFO] [stdout] 67 | impl AllConstructs { [INFO] [stdout] | ^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | `AllConstructs` is not local [INFO] [stdout] | [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> dynamic_pg/src/dynamic_programming/best_sum.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn recursive_best_sum(target: i64, coins: Vec) -> CoinType { [INFO] [stdout] | --------------------------------------------------------------------- move the `impl` block outside of this function `recursive_best_sum` [INFO] [stdout] 27 | impl BestSum { [INFO] [stdout] | ^^^^^------- [INFO] [stdout] | | [INFO] [stdout] | `BestSum` is not local [INFO] [stdout] | [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> dynamic_pg/src/dynamic_programming/best_sum.rs:67:9 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn memoized_best_sum(target: i64, coins: Vec) -> CoinType { [INFO] [stdout] | -------------------------------------------------------------------- move the `impl` block outside of this function `memoized_best_sum` [INFO] [stdout] 67 | impl BestSum { [INFO] [stdout] | ^^^^^------- [INFO] [stdout] | | [INFO] [stdout] | `BestSum` is not local [INFO] [stdout] | [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> dynamic_pg/src/dynamic_programming/best_sum.rs:116:9 [INFO] [stdout] | [INFO] [stdout] 115 | pub fn tabulated_best_sum(target: usize, coins: Vec) -> CoinType { [INFO] [stdout] | ----------------------------------------------------------------------- move the `impl` block outside of this function `tabulated_best_sum` [INFO] [stdout] 116 | impl BestSum { [INFO] [stdout] | ^^^^^------- [INFO] [stdout] | | [INFO] [stdout] | `BestSum` is not local [INFO] [stdout] | [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> dynamic_pg/src/dynamic_programming/can_construct.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn recursive_can_construct(target: &str, dic: Vec<&'static str>) -> bool { [INFO] [stdout] | ---------------------------------------------------------------------------- move the `impl` block outside of this function `recursive_can_construct` [INFO] [stdout] 28 | impl CanConstruct { [INFO] [stdout] | ^^^^^------------ [INFO] [stdout] | | [INFO] [stdout] | `CanConstruct` is not local [INFO] [stdout] | [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> dynamic_pg/src/dynamic_programming/can_construct.rs:54:9 [INFO] [stdout] | [INFO] [stdout] 53 | pub fn memoized_can_construct(target: &str, dic: Vec<&'static str>) -> bool { [INFO] [stdout] | --------------------------------------------------------------------------- move the `impl` block outside of this function `memoized_can_construct` [INFO] [stdout] 54 | impl CanConstruct { [INFO] [stdout] | ^^^^^------------ [INFO] [stdout] | | [INFO] [stdout] | `CanConstruct` is not local [INFO] [stdout] | [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> dynamic_pg/src/dynamic_programming/can_construct.rs:89:9 [INFO] [stdout] | [INFO] [stdout] 87 | pub fn tabulated_can_construct(target: &str, dic: Vec<&'static str>) -> bool { [INFO] [stdout] | ---------------------------------------------------------------------------- move the `impl` block outside of this function `tabulated_can_construct` [INFO] [stdout] 88 | // where dic is dictionary of words [INFO] [stdout] 89 | impl CanConstruct { [INFO] [stdout] | ^^^^^------------ [INFO] [stdout] | | [INFO] [stdout] | `CanConstruct` is not local [INFO] [stdout] | [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> dynamic_pg/src/dynamic_programming/can_sum.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn recursive_can_sum(target: i64, coins: Vec) -> bool { [INFO] [stdout] | -------------------------------------------------------------- move the `impl` block outside of this function `recursive_can_sum` [INFO] [stdout] ... [INFO] [stdout] 26 | impl CanSum { [INFO] [stdout] | ^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | `CanSum` is not local [INFO] [stdout] | [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> dynamic_pg/src/dynamic_programming/can_sum.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 52 | pub fn memoized_can_sum(target: i64, coins: Vec) -> bool { [INFO] [stdout] | ------------------------------------------------------------- move the `impl` block outside of this function `memoized_can_sum` [INFO] [stdout] ... [INFO] [stdout] 55 | impl CanSum { [INFO] [stdout] | ^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | `CanSum` is not local [INFO] [stdout] | [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> dynamic_pg/src/dynamic_programming/can_sum.rs:90:9 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn tabulated_can_sum(target: i64, coins: Vec) -> bool { [INFO] [stdout] | -------------------------------------------------------------- move the `impl` block outside of this function `tabulated_can_sum` [INFO] [stdout] 90 | impl CanSum { [INFO] [stdout] | ^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | `CanSum` is not local [INFO] [stdout] | [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> dynamic_pg/src/dynamic_programming/count_construct.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn recursive_count_construct(target: &str, dic: Vec<&'static str>) -> usize { [INFO] [stdout] | ------------------------------------------------------------------------------- move the `impl` block outside of this function `recursive_count_construct` [INFO] [stdout] 26 | impl CountConstruct { [INFO] [stdout] | ^^^^^-------------- [INFO] [stdout] | | [INFO] [stdout] | `CountConstruct` is not local [INFO] [stdout] | [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> dynamic_pg/src/dynamic_programming/count_construct.rs:54:9 [INFO] [stdout] | [INFO] [stdout] 53 | pub fn memoized_count_construct(target: &str, dic: Vec<&'static str>) -> usize { [INFO] [stdout] | ------------------------------------------------------------------------------ move the `impl` block outside of this function `memoized_count_construct` [INFO] [stdout] 54 | impl CountConstruct { [INFO] [stdout] | ^^^^^-------------- [INFO] [stdout] | | [INFO] [stdout] | `CountConstruct` is not local [INFO] [stdout] | [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> dynamic_pg/src/dynamic_programming/count_construct.rs:90:9 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn tabulated_count_construct(target: &str, dic: Vec<&'static str>) -> usize { [INFO] [stdout] | ------------------------------------------------------------------------------- move the `impl` block outside of this function `tabulated_count_construct` [INFO] [stdout] 90 | impl CountConstruct { [INFO] [stdout] | ^^^^^-------------- [INFO] [stdout] | | [INFO] [stdout] | `CountConstruct` is not local [INFO] [stdout] | [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> dynamic_pg/src/dynamic_programming/how_sum.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn recursive_how_sum(target_sum: i64, coins: Vec) -> ReturnType { [INFO] [stdout] | -------------------------------------------------------------------------- move the `impl` block outside of this function `recursive_how_sum` [INFO] [stdout] 25 | impl HowSum { [INFO] [stdout] | ^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | `HowSum` is not local [INFO] [stdout] | [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> dynamic_pg/src/dynamic_programming/how_sum.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 52 | pub fn memoized_how_sum(target_sum: i64, coins: Vec) -> ReturnType { [INFO] [stdout] | ------------------------------------------------------------------------- move the `impl` block outside of this function `memoized_how_sum` [INFO] [stdout] 53 | impl HowSum { [INFO] [stdout] | ^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | `HowSum` is not local [INFO] [stdout] | [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> dynamic_pg/src/dynamic_programming/how_sum.rs:96:9 [INFO] [stdout] | [INFO] [stdout] 95 | pub fn tabulated_how_sum(target_sum: usize, coins: Vec) -> ReturnType { [INFO] [stdout] | ---------------------------------------------------------------------------- move the `impl` block outside of this function `tabulated_how_sum` [INFO] [stdout] 96 | impl HowSum { [INFO] [stdout] | ^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | `HowSum` is not local [INFO] [stdout] | [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> data_structures/src/recursion/create_bst.rs:68:17 [INFO] [stdout] | [INFO] [stdout] 68 | let mut parent_node = queue.get_mut(0).unwrap(); [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pn` [INFO] [stdout] --> data_structures/src/recursion/same_tree.rs:108:15 [INFO] [stdout] | [INFO] [stdout] 108 | (Some(pn), None) => false, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_pn` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `qn` [INFO] [stdout] --> data_structures/src/recursion/same_tree.rs:109:21 [INFO] [stdout] | [INFO] [stdout] 109 | (None, Some(qn)) => false, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_qn` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: relative drop order changing in Rust 2024 [INFO] [stdout] --> data_structures/src/linked_lists/linked_palindrome.rs:56:27 [INFO] [stdout] | [INFO] [stdout] 51 | let value_in_slow = &slow_ptr.as_ref().unwrap().borrow().data; [INFO] [stdout] | ----------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#1` [INFO] [stdout] | `#1` will be dropped later as of Edition 2024 [INFO] [stdout] 52 | let new_node = Node::new(value_in_slow.to_string()); [INFO] [stdout] | -------- [INFO] [stdout] | | [INFO] [stdout] | `new_node` calls a custom destructor [INFO] [stdout] | `new_node` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 56 | match penultimate_ptr.as_ref().unwrap().borrow().next { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#2` [INFO] [stdout] | up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 63 | } [INFO] [stdout] | - now the temporary value is dropped here, before the local variables in the block or statement [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: `#2` invokes this custom destructor [INFO] [stdout] --> /rustc/11663cd3bfefef7d34e8f0892c250bf698049392/library/core/src/cell.rs:1434:1 [INFO] [stdout] note: `#1` invokes this custom destructor [INFO] [stdout] --> /rustc/11663cd3bfefef7d34e8f0892c250bf698049392/library/core/src/cell.rs:1434:1 [INFO] [stdout] note: `new_node` invokes this custom destructor [INFO] [stdout] --> data_structures/src/linked_lists/node.rs:22:1 [INFO] [stdout] | [INFO] [stdout] 22 | / impl Drop for Node { [INFO] [stdout] 23 | | fn drop(&mut self) { [INFO] [stdout] 24 | | println!("Node with this data -> '{}' just dropped", self.data); [INFO] [stdout] 25 | | } [INFO] [stdout] 26 | | } [INFO] [stdout] | |_^ [INFO] [stdout] = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages [INFO] [stdout] = note: requested on the command line with `-D tail-expr-drop-order` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: relative drop order changing in Rust 2024 [INFO] [stdout] --> data_structures/src/linked_lists/linked_palindrome.rs:110:49 [INFO] [stdout] | [INFO] [stdout] 89 | let mut first_curr = Some(Rc::clone(self.head.as_ref().unwrap())); [INFO] [stdout] | -------------- [INFO] [stdout] | | [INFO] [stdout] | `first_curr` calls a custom destructor [INFO] [stdout] | `first_curr` will be dropped later as of Edition 2024 [INFO] [stdout] 90 | let mut second_curr = Some(Rc::clone(reversed_list.as_ref().unwrap())); [INFO] [stdout] | --------------- [INFO] [stdout] | | [INFO] [stdout] | `second_curr` calls a custom destructor [INFO] [stdout] | `second_curr` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 94 | if second_curr.as_ref().unwrap().borrow().data [INFO] [stdout] | -------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#1` [INFO] [stdout] | `#1` will be dropped later as of Edition 2024 [INFO] [stdout] 95 | == first_curr.as_ref().unwrap().borrow().data [INFO] [stdout] | ------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#2` [INFO] [stdout] | `#2` will be dropped later as of Edition 2024 [INFO] [stdout] 96 | { [INFO] [stdout] 97 | let mut next_first: NodeOption = None; [INFO] [stdout] | -------------- [INFO] [stdout] | | [INFO] [stdout] | `next_first` calls a custom destructor [INFO] [stdout] | `next_first` will be dropped later as of Edition 2024 [INFO] [stdout] 98 | let mut next_second: NodeOption = None; [INFO] [stdout] | --------------- [INFO] [stdout] | | [INFO] [stdout] | `next_second` calls a custom destructor [INFO] [stdout] | `next_second` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 102 | if curr_second.as_ref().borrow().next.is_some() { [INFO] [stdout] | ----------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#3` [INFO] [stdout] | `#3` will be dropped later as of Edition 2024 [INFO] [stdout] 103 | next_second = Some(Rc::clone( [INFO] [stdout] 104 | curr_second.as_ref().borrow().next.as_ref().unwrap(), [INFO] [stdout] | ----------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#4` [INFO] [stdout] | `#4` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 110 | curr_first.as_ref().borrow().next.as_ref().unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#5` [INFO] [stdout] | up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 113 | } [INFO] [stdout] | - now the temporary value is dropped here, before the local variables in the block or statement [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: `#5` invokes this custom destructor [INFO] [stdout] --> /rustc/11663cd3bfefef7d34e8f0892c250bf698049392/library/core/src/cell.rs:1434:1 [INFO] [stdout] note: `first_curr` invokes this custom destructor [INFO] [stdout] --> data_structures/src/linked_lists/node.rs:22:1 [INFO] [stdout] | [INFO] [stdout] 22 | / impl Drop for Node { [INFO] [stdout] 23 | | fn drop(&mut self) { [INFO] [stdout] 24 | | println!("Node with this data -> '{}' just dropped", self.data); [INFO] [stdout] 25 | | } [INFO] [stdout] 26 | | } [INFO] [stdout] | |_^ [INFO] [stdout] note: `second_curr` invokes this custom destructor [INFO] [stdout] --> data_structures/src/linked_lists/node.rs:22:1 [INFO] [stdout] | [INFO] [stdout] 22 | / impl Drop for Node { [INFO] [stdout] 23 | | fn drop(&mut self) { [INFO] [stdout] 24 | | println!("Node with this data -> '{}' just dropped", self.data); [INFO] [stdout] 25 | | } [INFO] [stdout] 26 | | } [INFO] [stdout] | |_^ [INFO] [stdout] note: `#1` invokes this custom destructor [INFO] [stdout] --> /rustc/11663cd3bfefef7d34e8f0892c250bf698049392/library/core/src/cell.rs:1434:1 [INFO] [stdout] note: `#2` invokes this custom destructor [INFO] [stdout] --> /rustc/11663cd3bfefef7d34e8f0892c250bf698049392/library/core/src/cell.rs:1434:1 [INFO] [stdout] note: `next_first` invokes this custom destructor [INFO] [stdout] --> data_structures/src/linked_lists/node.rs:22:1 [INFO] [stdout] | [INFO] [stdout] 22 | / impl Drop for Node { [INFO] [stdout] 23 | | fn drop(&mut self) { [INFO] [stdout] 24 | | println!("Node with this data -> '{}' just dropped", self.data); [INFO] [stdout] 25 | | } [INFO] [stdout] 26 | | } [INFO] [stdout] | |_^ [INFO] [stdout] note: `next_second` invokes this custom destructor [INFO] [stdout] --> data_structures/src/linked_lists/node.rs:22:1 [INFO] [stdout] | [INFO] [stdout] 22 | / impl Drop for Node { [INFO] [stdout] 23 | | fn drop(&mut self) { [INFO] [stdout] 24 | | println!("Node with this data -> '{}' just dropped", self.data); [INFO] [stdout] 25 | | } [INFO] [stdout] 26 | | } [INFO] [stdout] | |_^ [INFO] [stdout] note: `#3` invokes this custom destructor [INFO] [stdout] --> /rustc/11663cd3bfefef7d34e8f0892c250bf698049392/library/core/src/cell.rs:1434:1 [INFO] [stdout] note: `#4` invokes this custom destructor [INFO] [stdout] --> /rustc/11663cd3bfefef7d34e8f0892c250bf698049392/library/core/src/cell.rs:1434:1 [INFO] [stdout] = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: relative drop order changing in Rust 2024 [INFO] [stdout] --> data_structures/src/linked_lists/linked_rcs.rs:122:13 [INFO] [stdout] | [INFO] [stdout] 104 | let mut iterator = self.iter_node(); [INFO] [stdout] | ------------ [INFO] [stdout] | | [INFO] [stdout] | `iterator` calls a custom destructor [INFO] [stdout] | `iterator` will be dropped later as of Edition 2024 [INFO] [stdout] 105 | let mut temp = iterator.next(); [INFO] [stdout] | -------- [INFO] [stdout] | | [INFO] [stdout] | `temp` calls a custom destructor [INFO] [stdout] | `temp` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 122 | old_tail.borrow().data.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#1` [INFO] [stdout] | up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024 [INFO] [stdout] 123 | }) [INFO] [stdout] | - now the temporary value is dropped here, before the local variables in the block or statement [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: `#1` invokes this custom destructor [INFO] [stdout] --> /rustc/11663cd3bfefef7d34e8f0892c250bf698049392/library/core/src/cell.rs:1434:1 [INFO] [stdout] note: `iterator` invokes this custom destructor [INFO] [stdout] --> data_structures/src/linked_lists/node.rs:22:1 [INFO] [stdout] | [INFO] [stdout] 22 | / impl Drop for Node { [INFO] [stdout] 23 | | fn drop(&mut self) { [INFO] [stdout] 24 | | println!("Node with this data -> '{}' just dropped", self.data); [INFO] [stdout] 25 | | } [INFO] [stdout] 26 | | } [INFO] [stdout] | |_^ [INFO] [stdout] note: `temp` invokes this custom destructor [INFO] [stdout] --> data_structures/src/linked_lists/node.rs:22:1 [INFO] [stdout] | [INFO] [stdout] 22 | / impl Drop for Node { [INFO] [stdout] 23 | | fn drop(&mut self) { [INFO] [stdout] 24 | | println!("Node with this data -> '{}' just dropped", self.data); [INFO] [stdout] 25 | | } [INFO] [stdout] 26 | | } [INFO] [stdout] | |_^ [INFO] [stdout] = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: relative drop order changing in Rust 2024 [INFO] [stdout] --> data_structures/src/linked_lists/nth_from_last.rs:36:56 [INFO] [stdout] | [INFO] [stdout] 26 | let mut current_pointer = Some(Rc::clone(head)); [INFO] [stdout] | ------------------- [INFO] [stdout] | | [INFO] [stdout] | `current_pointer` calls a custom destructor [INFO] [stdout] | `current_pointer` will be dropped later as of Edition 2024 [INFO] [stdout] 27 | let mut target_elem: NodeOption = None; [INFO] [stdout] | --------------- [INFO] [stdout] | | [INFO] [stdout] | `target_elem` calls a custom destructor [INFO] [stdout] | `target_elem` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 31 | let mut next_pointer: NodeOption = None; [INFO] [stdout] | ---------------- [INFO] [stdout] | | [INFO] [stdout] | `next_pointer` calls a custom destructor [INFO] [stdout] | `next_pointer` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 34 | if pointer.borrow().next.is_some() { [INFO] [stdout] | ---------------- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#1` [INFO] [stdout] | `#1` will be dropped later as of Edition 2024 [INFO] [stdout] 35 | next_pointer = [INFO] [stdout] 36 | Some(Rc::clone(pointer.borrow().next.as_ref().unwrap())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#3` [INFO] [stdout] | up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024 [INFO] [stdout] 37 | } [INFO] [stdout] | - now the temporary value is dropped here, before the local variables in the block or statement [INFO] [stdout] ... [INFO] [stdout] 47 | / target_elem [INFO] [stdout] 48 | | .as_ref() [INFO] [stdout] 49 | | .unwrap() [INFO] [stdout] 50 | | .borrow() [INFO] [stdout] | | - [INFO] [stdout] | | | [INFO] [stdout] | |_____________________________________________this value will be stored in a temporary; let us call it `#2` [INFO] [stdout] | `#2` will be dropped later as of Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: `#3` invokes this custom destructor [INFO] [stdout] --> /rustc/11663cd3bfefef7d34e8f0892c250bf698049392/library/core/src/cell.rs:1434:1 [INFO] [stdout] note: `current_pointer` invokes this custom destructor [INFO] [stdout] --> data_structures/src/linked_lists/node.rs:22:1 [INFO] [stdout] | [INFO] [stdout] 22 | / impl Drop for Node { [INFO] [stdout] 23 | | fn drop(&mut self) { [INFO] [stdout] 24 | | println!("Node with this data -> '{}' just dropped", self.data); [INFO] [stdout] 25 | | } [INFO] [stdout] 26 | | } [INFO] [stdout] | |_^ [INFO] [stdout] note: `target_elem` invokes this custom destructor [INFO] [stdout] --> data_structures/src/linked_lists/node.rs:22:1 [INFO] [stdout] | [INFO] [stdout] 22 | / impl Drop for Node { [INFO] [stdout] 23 | | fn drop(&mut self) { [INFO] [stdout] 24 | | println!("Node with this data -> '{}' just dropped", self.data); [INFO] [stdout] 25 | | } [INFO] [stdout] 26 | | } [INFO] [stdout] | |_^ [INFO] [stdout] note: `next_pointer` invokes this custom destructor [INFO] [stdout] --> data_structures/src/linked_lists/node.rs:22:1 [INFO] [stdout] | [INFO] [stdout] 22 | / impl Drop for Node { [INFO] [stdout] 23 | | fn drop(&mut self) { [INFO] [stdout] 24 | | println!("Node with this data -> '{}' just dropped", self.data); [INFO] [stdout] 25 | | } [INFO] [stdout] 26 | | } [INFO] [stdout] | |_^ [INFO] [stdout] note: `#1` invokes this custom destructor [INFO] [stdout] --> /rustc/11663cd3bfefef7d34e8f0892c250bf698049392/library/core/src/cell.rs:1434:1 [INFO] [stdout] note: `#2` invokes this custom destructor [INFO] [stdout] --> /rustc/11663cd3bfefef7d34e8f0892c250bf698049392/library/core/src/cell.rs:1434:1 [INFO] [stdout] = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: relative drop order changing in Rust 2024 [INFO] [stdout] --> data_structures/src/recursion/same_tree.rs:69:31 [INFO] [stdout] | [INFO] [stdout] 46 | if the_p.as_ref().borrow().val != the_q.as_ref().borrow().val { [INFO] [stdout] | ----------------------- ----------------------- [INFO] [stdout] | | | [INFO] [stdout] | | this value will be stored in a temporary; let us call it `#2` [INFO] [stdout] | | `#2` will be dropped later as of Edition 2024 [INFO] [stdout] | this value will be stored in a temporary; let us call it `#1` [INFO] [stdout] | `#1` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 51 | match the_p.as_ref().borrow().left { [INFO] [stdout] | ----------------------- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#3` [INFO] [stdout] | `#3` will be dropped later as of Edition 2024 [INFO] [stdout] 52 | Some(ref the_p_left) => match the_q.as_ref().borrow().left { [INFO] [stdout] | ----------------------- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#4` [INFO] [stdout] | `#4` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 63 | if the_q.as_ref().borrow().left.is_some() { [INFO] [stdout] | ----------------------- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#5` [INFO] [stdout] | `#5` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 69 | match the_p.as_ref().borrow().right { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#8` [INFO] [stdout] | up until Edition 2021 `#8` is dropped last but will be dropped earlier in Edition 2024 [INFO] [stdout] 70 | Some(ref the_p_right) => match the_q.as_ref().borrow().right { [INFO] [stdout] | ----------------------- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#6` [INFO] [stdout] | `#6` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 81 | if the_q.as_ref().borrow().right.is_some() { [INFO] [stdout] | ----------------------- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#7` [INFO] [stdout] | `#7` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 86 | } [INFO] [stdout] | - now the temporary value is dropped here, before the local variables in the block or statement [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: `#8` invokes this custom destructor [INFO] [stdout] --> /rustc/11663cd3bfefef7d34e8f0892c250bf698049392/library/core/src/cell.rs:1434:1 [INFO] [stdout] note: `#1` invokes this custom destructor [INFO] [stdout] --> /rustc/11663cd3bfefef7d34e8f0892c250bf698049392/library/core/src/cell.rs:1434:1 [INFO] [stdout] note: `#2` invokes this custom destructor [INFO] [stdout] --> /rustc/11663cd3bfefef7d34e8f0892c250bf698049392/library/core/src/cell.rs:1434:1 [INFO] [stdout] note: `#3` invokes this custom destructor [INFO] [stdout] --> /rustc/11663cd3bfefef7d34e8f0892c250bf698049392/library/core/src/cell.rs:1434:1 [INFO] [stdout] note: `#4` invokes this custom destructor [INFO] [stdout] --> /rustc/11663cd3bfefef7d34e8f0892c250bf698049392/library/core/src/cell.rs:1434:1 [INFO] [stdout] note: `#5` invokes this custom destructor [INFO] [stdout] --> /rustc/11663cd3bfefef7d34e8f0892c250bf698049392/library/core/src/cell.rs:1434:1 [INFO] [stdout] note: `#6` invokes this custom destructor [INFO] [stdout] --> /rustc/11663cd3bfefef7d34e8f0892c250bf698049392/library/core/src/cell.rs:1434:1 [INFO] [stdout] note: `#7` invokes this custom destructor [INFO] [stdout] --> /rustc/11663cd3bfefef7d34e8f0892c250bf698049392/library/core/src/cell.rs:1434:1 [INFO] [stdout] = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `realistic_size` is never read [INFO] [stdout] --> data_structures/src/binary_tree/priority_queue.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 30 | pub struct BinaryHeap { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 34 | realistic_size: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BinaryHeap` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `stack` is never read [INFO] [stdout] --> data_structures/src/queues_stacks/inorder_traversal.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct Traversal { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 18 | stack: Vec>>>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Traversal` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `deadlocks`, `target`, and `expected` are never read [INFO] [stdout] --> data_structures/src/queues_stacks/open_the_lock.rs:95:5 [INFO] [stdout] | [INFO] [stdout] 94 | pub struct Handler { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 95 | deadlocks: Vec, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 96 | target: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 97 | expected: i32, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Handler` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Parenthesis` is never constructed [INFO] [stdout] --> data_structures/src/recursion/generate_parenthesis.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | struct Parenthesis {} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `generate_parenthesis` and `backtrack` are never used [INFO] [stdout] --> data_structures/src/recursion/generate_parenthesis.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 2 | impl Parenthesis { [INFO] [stdout] | ---------------- associated functions in this implementation [INFO] [stdout] 3 | pub fn generate_parenthesis(n: i32) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 11 | fn backtrack( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `cache` and `n` are never read [INFO] [stdout] --> data_structures/src/recursion/unique_binary_tree.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 25 | struct UniqueBst { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 26 | // since constraint already state that n is 1 <= n <= 8, we can caceh a 2,3 tree as either 23 or 32 [INFO] [stdout] 27 | cache: HashMap, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 28 | n: i32, [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `UniqueBst` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `data_structures` (lib) due to 5 previous errors; 9 warnings emitted [INFO] running `Command { std: "docker" "inspect" "6cf913e7b42f864f959a809442b84c96ffff0621257b69f35b147a4bc9768d9e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6cf913e7b42f864f959a809442b84c96ffff0621257b69f35b147a4bc9768d9e", kill_on_drop: false }` [INFO] [stdout] 6cf913e7b42f864f959a809442b84c96ffff0621257b69f35b147a4bc9768d9e