[INFO] cloning repository https://github.com/szn-cs/rust-practice
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/szn-cs/rust-practice" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fszn-cs%2Frust-practice", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fszn-cs%2Frust-practice'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] bf04cded513951d4157c3291588a0c997832782f
[INFO] checking szn-cs/rust-practice against try#012cd62c9add58ab3910e44c137d87db3ab70f61 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fszn-cs%2Frust-practice" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/szn-cs/rust-practice
[INFO] finished tweaking git repo https://github.com/szn-cs/rust-practice
[INFO] tweaked toml for git repo https://github.com/szn-cs/rust-practice written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/szn-cs/rust-practice on toolchain 012cd62c9add58ab3910e44c137d87db3ab70f61
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/szn-cs/rust-practice 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" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: /workspace/builds/worker-5-tc2/source/Cargo.toml: unused manifest key: toolchain
[INFO] [stderr] warning: /workspace/builds/worker-5-tc2/source/datastructure/Cargo.toml: unused manifest key: toolchain
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a33322919de38bab295e84ea3dc1344c4cb60b2d4133f9b3ae4be9db83b9b3d8
[INFO] running `Command { std: "docker" "start" "-a" "a33322919de38bab295e84ea3dc1344c4cb60b2d4133f9b3ae4be9db83b9b3d8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a33322919de38bab295e84ea3dc1344c4cb60b2d4133f9b3ae4be9db83b9b3d8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a33322919de38bab295e84ea3dc1344c4cb60b2d4133f9b3ae4be9db83b9b3d8", kill_on_drop: false }`
[INFO] [stdout] a33322919de38bab295e84ea3dc1344c4cb60b2d4133f9b3ae4be9db83b9b3d8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 22158d989065d2820b1159317600acc8d537c166dd1aa178e2614b458b53c321
[INFO] running `Command { std: "docker" "start" "-a" "22158d989065d2820b1159317600acc8d537c166dd1aa178e2614b458b53c321", kill_on_drop: false }`
[INFO] [stderr] warning: /opt/rustwide/workdir/Cargo.toml: unused manifest key: toolchain
[INFO] [stderr] warning: /opt/rustwide/workdir/datastructure/Cargo.toml: unused manifest key: toolchain
[INFO] [stderr]    Compiling proc-macro2 v1.0.93
[INFO] [stderr]    Compiling unicode-ident v1.0.16
[INFO] [stderr]    Compiling libc v0.2.169
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]     Checking once_cell v1.20.3
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking smallvec v1.13.2
[INFO] [stderr]    Compiling serde v1.0.217
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]     Checking unicode-width v0.1.14
[INFO] [stderr]    Compiling serde_json v1.0.138
[INFO] [stderr]     Checking tracing-core v0.1.33
[INFO] [stderr]     Checking specification v0.1.0 (/opt/rustwide/workdir/specification)
[INFO] [stderr]     Checking regex-syntax v0.8.5
[INFO] [stdout] warning: unused import: `Iterator`
[INFO] [stdout]  --> specification/src/datastructure/linked_list.rs:1:31
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::iter::{IntoIterator, Iterator};
[INFO] [stdout]   |                               ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking regex-syntax v0.6.29
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]     Checking textwrap v0.11.0
[INFO] [stderr]     Checking ryu v1.0.19
[INFO] [stderr]     Checking itoa v1.0.14
[INFO] [stderr]     Checking bytes v1.10.0
[INFO] [stderr]     Checking log v0.4.25
[INFO] [stderr]    Compiling quote v1.0.38
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]     Checking socket2 v0.5.8
[INFO] [stderr]     Checking signal-hook-registry v1.4.2
[INFO] [stderr]    Compiling syn v2.0.98
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking mio v1.0.3
[INFO] [stderr]    Compiling heck v0.3.3
[INFO] [stderr]     Checking clap v2.34.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking tracing-log v0.1.4
[INFO] [stderr]     Checking chrono v0.4.39
[INFO] [stderr]     Checking regex-automata v0.4.9
[INFO] [stderr]     Checking thread_local v1.1.8
[INFO] [stderr]     Checking atoi v0.3.3
[INFO] [stderr]     Checking algorithm v0.1.0 (/opt/rustwide/workdir/algorithm)
[INFO] [stdout] warning: unused imports: `Debug` and `Display`
[INFO] [stdout]  --> algorithm/src/sort/merge_sort.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fmt::{Debug, Display};
[INFO] [stdout]   |                ^^^^^  ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter::zip`
[INFO] [stdout]   --> algorithm/src/sort/merge_sort.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |     use std::iter::zip;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> algorithm/src/sort/merge_sort.rs:199:9
[INFO] [stdout]     |
[INFO] [stdout] 199 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> algorithm/src/sort/merge_sort.rs:256:9
[INFO] [stdout]     |
[INFO] [stdout] 256 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> algorithm/src/sort/merge_sort.rs:342:9
[INFO] [stdout]     |
[INFO] [stdout] 342 |     use super::*; 
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp`
[INFO] [stdout]    --> algorithm/src/sort/merge_sort.rs:344:9
[INFO] [stdout]     |
[INFO] [stdout] 344 |     use std::cmp;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> algorithm/src/sort/merge_sort.rs:408:23
[INFO] [stdout]     |
[INFO] [stdout] 408 |                     if(h >= n) { 
[INFO] [stdout]     |                       ^      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 408 -                     if(h >= n) { 
[INFO] [stdout] 408 +                     if h >= n  { 
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> algorithm/src/sort/quick_sort.rs:230:9
[INFO] [stdout]     |
[INFO] [stdout] 230 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super`
[INFO] [stdout]   --> algorithm/src/sort/merge_sort.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     use super::*;
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `specification::algorithm::sort::Sorter`
[INFO] [stdout]  --> algorithm/src/sort/merge_sort.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use specification::algorithm::sort::Sorter;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super`
[INFO] [stdout]   --> algorithm/src/sort/merge_sort.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 91 |     use super::*;
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super`
[INFO] [stdout]  --> algorithm/src/sort/quick_sort.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     use super::*;
[INFO] [stdout]   |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `specification::algorithm::sort::Sorter`
[INFO] [stdout]  --> algorithm/src/sort/quick_sort.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use specification::algorithm::sort::Sorter;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super`
[INFO] [stdout]   --> algorithm/src/sort/quick_sort.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |     use super::*;
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super`
[INFO] [stdout]    --> algorithm/src/sort/quick_sort.rs:156:9
[INFO] [stdout]     |
[INFO] [stdout] 156 |     use super::*;
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `compare`
[INFO] [stdout]   --> algorithm/src/sort/insertion_sort.rs:70:40
[INFO] [stdout]    |
[INFO] [stdout] 70 |         fn sort<T, F>(slice: &mut [T], compare: F)
[INFO] [stdout]    |                                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compare`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> algorithm/src/sort/merge_sort.rs:44:17
[INFO] [stdout]    |
[INFO] [stdout] 44 |             let mut sorted = {
[INFO] [stdout]    |                 ----^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slice`
[INFO] [stdout]   --> algorithm/src/sort/quick_sort.rs:95:31
[INFO] [stdout]    |
[INFO] [stdout] 95 |             let pick_pivot = |slice: &mut [T]| 0;
[INFO] [stdout]    |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_slice`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slice`
[INFO] [stdout]    --> algorithm/src/sort/quick_sort.rs:180:31
[INFO] [stdout]     |
[INFO] [stdout] 180 |             let pick_pivot = |slice: &mut [T]| 0;
[INFO] [stdout]     |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_slice`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slice`
[INFO] [stdout]    --> algorithm/src/sort/quick_sort.rs:263:39
[INFO] [stdout]     |
[INFO] [stdout] 263 |                     let pick_pivot = |slice: &mut [T]| 0;
[INFO] [stdout]     |                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_slice`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `compare`
[INFO] [stdout]   --> algorithm/src/sort/selection_sort.rs:47:40
[INFO] [stdout]    |
[INFO] [stdout] 47 |         fn sort<T, F>(slice: &mut [T], compare: F)
[INFO] [stdout]    |                                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compare`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking datastructure v0.1.0 (/opt/rustwide/workdir/datastructure)
[INFO] [stderr]     Checking regex-automata v0.1.10
[INFO] [stdout] warning: unused imports: `Debug` and `Display`
[INFO] [stdout]  --> algorithm/src/sort/merge_sort.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fmt::{Debug, Display};
[INFO] [stdout]   |                ^^^^^  ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter::zip`
[INFO] [stdout]   --> algorithm/src/sort/merge_sort.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |     use std::iter::zip;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> algorithm/src/sort/merge_sort.rs:199:9
[INFO] [stdout]     |
[INFO] [stdout] 199 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> algorithm/src/sort/merge_sort.rs:256:9
[INFO] [stdout]     |
[INFO] [stdout] 256 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> algorithm/src/sort/merge_sort.rs:342:9
[INFO] [stdout]     |
[INFO] [stdout] 342 |     use super::*; 
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp`
[INFO] [stdout]    --> algorithm/src/sort/merge_sort.rs:344:9
[INFO] [stdout]     |
[INFO] [stdout] 344 |     use std::cmp;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> algorithm/src/sort/merge_sort.rs:408:23
[INFO] [stdout]     |
[INFO] [stdout] 408 |                     if(h >= n) { 
[INFO] [stdout]     |                       ^      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 408 -                     if(h >= n) { 
[INFO] [stdout] 408 +                     if h >= n  { 
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> algorithm/src/sort/quick_sort.rs:230:9
[INFO] [stdout]     |
[INFO] [stdout] 230 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super`
[INFO] [stdout]   --> algorithm/src/sort/merge_sort.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     use super::*;
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `specification::algorithm::sort::Sorter`
[INFO] [stdout]  --> algorithm/src/sort/merge_sort.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use specification::algorithm::sort::Sorter;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super`
[INFO] [stdout]   --> algorithm/src/sort/merge_sort.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 91 |     use super::*;
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super`
[INFO] [stdout]  --> algorithm/src/sort/quick_sort.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     use super::*;
[INFO] [stdout]   |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `specification::algorithm::sort::Sorter`
[INFO] [stdout]  --> algorithm/src/sort/quick_sort.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use specification::algorithm::sort::Sorter;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super`
[INFO] [stdout]   --> algorithm/src/sort/quick_sort.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |     use super::*;
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super`
[INFO] [stdout]    --> algorithm/src/sort/quick_sort.rs:156:9
[INFO] [stdout]     |
[INFO] [stdout] 156 |     use super::*;
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `compare`
[INFO] [stdout]   --> algorithm/src/sort/insertion_sort.rs:70:40
[INFO] [stdout]    |
[INFO] [stdout] 70 |         fn sort<T, F>(slice: &mut [T], compare: F)
[INFO] [stdout]    |                                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compare`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> algorithm/src/sort/merge_sort.rs:44:17
[INFO] [stdout]    |
[INFO] [stdout] 44 |             let mut sorted = {
[INFO] [stdout]    |                 ----^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slice`
[INFO] [stdout]   --> algorithm/src/sort/quick_sort.rs:95:31
[INFO] [stdout]    |
[INFO] [stdout] 95 |             let pick_pivot = |slice: &mut [T]| 0;
[INFO] [stdout]    |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_slice`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slice`
[INFO] [stdout]    --> algorithm/src/sort/quick_sort.rs:180:31
[INFO] [stdout]     |
[INFO] [stdout] 180 |             let pick_pivot = |slice: &mut [T]| 0;
[INFO] [stdout]     |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_slice`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slice`
[INFO] [stdout]    --> algorithm/src/sort/quick_sort.rs:263:39
[INFO] [stdout]     |
[INFO] [stdout] 263 |                     let pick_pivot = |slice: &mut [T]| 0;
[INFO] [stdout]     |                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_slice`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `compare`
[INFO] [stdout]   --> algorithm/src/sort/selection_sort.rs:47:40
[INFO] [stdout]    |
[INFO] [stdout] 47 |         fn sort<T, F>(slice: &mut [T], compare: F)
[INFO] [stdout]    |                                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compare`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Iterator`
[INFO] [stdout]  --> specification/src/datastructure/linked_list.rs:1:31
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::iter::{IntoIterator, Iterator};
[INFO] [stdout]   |                               ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking matchers v0.0.1
[INFO] [stderr]     Checking regex v1.11.1
[INFO] [stderr]     Checking tracing-serde v0.1.3
[INFO] [stderr]    Compiling structopt-derive v0.4.18
[INFO] [stderr]     Checking structopt v0.3.26
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling tracing-attributes v0.1.28
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling pin-project-internal v1.1.9
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]     Checking async-stream v0.3.6
[INFO] [stderr]     Checking tokio v1.43.0
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]     Checking pin-project v1.1.9
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking tracing-futures v0.2.5
[INFO] [stderr]     Checking tracing-subscriber v0.2.25
[INFO] [stderr]     Checking ppv-lite86 v0.2.20
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking coding_problem v0.1.0 (/opt/rustwide/workdir/coding_problem)
[INFO] [stdout] warning: unused import: `ops::Sub`
[INFO] [stdout]   --> coding_problem/src/binary_search.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |         ops::Sub,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::RangeBounds`
[INFO] [stdout]   --> coding_problem/src/k_maximum_element.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |     use std::ops::RangeBounds;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]   --> coding_problem/src/missing_positive_num.rs:71:18
[INFO] [stdout]    |
[INFO] [stdout] 71 |         for i in (1..=v.len() as i32) {
[INFO] [stdout]    |                  ^                  ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 71 -         for i in (1..=v.len() as i32) {
[INFO] [stdout] 71 +         for i in 1..=v.len() as i32 {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::Reverse`
[INFO] [stdout]  --> coding_problem/src/top_k_most_frequent.rs:2:9
[INFO] [stdout]   |
[INFO] [stdout] 2 |     use std::cmp::Reverse;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> coding_problem/src/valid_parentheses.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ops::Sub`
[INFO] [stdout]   --> coding_problem/src/binary_search.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |         ops::Sub,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> coding_problem/src/binary_search.rs:189:9
[INFO] [stdout]     |
[INFO] [stdout] 189 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::RangeBounds`
[INFO] [stdout]   --> coding_problem/src/k_maximum_element.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |     use std::ops::RangeBounds;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]   --> coding_problem/src/missing_positive_num.rs:71:18
[INFO] [stdout]    |
[INFO] [stdout] 71 |         for i in (1..=v.len() as i32) {
[INFO] [stdout]    |                  ^                  ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 71 -         for i in (1..=v.len() as i32) {
[INFO] [stdout] 71 +         for i in 1..=v.len() as i32 {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::Reverse`
[INFO] [stdout]  --> coding_problem/src/top_k_most_frequent.rs:2:9
[INFO] [stdout]   |
[INFO] [stdout] 2 |     use std::cmp::Reverse;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> coding_problem/src/two_sum.rs:162:9
[INFO] [stdout]     |
[INFO] [stdout] 162 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> coding_problem/src/valid_parentheses.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> coding_problem/src/elements_at_level_in_binary_tree.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let mut current = NonNull::new(&mut (*self).clone());
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> coding_problem/src/elements_at_level_in_binary_tree.rs:56:10
[INFO] [stdout]    |
[INFO] [stdout] 56 |     let (mut l, mut r) = (
[INFO] [stdout]    |          ----^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> coding_problem/src/fibunnaci.rs:74:25
[INFO] [stdout]    |
[INFO] [stdout] 74 |         fn generate_fib(p: u64) -> u64 {
[INFO] [stdout]    |                         ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> coding_problem/src/linked_list_intersection.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |         let mut head = Node::new('z');
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> coding_problem/src/linked_list_kth_element.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let p = list as *mut _ as *mut u8;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tail`
[INFO] [stdout]   --> coding_problem/src/linked_list_kth_element.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let tail = unsafe {
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_tail`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> coding_problem/src/merge_linked_lists.rs:21:40
[INFO] [stdout]    |
[INFO] [stdout] 21 |             s.push_str(&format!("{} ", unsafe { current_ref.value }));
[INFO] [stdout]    |                                        ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> coding_problem/src/merge_linked_lists.rs:48:13
[INFO] [stdout]    |
[INFO] [stdout] 48 |         let mut dummy = NonNull::new(Box::into_raw(Box::new(Node {
[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]   --> coding_problem/src/merge_linked_lists.rs:55:17
[INFO] [stdout]    |
[INFO] [stdout] 55 |             let mut node = NonNull::new(Box::into_raw(Box::new(Node {
[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]   --> coding_problem/src/merge_linked_lists.rs:78:13
[INFO] [stdout]    |
[INFO] [stdout] 78 |         let mut dummy = NonNull::new(Box::into_raw(Box::new(Node {
[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]   --> coding_problem/src/missing_positive_num.rs:13:37
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub fn missing_positive_integer(mut v: &mut [i32]) -> Option<i32> {
[INFO] [stdout]    |                                     ----^
[INFO] [stdout]    |                                     |
[INFO] [stdout]    |                                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> coding_problem/src/remove_zero_sum_nodes.rs:129:21
[INFO] [stdout]     |
[INFO] [stdout] 129 |                 let b = unsafe { Box::from_raw(last) }; // drop allocated memory
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> coding_problem/src/sort_colors.rs:52:13
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let mut range_list = [
[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]   --> coding_problem/src/top_k_most_frequent.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 |         let mut v = map
[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]   --> coding_problem/src/two_sum.rs:66:13
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let mut list = {
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `balanced_tree::Node` is more private than the item `is_balanced_tree`
[INFO] [stdout]   --> coding_problem/src/balanced_tree.rs:28:1
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn is_balanced_tree(n: NonNull<Node>) -> bool {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `is_balanced_tree` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `balanced_tree::Node` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> coding_problem/src/balanced_tree.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | struct Node {
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `balanced_tree::Node` is more private than the item `is_balanced_tree_helper`
[INFO] [stdout]   --> coding_problem/src/balanced_tree.rs:32:1
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn is_balanced_tree_helper(n: NonNull<Node>) -> (bool, usize) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `is_balanced_tree_helper` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `balanced_tree::Node` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> coding_problem/src/balanced_tree.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | struct Node {
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `count_unival_subtrees::Node` is more private than the item `count_unival_subtrees`
[INFO] [stdout]   --> coding_problem/src/count_unival_subtrees.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn count_unival_subtrees(node: Option<Link>) -> usize {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `count_unival_subtrees` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `count_unival_subtrees::Node` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> coding_problem/src/count_unival_subtrees.rs:16:1
[INFO] [stdout]    |
[INFO] [stdout] 16 | struct Node {
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `count_unival_subtrees::Node` is more private than the item `count_unival_subtrees_helper`
[INFO] [stdout]   --> coding_problem/src/count_unival_subtrees.rs:46:1
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn count_unival_subtrees_helper(node: Option<Link>) -> (usize, bool) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `count_unival_subtrees_helper` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `count_unival_subtrees::Node` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> coding_problem/src/count_unival_subtrees.rs:16:1
[INFO] [stdout]    |
[INFO] [stdout] 16 | struct Node {
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `depth_binary_tree::Node` is more private than the item `depth_binary_tree`
[INFO] [stdout]   --> coding_problem/src/depth_binary_tree.rs:23:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn depth_binary_tree(node: Option<Link>) -> usize {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `depth_binary_tree` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `depth_binary_tree::Node` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> coding_problem/src/depth_binary_tree.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct Node {
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `elements_at_level_in_binary_tree::Node` is more private than the item `values_at_level`
[INFO] [stdout]   --> coding_problem/src/elements_at_level_in_binary_tree.rs:49:1
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn values_at_level(node: NonNull<Node>, depth: usize) -> Vec<i32> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `values_at_level` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `elements_at_level_in_binary_tree::Node` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> coding_problem/src/elements_at_level_in_binary_tree.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct Node {
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `core::str::<impl str>::trim` that must be used
[INFO] [stdout]   --> coding_problem/src/linked_list_intersection.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |         s.trim();
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this returns the trimmed string as a slice, without modifying the original
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let _ = s.trim();
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `ROW` should have a snake case name
[INFO] [stdout]   --> coding_problem/src/num_islands.rs:16:13
[INFO] [stdout]    |
[INFO] [stdout] 16 |         let ROW = grid.len();
[INFO] [stdout]    |             ^^^ help: convert the identifier to snake case: `row`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `COL` should have a snake case name
[INFO] [stdout]   --> coding_problem/src/num_islands.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |         let COL = grid[0].len();
[INFO] [stdout]    |             ^^^ help: convert the identifier to snake case: `col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `ROW` should have a snake case name
[INFO] [stdout]   --> coding_problem/src/num_islands.rs:45:13
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let ROW = grid.len();
[INFO] [stdout]    |             ^^^ help: convert the identifier to snake case: `row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `COL` should have a snake case name
[INFO] [stdout]   --> coding_problem/src/num_islands.rs:46:13
[INFO] [stdout]    |
[INFO] [stdout] 46 |         let COL = grid[0].len();
[INFO] [stdout]    |             ^^^ help: convert the identifier to snake case: `col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `ROW` should have a snake case name
[INFO] [stdout]   --> coding_problem/src/num_islands.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |         let ROW = grid.len();
[INFO] [stdout]    |             ^^^ help: convert the identifier to snake case: `row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `COL` should have a snake case name
[INFO] [stdout]   --> coding_problem/src/num_islands.rs:93:13
[INFO] [stdout]    |
[INFO] [stdout] 93 |         let COL = grid[0].len();
[INFO] [stdout]    |             ^^^ help: convert the identifier to snake case: `col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `ROW` should have a snake case name
[INFO] [stdout]    --> coding_problem/src/num_islands.rs:120:14
[INFO] [stdout]     |
[INFO] [stdout] 120 |         let (ROW, COL) = (grid.len(), grid[0].len());
[INFO] [stdout]     |              ^^^ help: convert the identifier to snake case: `row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `COL` should have a snake case name
[INFO] [stdout]    --> coding_problem/src/num_islands.rs:120:19
[INFO] [stdout]     |
[INFO] [stdout] 120 |         let (ROW, COL) = (grid.len(), grid[0].len());
[INFO] [stdout]     |                   ^^^ help: convert the identifier to snake case: `col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> coding_problem/src/spiral_matrix.rs:59:13
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let R: usize = v.len();
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `C` should have a snake case name
[INFO] [stdout]   --> coding_problem/src/spiral_matrix.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let C: usize = v[0].len();
[INFO] [stdout]    |             ^ help: convert the identifier to snake case (notice the capitalization): `c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> coding_problem/src/spiral_matrix.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let N: usize = v.len() * v[0].len();
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> coding_problem/src/spiral_matrix.rs:111:17
[INFO] [stdout]     |
[INFO] [stdout] 111 |             let N = v.len();
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `M` should have a snake case name
[INFO] [stdout]    --> coding_problem/src/spiral_matrix.rs:113:17
[INFO] [stdout]     |
[INFO] [stdout] 113 |             let M = v[0].len();
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> coding_problem/src/spiral_matrix.rs:125:17
[INFO] [stdout]     |
[INFO] [stdout] 125 |             let N = self.matrix.len();
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `M` should have a snake case name
[INFO] [stdout]    --> coding_problem/src/spiral_matrix.rs:126:17
[INFO] [stdout]     |
[INFO] [stdout] 126 |             let M = self.matrix[0].len();
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]  --> coding_problem/src/unique_path.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 |     pub fn unique_path(N: usize, M: usize) -> usize {
[INFO] [stdout]   |                        ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `M` should have a snake case name
[INFO] [stdout]  --> coding_problem/src/unique_path.rs:3:34
[INFO] [stdout]   |
[INFO] [stdout] 3 |     pub fn unique_path(N: usize, M: usize) -> usize {
[INFO] [stdout]   |                                  ^ help: convert the identifier to snake case: `m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> coding_problem/src/unique_path.rs:16:24
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn unique_path(N: usize, M: usize) -> usize {
[INFO] [stdout]    |                        ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `M` should have a snake case name
[INFO] [stdout]   --> coding_problem/src/unique_path.rs:16:34
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn unique_path(N: usize, M: usize) -> usize {
[INFO] [stdout]    |                                  ^ help: convert the identifier to snake case: `m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> coding_problem/src/elements_at_level_in_binary_tree.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let mut current = NonNull::new(&mut (*self).clone());
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> coding_problem/src/elements_at_level_in_binary_tree.rs:56:10
[INFO] [stdout]    |
[INFO] [stdout] 56 |     let (mut l, mut r) = (
[INFO] [stdout]    |          ----^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> coding_problem/src/fibunnaci.rs:74:25
[INFO] [stdout]    |
[INFO] [stdout] 74 |         fn generate_fib(p: u64) -> u64 {
[INFO] [stdout]    |                         ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> coding_problem/src/k_maximum_element.rs:141:13
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let mut v = vec![3, 7, 1, 4, 2, 9, 8, 6];
[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]   --> coding_problem/src/linked_list_intersection.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |         let mut head = Node::new('z');
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> coding_problem/src/linked_list_kth_element.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let p = list as *mut _ as *mut u8;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tail`
[INFO] [stdout]   --> coding_problem/src/linked_list_kth_element.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let tail = unsafe {
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_tail`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> coding_problem/src/merge_linked_lists.rs:21:40
[INFO] [stdout]    |
[INFO] [stdout] 21 |             s.push_str(&format!("{} ", unsafe { current_ref.value }));
[INFO] [stdout]    |                                        ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> coding_problem/src/merge_linked_lists.rs:48:13
[INFO] [stdout]    |
[INFO] [stdout] 48 |         let mut dummy = NonNull::new(Box::into_raw(Box::new(Node {
[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]   --> coding_problem/src/merge_linked_lists.rs:55:17
[INFO] [stdout]    |
[INFO] [stdout] 55 |             let mut node = NonNull::new(Box::into_raw(Box::new(Node {
[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]   --> coding_problem/src/merge_linked_lists.rs:78:13
[INFO] [stdout]    |
[INFO] [stdout] 78 |         let mut dummy = NonNull::new(Box::into_raw(Box::new(Node {
[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]    --> coding_problem/src/merge_linked_lists.rs:148:17
[INFO] [stdout]     |
[INFO] [stdout] 148 |             let mut dummy = NonNull::new(Box::into_raw(Box::new(Node {
[INFO] [stdout]     |                 ----^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> coding_problem/src/merge_linked_lists.rs:136:18
[INFO] [stdout]     |
[INFO] [stdout] 136 |             for (i, &value) in [3, 5, 6, 10, 11, 13].iter().enumerate() {
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> coding_problem/src/merge_linked_lists.rs:202:17
[INFO] [stdout]     |
[INFO] [stdout] 202 |             let mut dummy = NonNull::new(Box::into_raw(Box::new(Node {
[INFO] [stdout]     |                 ----^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> coding_problem/src/merge_linked_lists.rs:190:18
[INFO] [stdout]     |
[INFO] [stdout] 190 |             for (i, &value) in [3, 5, 6, 10, 11, 13].iter().enumerate() {
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> coding_problem/src/missing_positive_num.rs:13:37
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub fn missing_positive_integer(mut v: &mut [i32]) -> Option<i32> {
[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]    --> coding_problem/src/num_islands.rs:180:13
[INFO] [stdout]     |
[INFO] [stdout] 180 |         let mut grid = vec![
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> coding_problem/src/remove_zero_sum_nodes.rs:129:21
[INFO] [stdout]     |
[INFO] [stdout] 129 |                 let b = unsafe { Box::from_raw(last) }; // drop allocated memory
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> coding_problem/src/sort_colors.rs:52:13
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let mut range_list = [
[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]    --> coding_problem/src/sort_colors.rs:141:13
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let mut v = [1, 0, 1, 2, 0, 2, 0, 1, 0, 2];
[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]    --> coding_problem/src/sort_colors.rs:151:13
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let mut v = [1, 0, 1, 2, 0, 2, 0, 1, 0, 2];
[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]   --> coding_problem/src/top_k_most_frequent.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 |         let mut v = map
[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]   --> coding_problem/src/two_sum.rs:66:13
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let mut list = {
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `balanced_tree::Node` is more private than the item `balanced_tree::is_balanced_tree`
[INFO] [stdout]   --> coding_problem/src/balanced_tree.rs:28:1
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn is_balanced_tree(n: NonNull<Node>) -> bool {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `balanced_tree::is_balanced_tree` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `balanced_tree::Node` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> coding_problem/src/balanced_tree.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | struct Node {
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `balanced_tree::Node` is more private than the item `is_balanced_tree_helper`
[INFO] [stdout]   --> coding_problem/src/balanced_tree.rs:32:1
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn is_balanced_tree_helper(n: NonNull<Node>) -> (bool, usize) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `is_balanced_tree_helper` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `balanced_tree::Node` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> coding_problem/src/balanced_tree.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | struct Node {
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `count_unival_subtrees::Node` is more private than the item `count_unival_subtrees::count_unival_subtrees`
[INFO] [stdout]   --> coding_problem/src/count_unival_subtrees.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn count_unival_subtrees(node: Option<Link>) -> usize {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `count_unival_subtrees::count_unival_subtrees` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `count_unival_subtrees::Node` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> coding_problem/src/count_unival_subtrees.rs:16:1
[INFO] [stdout]    |
[INFO] [stdout] 16 | struct Node {
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `count_unival_subtrees::Node` is more private than the item `count_unival_subtrees_helper`
[INFO] [stdout]   --> coding_problem/src/count_unival_subtrees.rs:46:1
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn count_unival_subtrees_helper(node: Option<Link>) -> (usize, bool) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `count_unival_subtrees_helper` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `count_unival_subtrees::Node` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> coding_problem/src/count_unival_subtrees.rs:16:1
[INFO] [stdout]    |
[INFO] [stdout] 16 | struct Node {
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `depth_binary_tree::Node` is more private than the item `depth_binary_tree::depth_binary_tree`
[INFO] [stdout]   --> coding_problem/src/depth_binary_tree.rs:23:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn depth_binary_tree(node: Option<Link>) -> usize {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `depth_binary_tree::depth_binary_tree` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `depth_binary_tree::Node` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> coding_problem/src/depth_binary_tree.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct Node {
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `elements_at_level_in_binary_tree::Node` is more private than the item `elements_at_level_in_binary_tree::values_at_level`
[INFO] [stdout]   --> coding_problem/src/elements_at_level_in_binary_tree.rs:49:1
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn values_at_level(node: NonNull<Node>, depth: usize) -> Vec<i32> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `elements_at_level_in_binary_tree::values_at_level` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `elements_at_level_in_binary_tree::Node` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> coding_problem/src/elements_at_level_in_binary_tree.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct Node {
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `core::str::<impl str>::trim` that must be used
[INFO] [stdout]   --> coding_problem/src/linked_list_intersection.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |         s.trim();
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this returns the trimmed string as a slice, without modifying the original
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let _ = s.trim();
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `ROW` should have a snake case name
[INFO] [stdout]   --> coding_problem/src/num_islands.rs:16:13
[INFO] [stdout]    |
[INFO] [stdout] 16 |         let ROW = grid.len();
[INFO] [stdout]    |             ^^^ help: convert the identifier to snake case: `row`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `COL` should have a snake case name
[INFO] [stdout]   --> coding_problem/src/num_islands.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |         let COL = grid[0].len();
[INFO] [stdout]    |             ^^^ help: convert the identifier to snake case: `col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `ROW` should have a snake case name
[INFO] [stdout]   --> coding_problem/src/num_islands.rs:45:13
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let ROW = grid.len();
[INFO] [stdout]    |             ^^^ help: convert the identifier to snake case: `row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `COL` should have a snake case name
[INFO] [stdout]   --> coding_problem/src/num_islands.rs:46:13
[INFO] [stdout]    |
[INFO] [stdout] 46 |         let COL = grid[0].len();
[INFO] [stdout]    |             ^^^ help: convert the identifier to snake case: `col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `ROW` should have a snake case name
[INFO] [stdout]   --> coding_problem/src/num_islands.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |         let ROW = grid.len();
[INFO] [stdout]    |             ^^^ help: convert the identifier to snake case: `row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `COL` should have a snake case name
[INFO] [stdout]   --> coding_problem/src/num_islands.rs:93:13
[INFO] [stdout]    |
[INFO] [stdout] 93 |         let COL = grid[0].len();
[INFO] [stdout]    |             ^^^ help: convert the identifier to snake case: `col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `ROW` should have a snake case name
[INFO] [stdout]    --> coding_problem/src/num_islands.rs:120:14
[INFO] [stdout]     |
[INFO] [stdout] 120 |         let (ROW, COL) = (grid.len(), grid[0].len());
[INFO] [stdout]     |              ^^^ help: convert the identifier to snake case: `row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `COL` should have a snake case name
[INFO] [stdout]    --> coding_problem/src/num_islands.rs:120:19
[INFO] [stdout]     |
[INFO] [stdout] 120 |         let (ROW, COL) = (grid.len(), grid[0].len());
[INFO] [stdout]     |                   ^^^ help: convert the identifier to snake case: `col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> coding_problem/src/spiral_matrix.rs:59:13
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let R: usize = v.len();
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `C` should have a snake case name
[INFO] [stdout]   --> coding_problem/src/spiral_matrix.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let C: usize = v[0].len();
[INFO] [stdout]    |             ^ help: convert the identifier to snake case (notice the capitalization): `c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> coding_problem/src/spiral_matrix.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let N: usize = v.len() * v[0].len();
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> coding_problem/src/spiral_matrix.rs:111:17
[INFO] [stdout]     |
[INFO] [stdout] 111 |             let N = v.len();
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `M` should have a snake case name
[INFO] [stdout]    --> coding_problem/src/spiral_matrix.rs:113:17
[INFO] [stdout]     |
[INFO] [stdout] 113 |             let M = v[0].len();
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> coding_problem/src/spiral_matrix.rs:125:17
[INFO] [stdout]     |
[INFO] [stdout] 125 |             let N = self.matrix.len();
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `M` should have a snake case name
[INFO] [stdout]    --> coding_problem/src/spiral_matrix.rs:126:17
[INFO] [stdout]     |
[INFO] [stdout] 126 |             let M = self.matrix[0].len();
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]  --> coding_problem/src/unique_path.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 |     pub fn unique_path(N: usize, M: usize) -> usize {
[INFO] [stdout]   |                        ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `M` should have a snake case name
[INFO] [stdout]  --> coding_problem/src/unique_path.rs:3:34
[INFO] [stdout]   |
[INFO] [stdout] 3 |     pub fn unique_path(N: usize, M: usize) -> usize {
[INFO] [stdout]   |                                  ^ help: convert the identifier to snake case: `m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> coding_problem/src/unique_path.rs:16:24
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn unique_path(N: usize, M: usize) -> usize {
[INFO] [stdout]    |                        ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `M` should have a snake case name
[INFO] [stdout]   --> coding_problem/src/unique_path.rs:16:34
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn unique_path(N: usize, M: usize) -> usize {
[INFO] [stdout]    |                                  ^ help: convert the identifier to snake case: `m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking concept v0.1.0 (/opt/rustwide/workdir/concept)
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> concept/src/iterator.rs:22:20
[INFO] [stdout]    |
[INFO] [stdout] 22 |         let iter = (0..10);
[INFO] [stdout]    |                    ^     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 22 -         let iter = (0..10);
[INFO] [stdout] 22 +         let iter = 0..10;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Shutdown`
[INFO] [stdout]  --> concept/src/sync.rs:2:22
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::net::{self, Shutdown, TcpStream};
[INFO] [stdout]   |                      ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]  --> concept/src/twoD_to_slices.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 |     use super::*;
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `work_type`
[INFO] [stdout]   --> concept/src/asynchronous.rs:79:22
[INFO] [stdout]    |
[INFO] [stdout] 79 |     async fn do_work(work_type: WorkType) {}
[INFO] [stdout]    |                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_work_type`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> concept/src/cell.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let mut r: &mut i32 = c.get_mut(); // compile time borrowing
[INFO] [stdout]    |             ----^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> concept/src/cell.rs:57:13
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let mut t = c.borrow_mut();
[INFO] [stdout]    |             ----^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `method`
[INFO] [stdout]   --> concept/src/from_trait.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |     let method: Method = type_method.into();
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_method`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p9`
[INFO] [stdout]   --> concept/src/unsafe_pionter.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let p9 = p1 as *mut _;
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_p9`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p5`
[INFO] [stdout]   --> concept/src/unsafe_pionter.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |     let p5 = NonNull::new(p2);
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_p5`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> concept/src/unsafe_pionter.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let p = v.as_mut_ptr();
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `WorkType` is never used
[INFO] [stdout]   --> concept/src/asynchronous.rs:76:10
[INFO] [stdout]    |
[INFO] [stdout] 76 |     enum WorkType {}
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `do_work` is never used
[INFO] [stdout]   --> concept/src/asynchronous.rs:79:14
[INFO] [stdout]    |
[INFO] [stdout] 79 |     async fn do_work(work_type: WorkType) {}
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `field` is never read
[INFO] [stdout]   --> concept/src/generic_trait.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |         struct Struct<T> {
[INFO] [stdout]    |                ------ field in this struct
[INFO] [stdout] 14 |             field: T,
[INFO] [stdout]    |             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `twoD_to_slices` should have a snake case name
[INFO] [stdout]   --> concept/src/lib.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub mod twoD_to_slices;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `two_d_to_slices`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: feature `future_join` is declared but not used
[INFO] [stdout]  --> concept/src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(future_join)]
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter`
[INFO] [stdout]  --> concept/src/custom_range.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::iter;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Shutdown`
[INFO] [stdout]  --> concept/src/sync.rs:2:22
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::net::{self, Shutdown, TcpStream};
[INFO] [stdout]   |                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `work_type`
[INFO] [stdout]   --> concept/src/asynchronous.rs:79:22
[INFO] [stdout]    |
[INFO] [stdout] 79 |     async fn do_work(work_type: WorkType) {}
[INFO] [stdout]    |                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_work_type`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> concept/src/cell.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let mut r: &mut i32 = c.get_mut(); // compile time borrowing
[INFO] [stdout]    |             ----^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> concept/src/cell.rs:57:13
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let mut t = c.borrow_mut();
[INFO] [stdout]    |             ----^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p9`
[INFO] [stdout]   --> concept/src/unsafe_pionter.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let p9 = p1 as *mut _;
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_p9`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p5`
[INFO] [stdout]   --> concept/src/unsafe_pionter.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |     let p5 = NonNull::new(p2);
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_p5`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> concept/src/unsafe_pionter.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let p = v.as_mut_ptr();
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `do_work_1` is never used
[INFO] [stdout]  --> concept/src/asynchronous.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 |     fn do_work_1() {
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `do_work_2` is never used
[INFO] [stdout]  --> concept/src/asynchronous.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 |     fn do_work_2() {
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_threads` is never used
[INFO] [stdout]   --> concept/src/asynchronous.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub fn run_threads(n: usize) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_scoped_threads` is never used
[INFO] [stdout]   --> concept/src/asynchronous.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn run_scoped_threads(n: usize) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `do_work_a` is never used
[INFO] [stdout]   --> concept/src/asynchronous.rs:66:14
[INFO] [stdout]    |
[INFO] [stdout] 66 |     async fn do_work_a() -> usize {
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `do_work_b` is never used
[INFO] [stdout]   --> concept/src/asynchronous.rs:71:14
[INFO] [stdout]    |
[INFO] [stdout] 71 |     async fn do_work_b() -> usize {
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `WorkType` is never used
[INFO] [stdout]   --> concept/src/asynchronous.rs:76:10
[INFO] [stdout]    |
[INFO] [stdout] 76 |     enum WorkType {}
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `do_work` is never used
[INFO] [stdout]   --> concept/src/asynchronous.rs:79:14
[INFO] [stdout]    |
[INFO] [stdout] 79 |     async fn do_work(work_type: WorkType) {}
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_async_work` is never used
[INFO] [stdout]   --> concept/src/asynchronous.rs:81:18
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub async fn run_async_work(n: usize) -> usize {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `interior_mutability_references` is never used
[INFO] [stdout]   --> concept/src/cell.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn interior_mutability_references() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Method` is never used
[INFO] [stdout]  --> concept/src/from_trait.rs:2:6
[INFO] [stdout]   |
[INFO] [stdout] 2 | enum Method {
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Trait` is never used
[INFO] [stdout]  --> concept/src/generic_trait.rs:1:7
[INFO] [stdout]   |
[INFO] [stdout] 1 | trait Trait {
[INFO] [stdout]   |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reference_counting` is never used
[INFO] [stdout]  --> concept/src/reference_counting.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn reference_counting() {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rc_weak` is never used
[INFO] [stdout]   --> concept/src/reference_counting.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn rc_weak() {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `twoD_to_slices` should have a snake case name
[INFO] [stdout]   --> concept/src/lib.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub mod twoD_to_slices;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `two_d_to_slices`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: feature `future_join` is declared but not used
[INFO] [stdout]  --> concept/src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(future_join)]
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking rust-practice v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::option`
[INFO] [stdout]  --> src/tests/single_linked_list_2.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::option;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::option`
[INFO] [stdout]  --> src/tests/single_linked_list_3.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::option;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::option`
[INFO] [stdout]  --> src/tests/single_linked_list_pointer.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::option;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused label
[INFO] [stdout]   --> src/tests/practice.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |         'l2: loop {
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_labels)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused label
[INFO] [stdout]   --> src/tests/practice.rs:26:13
[INFO] [stdout]    |
[INFO] [stdout] 26 |             'l3: loop {
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]   --> concept/src/bin/sync.rs:12:16
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::net::{self, Shutdown, TcpStream};
[INFO] [stdout]    |                ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]   --> concept/src/bin/sync.rs:12:16
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::net::{self, Shutdown, TcpStream};
[INFO] [stdout]    |                ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/tests/practice.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |                 break 'l1;
[INFO] [stdout]    |                 --------- any code following this expression is unreachable
[INFO] [stdout] 29 |             }
[INFO] [stdout] 30 |             println!("l{}", 2);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `S` is never constructed
[INFO] [stdout]   --> src/tests/practice.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct S;
[INFO] [stdout]    |            ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `method` is never used
[INFO] [stdout]   --> src/tests/practice.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl S {
[INFO] [stdout]    | ------ method in this implementation
[INFO] [stdout] 17 |     fn method(&self) -> &S {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculateCompileTime` should have a snake case name
[INFO] [stdout]   --> src/tests/practice.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | const fn calculateCompileTime() -> f64 {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `calculate_compile_time`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `controlFlow` should have a snake case name
[INFO] [stdout]   --> src/tests/practice.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn controlFlow() {
[INFO] [stdout]    |    ^^^^^^^^^^^ help: convert the identifier to snake case: `control_flow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `optionTake` should have a snake case name
[INFO] [stdout]   --> src/tests/practice.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn optionTake() {
[INFO] [stdout]    |    ^^^^^^^^^^ help: convert the identifier to snake case: `option_take`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking tokio-stream v0.1.17
[INFO] [stderr]     Checking mini-redis v0.4.1
[INFO] [stderr]     Checking package v0.1.0 (/opt/rustwide/workdir/package)
[INFO] [stdout] warning: unused import: `MutexGuard`
[INFO] [stdout]  --> package/src/tokio.rs:9:29
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::sync::{Arc, Mutex, MutexGuard};
[INFO] [stdout]   |                             ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TcpStream`
[INFO] [stdout]   --> package/src/tokio.rs:10:31
[INFO] [stdout]    |
[INFO] [stdout] 10 | use tokio::net::{TcpListener, TcpStream};
[INFO] [stdout]    |                               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::future::join_all`
[INFO] [stdout]   --> package/src/tokio.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use futures::future::join_all;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]   --> package/src/tokio.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     use std::time::Duration;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::time::sleep`
[INFO] [stdout]   --> package/src/tokio.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     use tokio::time::sleep;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `async_closure` has been stable since 1.85.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> package/src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(async_closure)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]   --> package/src/tokio.rs:13:6
[INFO] [stdout]    |
[INFO] [stdout] 13 | type Result<T> = result::Result<T, Box<dyn Error>>;
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `DATABASE` is never used
[INFO] [stdout]   --> package/src/tokio.rs:15:6
[INFO] [stdout]    |
[INFO] [stdout] 15 | type DATABASE = Arc<Mutex<HashMap<String, Bytes>>>;
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NUM_CONNECTIONS` is never used
[INFO] [stdout]   --> package/src/tokio.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const NUM_CONNECTIONS: usize = 10; 
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `server` is never used
[INFO] [stdout]   --> package/src/tokio.rs:24:18
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub async fn server(num_connections: usize) -> Result<()> {
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `client` is never used
[INFO] [stdout]   --> package/src/tokio.rs:81:18
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub async fn client() -> Result<()> {
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MutexGuard`
[INFO] [stdout]  --> package/src/tokio.rs:9:29
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::sync::{Arc, Mutex, MutexGuard};
[INFO] [stdout]   |                             ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TcpStream`
[INFO] [stdout]   --> package/src/tokio.rs:10:31
[INFO] [stdout]    |
[INFO] [stdout] 10 | use tokio::net::{TcpListener, TcpStream};
[INFO] [stdout]    |                               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]   --> package/src/tokio.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     use std::time::Duration;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::time::sleep`
[INFO] [stdout]   --> package/src/tokio.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     use tokio::time::sleep;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `async_closure` has been stable since 1.85.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> package/src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(async_closure)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `DATABASE` is never used
[INFO] [stdout]   --> package/src/tokio.rs:15:6
[INFO] [stdout]    |
[INFO] [stdout] 15 | type DATABASE = Arc<Mutex<HashMap<String, Bytes>>>;
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NUM_CONNECTIONS` is never used
[INFO] [stdout]   --> package/src/tokio.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const NUM_CONNECTIONS: usize = 10; 
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 51.20s
[INFO] running `Command { std: "docker" "inspect" "22158d989065d2820b1159317600acc8d537c166dd1aa178e2614b458b53c321", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "22158d989065d2820b1159317600acc8d537c166dd1aa178e2614b458b53c321", kill_on_drop: false }`
[INFO] [stdout] 22158d989065d2820b1159317600acc8d537c166dd1aa178e2614b458b53c321
