[INFO] cloning repository https://github.com/domahidizoltan/learning-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/domahidizoltan/learning-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdomahidizoltan%2Flearning-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdomahidizoltan%2Flearning-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 78d5adac13da881c5aee0d0a0133690c87be9eab
[INFO] checking domahidizoltan/learning-rust against try#78c81ee3917a99dcff6e2e6822800f0492c415c3 for pr-148967
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdomahidizoltan%2Flearning-rust" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/domahidizoltan/learning-rust
[INFO] finished tweaking git repo https://github.com/domahidizoltan/learning-rust
[INFO] tweaked toml for git repo https://github.com/domahidizoltan/learning-rust written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/domahidizoltan/learning-rust on toolchain 78c81ee3917a99dcff6e2e6822800f0492c415c3
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+78c81ee3917a99dcff6e2e6822800f0492c415c3" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/domahidizoltan/learning-rust 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" "+78c81ee3917a99dcff6e2e6822800f0492c415c3" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded utf8_slice v1.0.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+78c81ee3917a99dcff6e2e6822800f0492c415c3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] d18cdcbc5329a0f76b359daea00d963b9f6c2ead5d249f1d3f1951f6cdbb2726
[INFO] running `Command { std: "docker" "start" "-a" "d18cdcbc5329a0f76b359daea00d963b9f6c2ead5d249f1d3f1951f6cdbb2726", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d18cdcbc5329a0f76b359daea00d963b9f6c2ead5d249f1d3f1951f6cdbb2726", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d18cdcbc5329a0f76b359daea00d963b9f6c2ead5d249f1d3f1951f6cdbb2726", kill_on_drop: false }`
[INFO] [stdout] d18cdcbc5329a0f76b359daea00d963b9f6c2ead5d249f1d3f1951f6cdbb2726
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+78c81ee3917a99dcff6e2e6822800f0492c415c3" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9b8a7feb770250d875d427fd2f1fb7b6e53472586f14413e2aea94a35d63410e
[INFO] running `Command { std: "docker" "start" "-a" "9b8a7feb770250d875d427fd2f1fb7b6e53472586f14413e2aea94a35d63410e", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.146
[INFO] [stderr]     Checking diff v0.1.13
[INFO] [stderr]     Checking utf8_slice v1.0.0
[INFO] [stderr]     Checking yansi v0.5.1
[INFO] [stderr]     Checking pretty_assertions v1.4.0
[INFO] [stderr]     Checking getrandom v0.2.10
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking learn-rust v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused label
[INFO] [stdout]  --> src/rust_by_example/_08_flow_of_control/_2_loop_1_nesting_and_labels.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |         'inner: 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: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/rust_by_example/_20_std_misc/_8_foreign_function_interface.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused label
[INFO] [stdout]   --> src/rust_by_practice/_07_flow_control/_1_flow_control_11_loop.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |         'inner2: loop {
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/rust_by_practice/_10_generics_and_traits/_3_traits_2_derive.rs:27:25
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let _this_is_true = (_one_second == _one_second);
[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] 27 -     let _this_is_true = (_one_second == _one_second);
[INFO] [stdout] 27 +     let _this_is_true = _one_second == _one_second;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/rust_by_practice/_10_generics_and_traits/_3_traits_2_derive.rs:28:25
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let _this_is_true = (_one_second > _one_second);
[INFO] [stdout]    |                         ^                         ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 28 -     let _this_is_true = (_one_second > _one_second);
[INFO] [stdout] 28 +     let _this_is_true = _one_second > _one_second;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]  --> src/rust_by_practice/_18_functional_programming/_1_closure_11_closure_as_return_types.rs:2:26
[INFO] [stdout]   |
[INFO] [stdout] 2 | fn factory(x:i32) -> Box<(dyn Fn(i32) -> i32)> {
[INFO] [stdout]   |                          ^                  ^
[INFO] [stdout]   |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 2 - fn factory(x:i32) -> Box<(dyn Fn(i32) -> i32)> {
[INFO] [stdout] 2 + fn factory(x:i32) -> Box<dyn Fn(i32) -> i32> {
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `format`
[INFO] [stdout]  --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_4_newtype.rs:2:22
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fmt::{self, format};
[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::borrow::BorrowMut`
[INFO] [stdout]  --> src/rust_by_practice/_31_fighting_with_compiler/_1_borrowing_1.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::BorrowMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `test` should have an upper camel case name
[INFO] [stdout]  --> src/rust_by_practice/_31_fighting_with_compiler/_1_borrowing_1.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct test {
[INFO] [stdout]   |        ^^^^ help: convert the identifier to upper camel case: `Test`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused label
[INFO] [stdout]  --> src/rust_by_example/_08_flow_of_control/_2_loop_1_nesting_and_labels.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |         'inner: 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: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/rust_by_example/_20_std_misc/_8_foreign_function_interface.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused label
[INFO] [stdout]   --> src/rust_by_practice/_07_flow_control/_1_flow_control_11_loop.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |         'inner2: loop {
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/rust_by_practice/_10_generics_and_traits/_3_traits_2_derive.rs:27:25
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let _this_is_true = (_one_second == _one_second);
[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] 27 -     let _this_is_true = (_one_second == _one_second);
[INFO] [stdout] 27 +     let _this_is_true = _one_second == _one_second;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/rust_by_practice/_10_generics_and_traits/_3_traits_2_derive.rs:28:25
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let _this_is_true = (_one_second > _one_second);
[INFO] [stdout]    |                         ^                         ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 28 -     let _this_is_true = (_one_second > _one_second);
[INFO] [stdout] 28 +     let _this_is_true = _one_second > _one_second;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]  --> src/rust_by_practice/_18_functional_programming/_1_closure_11_closure_as_return_types.rs:2:26
[INFO] [stdout]   |
[INFO] [stdout] 2 | fn factory(x:i32) -> Box<(dyn Fn(i32) -> i32)> {
[INFO] [stdout]   |                          ^                  ^
[INFO] [stdout]   |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 2 - fn factory(x:i32) -> Box<(dyn Fn(i32) -> i32)> {
[INFO] [stdout] 2 + fn factory(x:i32) -> Box<dyn Fn(i32) -> i32> {
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `format`
[INFO] [stdout]  --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_4_newtype.rs:2:22
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fmt::{self, format};
[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::borrow::BorrowMut`
[INFO] [stdout]  --> src/rust_by_practice/_31_fighting_with_compiler/_1_borrowing_1.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::BorrowMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `test` should have an upper camel case name
[INFO] [stdout]  --> src/rust_by_practice/_31_fighting_with_compiler/_1_borrowing_1.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct test {
[INFO] [stdout]   |        ^^^^ help: convert the identifier to upper camel case: `Test`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]  --> src/rust_by_practice/_04_basic_types/_4_functions_3.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     never_return();
[INFO] [stdout]   |     -------------- any code following this expression is unreachable
[INFO] [stdout] 5 |
[INFO] [stdout] 6 |     println!("Failed!");
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]   = note: this warning originates in the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]  --> src/rust_by_practice/_04_basic_types/_4_functions_3.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     never_return();
[INFO] [stdout]   |     -------------- any code following this expression is unreachable
[INFO] [stdout] 5 |
[INFO] [stdout] 6 |     println!("Failed!");
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]   = note: this warning originates in the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `logical`
[INFO] [stdout]  --> src/rust_by_example/_02_primitives/_0_primitives.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 |     let logical: bool = true;
[INFO] [stdout]   |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_logical`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a_float`
[INFO] [stdout]  --> src/rust_by_example/_02_primitives/_0_primitives.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let a_float: f64 = 1.0;  // Regular annotation
[INFO] [stdout]   |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_a_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `an_integer`
[INFO] [stdout]  --> src/rust_by_example/_02_primitives/_0_primitives.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let an_integer   = 5i32; // Suffix annotation
[INFO] [stdout]   |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_an_integer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `default_float`
[INFO] [stdout]  --> src/rust_by_example/_02_primitives/_0_primitives.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let default_float   = 3.0; // `f64`
[INFO] [stdout]   |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `default_integer`
[INFO] [stdout]   --> src/rust_by_example/_02_primitives/_0_primitives.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let default_integer = 7;   // `i32`
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_integer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `inferred_type` is assigned to, but never used
[INFO] [stdout]   --> src/rust_by_example/_02_primitives/_0_primitives.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let mut inferred_type = 12; // Type i64 is inferred from another line.
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_inferred_type` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `mutable` is assigned to, but never used
[INFO] [stdout]   --> src/rust_by_example/_02_primitives/_0_primitives.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut mutable = 12; // Mutable `i32`
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_mutable` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mutable`
[INFO] [stdout]   --> src/rust_by_example/_02_primitives/_0_primitives.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let mutable = true;
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mutable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `inferred_type` is never read
[INFO] [stdout]   --> src/rust_by_example/_02_primitives/_0_primitives.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     inferred_type = 4294967296i64;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `mutable` is never read
[INFO] [stdout]   --> src/rust_by_example/_02_primitives/_0_primitives.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     mutable = 21;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/rust_by_example/_03_custom_types/_2_enums_0.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |     let x = Operations::Add;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `noisy_unused_variable`
[INFO] [stdout]   --> src/rust_by_example/_04_variable_bindings/_0_variable_bindings.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let noisy_unused_variable = 2u32;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_noisy_unused_variable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `logical`
[INFO] [stdout]  --> src/rust_by_example/_02_primitives/_0_primitives.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 |     let logical: bool = true;
[INFO] [stdout]   |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_logical`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a_float`
[INFO] [stdout]  --> src/rust_by_example/_02_primitives/_0_primitives.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let a_float: f64 = 1.0;  // Regular annotation
[INFO] [stdout]   |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_a_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `an_integer`
[INFO] [stdout]  --> src/rust_by_example/_02_primitives/_0_primitives.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let an_integer   = 5i32; // Suffix annotation
[INFO] [stdout]   |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_an_integer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `default_float`
[INFO] [stdout]  --> src/rust_by_example/_02_primitives/_0_primitives.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let default_float   = 3.0; // `f64`
[INFO] [stdout]   |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `default_integer`
[INFO] [stdout]   --> src/rust_by_example/_02_primitives/_0_primitives.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let default_integer = 7;   // `i32`
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_integer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `inferred_type` is assigned to, but never used
[INFO] [stdout]   --> src/rust_by_example/_02_primitives/_0_primitives.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let mut inferred_type = 12; // Type i64 is inferred from another line.
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_inferred_type` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `mutable` is assigned to, but never used
[INFO] [stdout]   --> src/rust_by_example/_02_primitives/_0_primitives.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut mutable = 12; // Mutable `i32`
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_mutable` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mutable`
[INFO] [stdout]   --> src/rust_by_example/_02_primitives/_0_primitives.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let mutable = true;
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mutable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `inferred_type` is never read
[INFO] [stdout]   --> src/rust_by_example/_02_primitives/_0_primitives.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     inferred_type = 4294967296i64;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `mutable` is never read
[INFO] [stdout]   --> src/rust_by_example/_02_primitives/_0_primitives.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     mutable = 21;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/rust_by_example/_08_flow_of_control/_6_if_let.rs:104:12
[INFO] [stdout]     |
[INFO] [stdout] 104 |         if let Foo::Bar = a {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout]     = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/rust_by_example/_03_custom_types/_2_enums_0.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |     let x = Operations::Add;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `noisy_unused_variable`
[INFO] [stdout]   --> src/rust_by_example/_04_variable_bindings/_0_variable_bindings.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let noisy_unused_variable = 2u32;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_noisy_unused_variable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/rust_by_example/_08_flow_of_control/_6_if_let.rs:104:12
[INFO] [stdout]     |
[INFO] [stdout] 104 |         if let Foo::Bar = a {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout]     = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `years_as_primitive_1`
[INFO] [stdout]   --> src/rust_by_example/_14_generics/_7_new_type_idiom.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let years_as_primitive_1: i64 = years.0; // Tuple
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_years_as_primitive_1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `years_as_primitive_2`
[INFO] [stdout]   --> src/rust_by_example/_14_generics/_7_new_type_idiom.rs:33:15
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let Years(years_as_primitive_2) = years; // Destructuring
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_years_as_primitive_2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `years_as_primitive_1`
[INFO] [stdout]   --> src/rust_by_example/_14_generics/_7_new_type_idiom.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let years_as_primitive_1: i64 = years.0; // Tuple
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_years_as_primitive_1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `years_as_primitive_2`
[INFO] [stdout]   --> src/rust_by_example/_14_generics/_7_new_type_idiom.rs:33:15
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let Years(years_as_primitive_2) = years; // Destructuring
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_years_as_primitive_2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `apple`
[INFO] [stdout]   --> src/rust_by_example/_18_error_handling/_3_option_and_unwrap_4_unpacking_options_and_defaults.rs:24:13
[INFO] [stdout]    |
[INFO] [stdout] 24 |         let apple = Some(Fruit::Apple);
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_apple`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `apple`
[INFO] [stdout]   --> src/rust_by_example/_18_error_handling/_3_option_and_unwrap_4_unpacking_options_and_defaults.rs:24:13
[INFO] [stdout]    |
[INFO] [stdout] 24 |         let apple = Some(Fruit::Apple);
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_apple`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first_number_str`
[INFO] [stdout]  --> src/rust_by_example/_18_error_handling/_4_result_4_introducing_questionmark_2_try_macro.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn multiply(first_number_str: &str, second_number_str: &str) -> Result<i32, ParseIntError> {
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_first_number_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `second_number_str`
[INFO] [stdout]  --> src/rust_by_example/_18_error_handling/_4_result_4_introducing_questionmark_2_try_macro.rs:6:37
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn multiply(first_number_str: &str, second_number_str: &str) -> Result<i32, ParseIntError> {
[INFO] [stdout]   |                                     ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_second_number_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first_number_str`
[INFO] [stdout]  --> src/rust_by_example/_18_error_handling/_4_result_4_introducing_questionmark_2_try_macro.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn multiply(first_number_str: &str, second_number_str: &str) -> Result<i32, ParseIntError> {
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_first_number_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `second_number_str`
[INFO] [stdout]  --> src/rust_by_example/_18_error_handling/_4_result_4_introducing_questionmark_2_try_macro.rs:6:37
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn multiply(first_number_str: &str, second_number_str: &str) -> Result<i32, ParseIntError> {
[INFO] [stdout]   |                                     ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_second_number_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]  --> src/rust_by_practice/_03_variables/_0_variables_1_binding_and_mutability.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let y: i32; // Uninitialized but also unused, only a Warning !
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]  --> src/rust_by_practice/_03_variables/_0_variables_1_binding_and_mutability.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let y: i32; // Uninitialized but also unused, only a Warning !
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]  --> src/rust_by_practice/_03_variables/_0_variables_6_shadowing.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let x = x; 
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/rust_by_practice/_03_variables/_0_variables_6_shadowing.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let y = 4;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]  --> src/rust_by_practice/_03_variables/_0_variables_6_shadowing.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let x = x; 
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/rust_by_practice/_03_variables/_0_variables_6_shadowing.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let y = "I can also be bound to text!"; 
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/rust_by_practice/_03_variables/_0_variables_6_shadowing.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let y = 4;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `x` is never read
[INFO] [stdout]  --> src/rust_by_practice/_03_variables/_0_variables_6_shadowing.rs:4:22
[INFO] [stdout]   |
[INFO] [stdout] 4 |     let mut x: i32 = 1;
[INFO] [stdout]   |                      ^
[INFO] [stdout]   |
[INFO] [stdout]   = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `y` is assigned to, but never used
[INFO] [stdout]  --> src/rust_by_practice/_04_basic_types/_1_numbers_1_integer.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let mut y = 5;
[INFO] [stdout]   |         ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: consider using `_y` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/rust_by_practice/_03_variables/_0_variables_6_shadowing.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let y = "I can also be bound to text!"; 
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `x` is never read
[INFO] [stdout]  --> src/rust_by_practice/_03_variables/_0_variables_6_shadowing.rs:4:22
[INFO] [stdout]   |
[INFO] [stdout] 4 |     let mut x: i32 = 1;
[INFO] [stdout]   |                      ^
[INFO] [stdout]   |
[INFO] [stdout]   = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `z`
[INFO] [stdout]  --> src/rust_by_practice/_04_basic_types/_1_numbers_1_integer.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let z = 10; // Type of z ? 
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_z`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `y` is never read
[INFO] [stdout]  --> src/rust_by_practice/_04_basic_types/_1_numbers_1_integer.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     y = x;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]  --> src/rust_by_practice/_04_basic_types/_1_numbers_2_integer.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 |     let v: u16 = 38_u8 as u16;
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `y` is assigned to, but never used
[INFO] [stdout]  --> src/rust_by_practice/_04_basic_types/_1_numbers_1_integer.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let mut y = 5;
[INFO] [stdout]   |         ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: consider using `_y` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `z`
[INFO] [stdout]  --> src/rust_by_practice/_04_basic_types/_1_numbers_1_integer.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let z = 10; // Type of z ? 
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_z`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `y` is never read
[INFO] [stdout]  --> src/rust_by_practice/_04_basic_types/_1_numbers_1_integer.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     y = x;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]  --> src/rust_by_practice/_04_basic_types/_1_numbers_2_integer.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 |     let v: u16 = 38_u8 as u16;
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]  --> src/rust_by_practice/_04_basic_types/_1_numbers_7_floating_point.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let y: f32 = 0.12; // f32
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `z`
[INFO] [stdout]  --> src/rust_by_practice/_04_basic_types/_1_numbers_7_floating_point.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let z = 0.01_f64; // f64
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_z`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]  --> src/rust_by_practice/_04_basic_types/_1_numbers_7_floating_point.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let y: f32 = 0.12; // f32
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `z`
[INFO] [stdout]  --> src/rust_by_practice/_04_basic_types/_1_numbers_7_floating_point.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let z = 0.01_f64; // f64
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_z`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]  --> src/rust_by_practice/_04_basic_types/_2_cbu_3_bool.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let t = true;
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]  --> src/rust_by_practice/_04_basic_types/_2_cbu_5_unit.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let v = (2, 3);
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]  --> src/rust_by_practice/_04_basic_types/_2_cbu_3_bool.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let t = true;
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]  --> src/rust_by_practice/_04_basic_types/_2_cbu_5_unit.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let v = (2, 3);
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/rust_by_practice/_05_ownership_and_borrowing/_2_referencing_and_borrowing_3_reference.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 |     let mut s = String::from("hello, ");
[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: `s`
[INFO] [stdout]   --> src/rust_by_practice/_05_ownership_and_borrowing/_2_referencing_and_borrowing_3_reference.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn borrow_object(s: &String) {}
[INFO] [stdout]    |                  ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/rust_by_practice/_05_ownership_and_borrowing/_2_referencing_and_borrowing_3_reference.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 |     let mut s = String::from("hello, ");
[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: `s`
[INFO] [stdout]   --> src/rust_by_practice/_05_ownership_and_borrowing/_2_referencing_and_borrowing_3_reference.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn borrow_object(s: &String) {}
[INFO] [stdout]    |                  ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/rust_by_practice/_05_ownership_and_borrowing/_2_referencing_and_borrowing_7_borrowing_rules.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let mut s = String::from("hello");
[INFO] [stdout]   |         ----^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/rust_by_practice/_05_ownership_and_borrowing/_2_referencing_and_borrowing_8_mutablity.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn borrow_object(s: &mut String) {}
[INFO] [stdout]    |                  ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/rust_by_practice/_05_ownership_and_borrowing/_2_referencing_and_borrowing_9_mutablity.rs:13:18
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn borrow_object(s: &String) {}
[INFO] [stdout]    |                  ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r1`
[INFO] [stdout]  --> src/rust_by_practice/_05_ownership_and_borrowing/_2_referencing_and_borrowing_11_nll.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let r1 = &mut s;
[INFO] [stdout]   |         ^^ help: if this is intentional, prefix it with an underscore: `_r1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/rust_by_practice/_05_ownership_and_borrowing/_2_referencing_and_borrowing_7_borrowing_rules.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let mut s = String::from("hello");
[INFO] [stdout]   |         ----^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r2`
[INFO] [stdout]  --> src/rust_by_practice/_05_ownership_and_borrowing/_2_referencing_and_borrowing_11_nll.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let r2 = &mut s;
[INFO] [stdout]   |         ^^ help: if this is intentional, prefix it with an underscore: `_r2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_1_string_1_str_and_str.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 |     let s: &str = "hello, world";
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/rust_by_practice/_05_ownership_and_borrowing/_2_referencing_and_borrowing_8_mutablity.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn borrow_object(s: &mut String) {}
[INFO] [stdout]    |                  ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/rust_by_practice/_05_ownership_and_borrowing/_2_referencing_and_borrowing_9_mutablity.rs:13:18
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn borrow_object(s: &String) {}
[INFO] [stdout]    |                  ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r1`
[INFO] [stdout]  --> src/rust_by_practice/_05_ownership_and_borrowing/_2_referencing_and_borrowing_11_nll.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let r1 = &mut s;
[INFO] [stdout]   |         ^^ help: if this is intentional, prefix it with an underscore: `_r1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r2`
[INFO] [stdout]  --> src/rust_by_practice/_05_ownership_and_borrowing/_2_referencing_and_borrowing_11_nll.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let r2 = &mut s;
[INFO] [stdout]   |         ^^ help: if this is intentional, prefix it with an underscore: `_r2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_1_string_1_str_and_str.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 |     let s: &str = "hello, world";
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s1`
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_1_string_8_str_and_string.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let s1: &str = s;
[INFO] [stdout]   |         ^^ help: if this is intentional, prefix it with an underscore: `_s1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s1`
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_1_string_8_str_and_string.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let s1: &str = s;
[INFO] [stdout]   |         ^^ help: if this is intentional, prefix it with an underscore: `_s1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rocket`
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_1_string_12_utf8_slice_example.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let rocket = utf8_slice::slice(s, 4, 5);
[INFO] [stdout]   |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_rocket`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arr0`
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_2_array_2.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 |     let arr0 = [1, 2, 3];
[INFO] [stdout]   |         ^^^^ help: if this is intentional, prefix it with an underscore: `_arr0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name0`
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_2_array_6.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let name0 = names.get(0).unwrap();
[INFO] [stdout]   |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_name0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rocket`
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_1_string_12_utf8_slice_example.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let rocket = utf8_slice::slice(s, 4, 5);
[INFO] [stdout]   |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_rocket`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arr0`
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_2_array_2.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 |     let arr0 = [1, 2, 3];
[INFO] [stdout]   |         ^^^^ help: if this is intentional, prefix it with an underscore: `_arr0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s1`
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_3_slice_1.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let s1: &[i32] = &arr[0..2];
[INFO] [stdout]   |         ^^ help: if this is intentional, prefix it with an underscore: `_s1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s2`
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_3_slice_1.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let s2: &str = "hello, world";
[INFO] [stdout]   |         ^^ help: if this is intentional, prefix it with an underscore: `_s2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name0`
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_2_array_6.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let name0 = names.get(0).unwrap();
[INFO] [stdout]   |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_name0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s1`
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_3_slice_1.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let s1: &[i32] = &arr[0..2];
[INFO] [stdout]   |         ^^ help: if this is intentional, prefix it with an underscore: `_s1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s2`
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_3_slice_1.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let s2: &str = "hello, world";
[INFO] [stdout]   |         ^^ help: if this is intentional, prefix it with an underscore: `_s2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_4_tuple_1.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let t: (u8, u16, i64, &str,String) = (1u8, 2u16, 3i64, "hello", String::from(", world"));
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_4_tuple_1.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let t: (u8, u16, i64, &str,String) = (1u8, 2u16, 3i64, "hello", String::from(", world"));
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/rust_by_practice/_06_compound_types/_5_struct_1_the_types_of_structs.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let p = Person {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]   --> src/rust_by_practice/_06_compound_types/_5_struct_2_the_types_of_structs.rs:18:27
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn do_something_with_unit(u: Unit) {   }
[INFO] [stdout]    |                           ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/rust_by_practice/_06_compound_types/_5_struct_1_the_types_of_structs.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let p = Person {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]   --> src/rust_by_practice/_06_compound_types/_5_struct_2_the_types_of_structs.rs:18:27
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn do_something_with_unit(u: Unit) {   }
[INFO] [stdout]    |                           ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u2`
[INFO] [stdout]   --> src/rust_by_practice/_06_compound_types/_5_struct_6_operating_on_structs.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let u2 = set_email(u1);
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_u2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u2`
[INFO] [stdout]   --> src/rust_by_practice/_06_compound_types/_5_struct_6_operating_on_structs.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let u2 = set_email(u1);
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_u2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg1`
[INFO] [stdout]   --> src/rust_by_practice/_06_compound_types/_6_enum_2.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let msg1 = Message::Move{x:1, y:2}; // Instantiating with x = 1, y = 2 
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_msg1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg2`
[INFO] [stdout]   --> src/rust_by_practice/_06_compound_types/_6_enum_2.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let msg2 = Message::Write("hello, world!".to_string()); // Instantiating with "hello, world!"
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_msg2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg1`
[INFO] [stdout]   --> src/rust_by_practice/_06_compound_types/_6_enum_2.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let msg1 = Message::Move{x:1, y:2}; // Instantiating with x = 1, y = 2 
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_msg1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg2`
[INFO] [stdout]   --> src/rust_by_practice/_06_compound_types/_6_enum_2.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let msg2 = Message::Write("hello, world!".to_string()); // Instantiating with "hello, world!"
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_msg2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `none`
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_6_enum_5.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let none = plus_one(None);
[INFO] [stdout]   |         ^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named variant `None`
[INFO] [stdout]   |
[INFO] [stdout] 7 -     let none = plus_one(None);
[INFO] [stdout] 7 +     let std::prelude::v1::None = plus_one(None);
[INFO] [stdout]   |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let _none = plus_one(None);
[INFO] [stdout]   |         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `none`
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_6_enum_5.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let none = plus_one(None);
[INFO] [stdout]   |         ^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named variant `None`
[INFO] [stdout]   |
[INFO] [stdout] 7 -     let none = plus_one(None);
[INFO] [stdout] 7 +     let std::prelude::v1::None = plus_one(None);
[INFO] [stdout]   |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let _none = plus_one(None);
[INFO] [stdout]   |         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]  --> src/rust_by_practice/_07_flow_control/_1_flow_control_4_for.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     for name in names.clone() {
[INFO] [stdout]   |         ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]  --> src/rust_by_practice/_07_flow_control/_1_flow_control_4_for.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     for name in names.clone() {
[INFO] [stdout]   |         ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/rust_by_practice/_07_flow_control/_1_flow_control_4_for.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     for n in numbers {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/rust_by_practice/_07_flow_control/_1_flow_control_4_for.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     for n in numbers {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]  --> src/rust_by_practice/_07_flow_control/_1_flow_control_7_continue_and_break.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     for i in 0..=100 {
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]  --> src/rust_by_practice/_07_flow_control/_1_flow_control_7_continue_and_break.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     for i in 0..=100 {
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]  --> src/rust_by_practice/_07_flow_control/_1_flow_control_8_continue_and_break.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     for i in 0..=100 {
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]  --> src/rust_by_practice/_07_flow_control/_1_flow_control_8_continue_and_break.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     for i in 0..=100 {
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]   --> src/rust_by_practice/_08_pattern_match/_1_match_matches_and_if_let_7_if_let.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 |     if let Foo::Bar(i) = a {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]    = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]   --> src/rust_by_practice/_08_pattern_match/_1_match_matches_and_if_let_7_if_let.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 |     if let Foo::Bar(i) = a {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]    = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `integer`
[INFO] [stdout]  --> src/rust_by_practice/_10_generics_and_traits/_1_generics_3_struct_and_impl.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let integer = Point { x: 5, y: 10 };
[INFO] [stdout]   |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_integer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `float`
[INFO] [stdout]   --> src/rust_by_practice/_10_generics_and_traits/_1_generics_3_struct_and_impl.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let float = Point { x: 1.0, y: 4.0 };
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/rust_by_practice/_10_generics_and_traits/_1_generics_4_struct_and_impl.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let p = Point{x: 5, y : "hello".to_string()};
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arrays`
[INFO] [stdout]  --> src/rust_by_practice/_10_generics_and_traits/_2_const_generics_1.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let arrays = [
[INFO] [stdout]   |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_arrays`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `integer`
[INFO] [stdout]  --> src/rust_by_practice/_10_generics_and_traits/_1_generics_3_struct_and_impl.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let integer = Point { x: 5, y: 10 };
[INFO] [stdout]   |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_integer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `float`
[INFO] [stdout]   --> src/rust_by_practice/_10_generics_and_traits/_1_generics_3_struct_and_impl.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let float = Point { x: 1.0, y: 4.0 };
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/rust_by_practice/_10_generics_and_traits/_1_generics_4_struct_and_impl.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let p = Point{x: 5, y : "hello".to_string()};
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arrays`
[INFO] [stdout]  --> src/rust_by_practice/_10_generics_and_traits/_2_const_generics_1.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let arrays = [
[INFO] [stdout]   |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_arrays`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/rust_by_practice/_11_collection_types/_2_vector_1_basic_operations.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn is_vec(v: &Vec<u8>) {}
[INFO] [stdout]    |           ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/rust_by_practice/_11_collection_types/_2_vector_1_basic_operations.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn is_vec(v: &Vec<u8>) {}
[INFO] [stdout]    |           ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c1`
[INFO] [stdout]  --> src/rust_by_practice/_12_type_conversion/_1_as_1.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let c1: char = decimal as u8 as char;
[INFO] [stdout]   |         ^^ help: if this is intentional, prefix it with an underscore: `_c1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c2`
[INFO] [stdout]  --> src/rust_by_practice/_12_type_conversion/_1_as_1.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let c2 = integer as char;
[INFO] [stdout]   |         ^^ help: if this is intentional, prefix it with an underscore: `_c2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]  --> src/rust_by_practice/_12_type_conversion/_1_as_2.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let v = 1000 as u8;
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i3`
[INFO] [stdout]   --> src/rust_by_practice/_12_type_conversion/_2_from_into_1.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 |    let i3: u32 = 'a'.into();
[INFO] [stdout]    |        ^^ help: if this is intentional, prefix it with an underscore: `_i3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/rust_by_practice/_12_type_conversion/_2_from_into_1.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 |    let s: String = 'a'.into();
[INFO] [stdout]    |        ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c1`
[INFO] [stdout]  --> src/rust_by_practice/_12_type_conversion/_1_as_1.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let c1: char = decimal as u8 as char;
[INFO] [stdout]   |         ^^ help: if this is intentional, prefix it with an underscore: `_c1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c2`
[INFO] [stdout]  --> src/rust_by_practice/_12_type_conversion/_1_as_1.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let c2 = integer as char;
[INFO] [stdout]   |         ^^ help: if this is intentional, prefix it with an underscore: `_c2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]  --> src/rust_by_practice/_12_type_conversion/_1_as_2.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let v = 1000 as u8;
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i3`
[INFO] [stdout]   --> src/rust_by_practice/_12_type_conversion/_2_from_into_1.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 |    let i3: u32 = 'a'.into();
[INFO] [stdout]    |        ^^ help: if this is intentional, prefix it with an underscore: `_i3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]  --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let num = unsafe { std::mem::transmute::<[u8; 4], u32>(raw_bytes) };
[INFO] [stdout]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]  --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let num = u32::from_ne_bytes(raw_bytes);
[INFO] [stdout]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ptr_num_transmute`
[INFO] [stdout]   --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let ptr_num_transmute = unsafe { std::mem::transmute::<&i32, usize>(ptr) };
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ptr_num_transmute`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/rust_by_practice/_12_type_conversion/_2_from_into_1.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 |    let s: String = 'a'.into();
[INFO] [stdout]    |        ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ptr_num_cast`
[INFO] [stdout]   --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let ptr_num_cast = ptr as *const i32 as usize;
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ptr_num_cast`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val_transmuted`
[INFO] [stdout]   --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let val_transmuted = unsafe { std::mem::transmute::<&mut i32, &mut u32>(ptr) };
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_val_transmuted`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val_casts`
[INFO] [stdout]   --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let val_casts = unsafe { &mut *(ptr as *mut i32 as *mut u32) };
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_val_casts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ele`
[INFO] [stdout]  --> src/rust_by_practice/_13_result_and_panic/_1_panic_2.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let ele = v[2];
[INFO] [stdout]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_ele`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ele`
[INFO] [stdout]  --> src/rust_by_practice/_13_result_and_panic/_1_panic_2.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let ele = v.get(2).unwrap();
[INFO] [stdout]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_ele`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/rust_by_practice/_13_result_and_panic/_1_panic_2.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let v = production_rate_per_hour(2);
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]  --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let num = unsafe { std::mem::transmute::<[u8; 4], u32>(raw_bytes) };
[INFO] [stdout]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]  --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let num = u32::from_ne_bytes(raw_bytes);
[INFO] [stdout]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ptr_num_transmute`
[INFO] [stdout]   --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let ptr_num_transmute = unsafe { std::mem::transmute::<&i32, usize>(ptr) };
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ptr_num_transmute`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ptr_num_cast`
[INFO] [stdout]   --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let ptr_num_cast = ptr as *const i32 as usize;
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ptr_num_cast`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val_transmuted`
[INFO] [stdout]   --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let val_transmuted = unsafe { std::mem::transmute::<&mut i32, &mut u32>(ptr) };
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_val_transmuted`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val_casts`
[INFO] [stdout]   --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let val_casts = unsafe { &mut *(ptr as *mut i32 as *mut u32) };
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_val_casts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ele`
[INFO] [stdout]  --> src/rust_by_practice/_13_result_and_panic/_1_panic_2.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let ele = v[2];
[INFO] [stdout]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_ele`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ele`
[INFO] [stdout]  --> src/rust_by_practice/_13_result_and_panic/_1_panic_2.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let ele = v.get(2).unwrap();
[INFO] [stdout]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_ele`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/rust_by_practice/_13_result_and_panic/_1_panic_2.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let v = production_rate_per_hour(2);
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]   --> src/rust_by_practice/_16_formatted_output/_3_formatting_9_capture_the_environment.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let (width, precision) = get_format();
[INFO] [stdout]    |          ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `precision`
[INFO] [stdout]   --> src/rust_by_practice/_16_formatted_output/_3_formatting_9_capture_the_environment.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let (width, precision) = get_format();
[INFO] [stdout]    |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_precision`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/rust_by_practice/_17_lifetime/_1_basic_5_function.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let y: &i32 = &_x;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_1_basic_10_elision.rs:9:28
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn longest<'a>(x: &'a str, y: &str) -> &'a str {
[INFO] [stdout]   |                            ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]   --> src/rust_by_practice/_16_formatted_output/_3_formatting_9_capture_the_environment.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let (width, precision) = get_format();
[INFO] [stdout]    |          ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `precision`
[INFO] [stdout]   --> src/rust_by_practice/_16_formatted_output/_3_formatting_9_capture_the_environment.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let (width, precision) = get_format();
[INFO] [stdout]    |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_precision`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/rust_by_practice/_17_lifetime/_1_basic_5_function.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let y: &i32 = &_x;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `y` is assigned to, but never used
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_3_advanced_3_trait_bounds.rs:2:26
[INFO] [stdout]   |
[INFO] [stdout] 2 | fn f<'a, 'b>(x: &'a i32, mut y: &'b i32) where 'a: 'b {
[INFO] [stdout]   |                          ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: consider using `_y` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_3_advanced_3_trait_bounds.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 |     let r: &'b &'a i32 = &&0;   
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `y` is never read
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_3_advanced_3_trait_bounds.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     y = x;                      
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_1_basic_10_elision.rs:9:28
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn longest<'a>(x: &'a str, y: &str) -> &'a str {
[INFO] [stdout]   |                            ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]  --> src/rust_by_practice/_18_functional_programming/_1_closure_4_type_inferred.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 |     let s = example_closure(String::from("hello"));
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]  --> src/rust_by_practice/_18_functional_programming/_1_closure_4_type_inferred.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let n = example_closure("5".to_owned());
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/rust_by_practice/_18_functional_programming/_1_closure_8_fn_fnmut_fnonce.rs:10:43
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn exec<'a, F: FnOnce(&'a str) -> String>(mut f: F) {
[INFO] [stdout]    |                                           ----^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `y` is assigned to, but never used
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_3_advanced_3_trait_bounds.rs:2:26
[INFO] [stdout]   |
[INFO] [stdout] 2 | fn f<'a, 'b>(x: &'a i32, mut y: &'b i32) where 'a: 'b {
[INFO] [stdout]   |                          ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: consider using `_y` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_3_advanced_3_trait_bounds.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 |     let r: &'b &'a i32 = &&0;   
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `y` is never read
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_3_advanced_3_trait_bounds.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     y = x;                      
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]  --> src/rust_by_practice/_18_functional_programming/_1_closure_4_type_inferred.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 |     let s = example_closure(String::from("hello"));
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]  --> src/rust_by_practice/_18_functional_programming/_1_closure_4_type_inferred.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let n = example_closure("5".to_owned());
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/rust_by_practice/_18_functional_programming/_1_closure_8_fn_fnmut_fnonce.rs:10:43
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn exec<'a, F: FnOnce(&'a str) -> String>(mut f: F) {
[INFO] [stdout]    |                                           ----^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v1`
[INFO] [stdout]   --> src/rust_by_practice/_18_functional_programming/_1_closure_closures_in_structs_example.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let v1 = c.value(1);
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_v1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_5_type_alias.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let x = Operations::Add;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]  --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_8_dst_and_unsized_type.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 |     let s: &str = "Hello there!";
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arr`
[INFO] [stdout]  --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_8_dst_and_unsized_type.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let arr: &[u8] = &[1, 2, 3];
[INFO] [stdout]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_arr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thing`
[INFO] [stdout]  --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_9_dst_and_unsized_type.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn foobar(thing: &dyn Display) {}    
[INFO] [stdout]   |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_thing`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/rust_by_example/_01_hello_world/_2_1_debug_1.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Structure(i32);
[INFO] [stdout]   |        --------- ^^^
[INFO] [stdout]   |        |
[INFO] [stdout]   |        field in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider removing this field
[INFO] [stdout]   = note: `Structure` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/rust_by_example/_01_hello_world/_2_1_debug_1.rs:9:13
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct Deep(Structure);
[INFO] [stdout]   |        ---- ^^^^^^^^^
[INFO] [stdout]   |        |
[INFO] [stdout]   |        field in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider removing this field
[INFO] [stdout]   = note: `Deep` 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 `name` and `age` are never read
[INFO] [stdout]  --> src/rust_by_example/_01_hello_world/_2_1_debug_2.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | struct Person<'a> {
[INFO] [stdout]   |        ------ fields in this struct
[INFO] [stdout] 3 |     name: &'a str,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 4 |     age: u8
[INFO] [stdout]   |     ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Person` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Subtract` is never constructed
[INFO] [stdout]   --> src/rust_by_example/_03_custom_types/_2_enums_0.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 54 | enum VeryVerboseEnumOfThingsToDoWithNumbers {
[INFO] [stdout]    |      -------------------------------------- variant in this enum
[INFO] [stdout] 55 |     Add,
[INFO] [stdout] 56 |     Subtract,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `run` is never used
[INFO] [stdout]   --> src/rust_by_example/_03_custom_types/_2_enums_0.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | impl VeryVerboseEnumOfThingsToDoWithNumbers {
[INFO] [stdout]    | ------------------------------------------- method in this implementation
[INFO] [stdout] 63 |     fn run(&self, x: i32, y: i32) -> i32 {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `contents` is never read
[INFO] [stdout]  --> src/rust_by_example/_10_modules/_2_struct_visibility.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     pub struct ClosedBox<T> {
[INFO] [stdout]   |                --------- field in this struct
[INFO] [stdout] 9 |         contents: T,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `function` is never used
[INFO] [stdout]  --> src/rust_by_example/_10_modules/_4_super_and_self.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 |     pub fn function() {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/rust_by_example/_15_scoping_rules/_4_lifetimes_4_structs.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Borrowed<'a>(&'a i32);
[INFO] [stdout]   |        --------     ^^^^^^^
[INFO] [stdout]   |        |
[INFO] [stdout]   |        field in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider removing this field
[INFO] [stdout]   = note: `Borrowed` 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 `x` and `y` are never read
[INFO] [stdout]   --> src/rust_by_example/_15_scoping_rules/_4_lifetimes_4_structs.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | struct NamedBorrowed<'a> {
[INFO] [stdout]    |        ------------- fields in this struct
[INFO] [stdout]  9 |     x: &'a i32,
[INFO] [stdout]    |     ^
[INFO] [stdout] 10 |     y: &'a i32,
[INFO] [stdout]    |     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NamedBorrowed` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/rust_by_example/_15_scoping_rules/_4_lifetimes_4_structs.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |     Num(i32),
[INFO] [stdout]    |     --- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Either` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 16 -     Num(i32),
[INFO] [stdout] 16 +     Num(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/rust_by_example/_15_scoping_rules/_4_lifetimes_4_structs.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     Ref(&'a i32),
[INFO] [stdout]    |     --- ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Either` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 17 -     Ref(&'a i32),
[INFO] [stdout] 17 +     Ref(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `x` is never read
[INFO] [stdout]  --> src/rust_by_example/_15_scoping_rules/_4_lifetimes_5_traits.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | struct Borrowed<'a> {
[INFO] [stdout]   |        -------- field in this struct
[INFO] [stdout] 4 |     x: &'a i32,
[INFO] [stdout]   |     ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Borrowed` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/rust_by_example/_15_scoping_rules/_4_lifetimes_6_bounds.rs:4:23
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Ref<'a, T: 'a>(&'a T);
[INFO] [stdout]   |        ---            ^^^^^
[INFO] [stdout]   |        |
[INFO] [stdout]   |        field in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider removing this field
[INFO] [stdout]   = note: `Ref` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/rust_by_example/_16_traits/_1_derive.rs:18:16
[INFO] [stdout]    |
[INFO] [stdout] 18 | struct Seconds(i32);
[INFO] [stdout]    |        ------- ^^^
[INFO] [stdout]    |        |
[INFO] [stdout]    |        field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_csv_document` is never used
[INFO] [stdout]  --> src/rust_by_example/_16_traits/_6_impl_trait_1_as_an_argument_type.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn parse_csv_document(src: impl std::io::BufRead) -> std::io::Result<Vec<Vec<String>>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `combine_vecs_explicit_return_type` is never used
[INFO] [stdout]  --> src/rust_by_example/_16_traits/_6_impl_trait_2_as_a_return_type.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn combine_vecs_explicit_return_type(
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]  --> src/rust_by_example/_16_traits/_7_clone.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct Pair(Box<i32>, Box<i32>);
[INFO] [stdout]   |        ---- ^^^^^^^^  ^^^^^^^^
[INFO] [stdout]   |        |
[INFO] [stdout]   |        fields in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider removing these fields
[INFO] [stdout]   = note: `Pair` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Person` is never used
[INFO] [stdout]  --> src/rust_by_example/_16_traits/_8_supertraits.rs:1:7
[INFO] [stdout]   |
[INFO] [stdout] 1 | trait Person {
[INFO] [stdout]   |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Student` is never used
[INFO] [stdout]  --> src/rust_by_example/_16_traits/_8_supertraits.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | trait Student: Person {
[INFO] [stdout]   |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Programmer` is never used
[INFO] [stdout]   --> src/rust_by_example/_16_traits/_8_supertraits.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | trait Programmer {
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `CompSciStudent` is never used
[INFO] [stdout]   --> src/rust_by_example/_16_traits/_8_supertraits.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | trait CompSciStudent: Programmer + Student {
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `comp_sci_student_greeting` is never used
[INFO] [stdout]   --> src/rust_by_example/_16_traits/_8_supertraits.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn comp_sci_student_greeting(student: &dyn CompSciStudent) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `number` is never read
[INFO] [stdout]   --> src/rust_by_example/_18_error_handling/_3_option_and_unwrap_1_unpacking_options_with_questionmark.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct PhoneNumber {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] 12 |     area_code: Option<u8>,
[INFO] [stdout] 13 |     number: u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PhoneNumber` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Banana` is never constructed
[INFO] [stdout]  --> src/rust_by_example/_18_error_handling/_3_option_and_unwrap_4_unpacking_options_and_defaults.rs:2:29
[INFO] [stdout]   |
[INFO] [stdout] 2 | enum Fruit { Apple, Orange, Banana, Kiwi, Lemon }
[INFO] [stdout]   |      -----                  ^^^^^^
[INFO] [stdout]   |      |
[INFO] [stdout]   |      variant in this enum
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Fruit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sqrt` is never used
[INFO] [stdout]  --> src/rust_by_example/_21_testing/_1_unit_testing_2_tests_and_questionmark.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn sqrt(number: f64) -> Result<f64, String> {
[INFO] [stdout]   |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `explicitly_ret_unit` is never used
[INFO] [stdout]   --> src/rust_by_practice/_04_basic_types/_2_cbu_5_unit.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn explicitly_ret_unit() -> () {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_option` is never used
[INFO] [stdout]  --> src/rust_by_practice/_04_basic_types/_4_functions_4_diverging.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn get_option(tp: u8) -> Option<i32> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `never_return_fn` is never used
[INFO] [stdout]   --> src/rust_by_practice/_04_basic_types/_4_functions_4_diverging.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn never_return_fn() -> ! {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `age`, and `hobby` are never read
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_5_struct_1_the_types_of_structs.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | struct Person {
[INFO] [stdout]   |        ------ fields in this struct
[INFO] [stdout] 4 |     name: String,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 5 |     age: u8,
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 6 |     hobby: String
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `SomeTrait` is never used
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_5_struct_2_the_types_of_structs.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | trait SomeTrait {
[INFO] [stdout]   |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Color` is never constructed
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_5_struct_3_the_types_of_structs.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | struct Color(i32, i32, i32);
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Person` is never constructed
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_5_struct_5_operating_on_structs.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | struct Person {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_5_type_alias.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let x = Operations::Add;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_person` is never used
[INFO] [stdout]   --> src/rust_by_practice/_06_compound_types/_5_struct_5_operating_on_structs.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn build_person(name: String, age: u8) -> Person {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `active`, `username`, `email`, and `sign_in_count` are never read
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_5_struct_6_operating_on_structs.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | struct User {
[INFO] [stdout]   |        ---- fields in this struct
[INFO] [stdout] 4 |     active: bool,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 5 |     username: String,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 6 |     email: String,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 7 |     sign_in_count: u64,
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `width` and `height` are never read
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_5_struct_7_print_the_structs.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Rectangle {
[INFO] [stdout]   |        --------- fields in this struct
[INFO] [stdout] 5 |     width: u32,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 6 |     height: u32,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Rectangle` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Zero` and `Two` are never constructed
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_6_enum_1.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | enum Number {
[INFO] [stdout]   |      ------ variants in this enum
[INFO] [stdout] 4 |     Zero,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 5 |     One,
[INFO] [stdout] 6 |     Two,
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Zero` and `Two` are never constructed
[INFO] [stdout]   --> src/rust_by_practice/_06_compound_types/_6_enum_1.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | enum Number1 {
[INFO] [stdout]    |      ------- variants in this enum
[INFO] [stdout] 10 |     Zero = 0,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 11 |     One,
[INFO] [stdout] 12 |     Two,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Zero` and `Two` are never constructed
[INFO] [stdout]   --> src/rust_by_practice/_06_compound_types/_6_enum_1.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | enum Number2 {
[INFO] [stdout]    |      ------- variants in this enum
[INFO] [stdout] 17 |     Zero = 0.0 as isize,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 18 |     One = 1.0 as isize,
[INFO] [stdout] 19 |     Two = 2.0 as isize,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_6_enum_2.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 |     Move { x: i32, y: i32 },
[INFO] [stdout]   |     ----   ^       ^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     fields in this variant
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_6_enum_2.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 |     Write(String),
[INFO] [stdout]   |     ----- ^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 6 -     Write(String),
[INFO] [stdout] 6 +     Write(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]  --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_8_dst_and_unsized_type.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 |     let s: &str = "Hello there!";
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arr`
[INFO] [stdout]  --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_8_dst_and_unsized_type.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let arr: &[u8] = &[1, 2, 3];
[INFO] [stdout]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_arr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Quit` and `ChangeColor` are never constructed
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_6_enum_2.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | enum Message {
[INFO] [stdout]   |      ------- variants in this enum
[INFO] [stdout] 4 |     Quit,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7 |     ChangeColor(i32, i32, i32),
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Quit`, `Write`, and `ChangeColor` are never constructed
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_6_enum_3.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | enum Message {
[INFO] [stdout]   |      ------- variants in this enum
[INFO] [stdout] 4 |     Quit,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 5 |     Move { x: i32, y: i32 },
[INFO] [stdout] 6 |     Write(String),
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 7 |     ChangeColor(i32, i32, i32),
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_6_enum_4.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 |     Move { x: i32, y: i32 },
[INFO] [stdout]   |     ----   ^       ^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     fields in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Message` 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 `0`, `1`, and `2` are never read
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_6_enum_4.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 |     ChangeColor(i32, i32, i32),
[INFO] [stdout]   |     ----------- ^^^  ^^^  ^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     fields in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Message` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]   |
[INFO] [stdout] 8 -     ChangeColor(i32, i32, i32),
[INFO] [stdout] 8 +     ChangeColor((), (), ()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Write` is never constructed
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_6_enum_4.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | enum Message {
[INFO] [stdout]   |      ------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 7 |     Write(String),
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Message` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `East`, `West`, and `North` are never constructed
[INFO] [stdout]  --> src/rust_by_practice/_08_pattern_match/_1_match_matches_and_if_let_1_match.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | enum Direction {
[INFO] [stdout]   |      --------- variants in this enum
[INFO] [stdout] 4 |     East,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 5 |     West,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 6 |     North,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/rust_by_practice/_08_pattern_match/_1_match_matches_and_if_let_3_match.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 |     ChangeColor(i32, i32, i32),
[INFO] [stdout]   |     ----------- ^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 7 -     ChangeColor(i32, i32, i32),
[INFO] [stdout] 7 +     ChangeColor((), i32, i32),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Write` is never constructed
[INFO] [stdout]  --> src/rust_by_practice/_08_pattern_match/_1_match_matches_and_if_let_3_match.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | enum Message {
[INFO] [stdout]   |      ------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 6 |     Write(String),
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/rust_by_practice/_08_pattern_match/_1_match_matches_and_if_let_8_if_let.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     Qux(u32)
[INFO] [stdout]   |     --- ^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 5 -     Qux(u32)
[INFO] [stdout] 5 +     Qux(())
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Bar` and `Baz` are never constructed
[INFO] [stdout]  --> src/rust_by_practice/_08_pattern_match/_1_match_matches_and_if_let_8_if_let.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | enum Foo {
[INFO] [stdout]   |      --- variants in this enum
[INFO] [stdout] 3 |     Bar,
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 4 |     Baz,
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TrafficLight` is never constructed
[INFO] [stdout]  --> src/rust_by_practice/_09_method_and_associated_function/_0_method_and_associated_function_3_method.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | struct TrafficLight {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `show_state` and `change_state` are never used
[INFO] [stdout]   --> src/rust_by_practice/_09_method_and_associated_function/_0_method_and_associated_function_3_method.rs:7:12
[INFO] [stdout]    |
[INFO] [stdout]  5 | impl TrafficLight {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout]  6 |     // Using `Self` to fill in the blank.
[INFO] [stdout]  7 |     pub fn show_state(self: Self)  {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub fn change_state(mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thing`
[INFO] [stdout]  --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_9_dst_and_unsized_type.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn foobar(thing: &dyn Display) {}    
[INFO] [stdout]   |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_thing`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Rectangle` is never constructed
[INFO] [stdout]  --> src/rust_by_practice/_09_method_and_associated_function/_0_method_and_associated_function_5_multiple_impl_blocks.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | struct Rectangle {
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `area` is never used
[INFO] [stdout]  --> src/rust_by_practice/_09_method_and_associated_function/_0_method_and_associated_function_5_multiple_impl_blocks.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | impl Rectangle {
[INFO] [stdout]   | -------------- method in this implementation
[INFO] [stdout] 9 |     fn area(&self) -> u32 {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `can_hold` is never used
[INFO] [stdout]   --> src/rust_by_practice/_09_method_and_associated_function/_0_method_and_associated_function_5_multiple_impl_blocks.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Rectangle {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] 15 |     fn can_hold(&self, other: &Rectangle) -> bool {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Red` and `Green` are never constructed
[INFO] [stdout]  --> src/rust_by_practice/_09_method_and_associated_function/_0_method_and_associated_function_6_enums.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | enum TrafficLightColor {
[INFO] [stdout]   |      ----------------- variants in this enum
[INFO] [stdout] 4 |     Red,
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 5 |     Yellow,
[INFO] [stdout] 6 |     Green,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `TrafficLightColor` 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 `x` and `y` are never read
[INFO] [stdout]  --> src/rust_by_practice/_10_generics_and_traits/_1_generics_3_struct_and_impl.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | struct Point<T> {
[INFO] [stdout]   |        ----- fields in this struct
[INFO] [stdout] 4 |     x: T,
[INFO] [stdout]   |     ^
[INFO] [stdout] 5 |     y: T,
[INFO] [stdout]   |     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]  --> src/rust_by_practice/_10_generics_and_traits/_1_generics_4_struct_and_impl.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | struct Point<T, U> {
[INFO] [stdout]   |        ----- fields in this struct
[INFO] [stdout] 4 |     x: T,
[INFO] [stdout]   |     ^
[INFO] [stdout] 5 |     y: U,
[INFO] [stdout]   |     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data` is never read
[INFO] [stdout]  --> src/rust_by_practice/_10_generics_and_traits/_2_const_generics_1.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | struct Array<T, const N: usize> {
[INFO] [stdout]   |        ----- field in this struct
[INFO] [stdout] 2 |     data : [T; N]
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `content` is never read
[INFO] [stdout]   --> src/rust_by_practice/_10_generics_and_traits/_3_traits_5_use_trait_as_function_parameters.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | struct Post {
[INFO] [stdout]    |        ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     content: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Post` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/rust_by_practice/_10_generics_and_traits/_3_traits_8_trait_bound.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | impl<T> Pair<T> {
[INFO] [stdout]   | --------------- associated function in this implementation
[INFO] [stdout] 9 |     fn new(x: T, y: T) -> Self {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `fly` is never used
[INFO] [stdout]   --> src/rust_by_practice/_10_generics_and_traits/_4_trait_object_1_returning_traits_with_dyn.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Swan {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 14 |     fn fly(&self) {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `fly` is never used
[INFO] [stdout]  --> src/rust_by_practice/_10_generics_and_traits/_4_trait_object_2_array_with_trait_objects.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | impl Duck {
[INFO] [stdout]   | --------- method in this implementation
[INFO] [stdout] 7 |     fn fly(&self) {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `fly` is never used
[INFO] [stdout]   --> src/rust_by_practice/_10_generics_and_traits/_4_trait_object_2_array_with_trait_objects.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Swan {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 13 |     fn fly(&self) {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CliError` is never used
[INFO] [stdout]  --> src/rust_by_practice/_12_type_conversion/_2_from_into_3.rs:6:6
[INFO] [stdout]   |
[INFO] [stdout] 6 | enum CliError {
[INFO] [stdout]   |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `open_and_parse_file` is never used
[INFO] [stdout]   --> src/rust_by_practice/_12_type_conversion/_2_from_into_3.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn open_and_parse_file(file_name: &str) -> Result<i32, CliError> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `R` is never constructed
[INFO] [stdout]  --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_2.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | struct R<'a>(&'a i32);
[INFO] [stdout]   |        ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extend_lifetime` is never used
[INFO] [stdout]  --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_2.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | unsafe fn extend_lifetime<'b>(r: R<'b>) -> R<'static> {
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shorten_invariant_lifetime` is never used
[INFO] [stdout]  --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_2.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | unsafe fn shorten_invariant_lifetime<'b, 'c>(r: &'b mut R<'static>)
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/rust_by_practice/_16_formatted_output/_2_debug_and_display_1_debug.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Structure(i32);
[INFO] [stdout]   |        --------- ^^^
[INFO] [stdout]   |        |
[INFO] [stdout]   |        field in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider removing this field
[INFO] [stdout]   = note: `Structure` 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 `name` and `age` are never read
[INFO] [stdout]  --> src/rust_by_practice/_16_formatted_output/_2_debug_and_display_2_debug.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | struct Person {
[INFO] [stdout]   |        ------ fields in this struct
[INFO] [stdout] 3 |     name: String,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 4 |     age: u8
[INFO] [stdout]   |     ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Person` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/rust_by_example/_01_hello_world/_2_1_debug_1.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Structure(i32);
[INFO] [stdout]   |        --------- ^^^
[INFO] [stdout]   |        |
[INFO] [stdout]   |        field in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider removing this field
[INFO] [stdout]   = note: `Structure` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest` is never used
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_1_basic_3_function.rs:2:4
[INFO] [stdout]   |
[INFO] [stdout] 2 | fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
[INFO] [stdout]   |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `invalid_output` is never used
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_1_basic_4_function.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn invalid_output() -> &'static str { 
[INFO] [stdout]   |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_1_basic_6_structs.rs:6:21
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Borrowed<'a>(&'a i32);
[INFO] [stdout]   |        --------     ^^^^^^^
[INFO] [stdout]   |        |
[INFO] [stdout]   |        field in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider removing this field
[INFO] [stdout]   = note: `Borrowed` 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 `x` and `y` are never read
[INFO] [stdout]   --> src/rust_by_practice/_17_lifetime/_1_basic_6_structs.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct NamedBorrowed<'a,'b>{
[INFO] [stdout]    |        ------------- fields in this struct
[INFO] [stdout] 11 |     x: &'a i32,
[INFO] [stdout]    |     ^
[INFO] [stdout] 12 |     y: &'b i32,
[INFO] [stdout]    |     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NamedBorrowed` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/rust_by_practice/_17_lifetime/_1_basic_6_structs.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     Num(i32),
[INFO] [stdout]    |     --- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Either` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 18 -     Num(i32),
[INFO] [stdout] 18 +     Num(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/rust_by_practice/_17_lifetime/_1_basic_6_structs.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     Ref(&'a i32),
[INFO] [stdout]    |     --- ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Either` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 19 -     Ref(&'a i32),
[INFO] [stdout] 19 +     Ref(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `a` and `b` are never read
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_1_basic_7_structs.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct Example<'a, 'b> {
[INFO] [stdout]   |        ------- fields in this struct
[INFO] [stdout] 8 |     a: &'a u32,
[INFO] [stdout]   |     ^
[INFO] [stdout] 9 |     b: &'b NoCopyType
[INFO] [stdout]   |     ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Example` 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 `ImportantExcerpt` is never constructed
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_1_basic_9_method.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | struct ImportantExcerpt<'a>{
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `level` is never used
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_1_basic_9_method.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | impl <'a> ImportantExcerpt<'a>{
[INFO] [stdout]   | ------------------------------ method in this implementation
[INFO] [stdout] 7 |     fn level(&'a self) -> i32 {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `nput` is never used
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_1_basic_10_elision.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn nput(x: &i32) {
[INFO] [stdout]   |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pass` is never used
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_1_basic_10_elision.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn pass(x: &i32) -> &i32 { x }
[INFO] [stdout]   |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest` is never used
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_1_basic_10_elision.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn longest<'a>(x: &'a str, y: &str) -> &'a str {
[INFO] [stdout]   |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Owner` is never constructed
[INFO] [stdout]   --> src/rust_by_practice/_17_lifetime/_1_basic_10_elision.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct Owner(i32);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_one` and `print` are never used
[INFO] [stdout]   --> src/rust_by_practice/_17_lifetime/_1_basic_10_elision.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Owner {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] 16 |     // Annotate lifetimes as in a standalone function.
[INFO] [stdout] 17 |     fn add_one(&mut self) { self.0 += 1; }
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 18 |     fn print(&self) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Person` is never constructed
[INFO] [stdout]   --> src/rust_by_practice/_17_lifetime/_1_basic_10_elision.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | struct Person<'a> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Either` is never used
[INFO] [stdout]   --> src/rust_by_practice/_17_lifetime/_1_basic_10_elision.rs:28:6
[INFO] [stdout]    |
[INFO] [stdout] 28 | enum Either<'a> {
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `a` and `b` are never read
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_2_static_and_t_static_2_static.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | struct Config {
[INFO] [stdout]   |        ------ fields in this struct
[INFO] [stdout] 3 |     a: String,
[INFO] [stdout]   |     ^
[INFO] [stdout] 4 |     b: String,
[INFO] [stdout]   |     ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Config` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_3_advanced_1_trait_bounds_example.rs:4:23
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Ref<'a, T: 'a>(&'a T);
[INFO] [stdout]   |        ---            ^^^^^
[INFO] [stdout]   |        |
[INFO] [stdout]   |        field in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider removing this field
[INFO] [stdout]   = note: `Ref` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/rust_by_example/_01_hello_world/_2_1_debug_1.rs:9:13
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct Deep(Structure);
[INFO] [stdout]   |        ---- ^^^^^^^^^
[INFO] [stdout]   |        |
[INFO] [stdout]   |        field in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider removing this field
[INFO] [stdout]   = note: `Deep` 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 `DoubleRef` is never constructed
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_3_advanced_1_trait_bounds.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct DoubleRef<'a,'b, T> {
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ImportantExcerpt` is never constructed
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_3_advanced_2_trait_bounds.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | struct ImportantExcerpt<'a> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `age` are never read
[INFO] [stdout]  --> src/rust_by_example/_01_hello_world/_2_1_debug_2.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | struct Person<'a> {
[INFO] [stdout]   |        ------ fields in this struct
[INFO] [stdout] 3 |     name: &'a str,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 4 |     age: u8
[INFO] [stdout]   |     ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Person` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `announce_and_return_part` is never used
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_3_advanced_2_trait_bounds.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | impl<'a: 'b, 'b> ImportantExcerpt<'a> {
[INFO] [stdout]   | ------------------------------------- method in this implementation
[INFO] [stdout] 7 |     fn announce_and_return_part(&'a self, announcement: &'b str) -> &'b str {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `f` is never used
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_3_advanced_3_trait_bounds.rs:2:4
[INFO] [stdout]   |
[INFO] [stdout] 2 | fn f<'a, 'b>(x: &'a i32, mut y: &'b i32) where 'a: 'b {
[INFO] [stdout]   |    ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Subtract` is never constructed
[INFO] [stdout]   --> src/rust_by_example/_03_custom_types/_2_enums_0.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 54 | enum VeryVerboseEnumOfThingsToDoWithNumbers {
[INFO] [stdout]    |      -------------------------------------- variant in this enum
[INFO] [stdout] 55 |     Add,
[INFO] [stdout] 56 |     Subtract,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `call_on_ref_zero` is never used
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_3_advanced_4_hrtb.rs:2:4
[INFO] [stdout]   |
[INFO] [stdout] 2 | fn call_on_ref_zero<F>(f: F) where for <'a> F : Fn(&'a i32) {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `run` is never used
[INFO] [stdout]   --> src/rust_by_example/_03_custom_types/_2_enums_0.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | impl VeryVerboseEnumOfThingsToDoWithNumbers {
[INFO] [stdout]    | ------------------------------------------- method in this implementation
[INFO] [stdout] 63 |     fn run(&self, x: i32, y: i32) -> i32 {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `manager` is never read
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_3_advanced_6_difficult_exercise.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | struct Interface<'b, 'a: 'b> {
[INFO] [stdout]   |        --------- field in this struct
[INFO] [stdout] 3 |     manager: &'b mut Manager<'a>
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `contents` is never read
[INFO] [stdout]  --> src/rust_by_example/_10_modules/_2_struct_visibility.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     pub struct ClosedBox<T> {
[INFO] [stdout]   |                --------- field in this struct
[INFO] [stdout] 9 |         contents: T,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `factory` is never used
[INFO] [stdout]  --> src/rust_by_practice/_18_functional_programming/_1_closure_11_closure_as_return_types.rs:2:4
[INFO] [stdout]   |
[INFO] [stdout] 2 | fn factory(x:i32) -> Box<(dyn Fn(i32) -> i32)> {
[INFO] [stdout]   |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `function` is never used
[INFO] [stdout]  --> src/rust_by_example/_10_modules/_4_super_and_self.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 |     pub fn function() {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cacher` is never constructed
[INFO] [stdout]  --> src/rust_by_practice/_18_functional_programming/_1_closure_closures_in_structs_example.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | struct Cacher<T,E>
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/rust_by_example/_15_scoping_rules/_4_lifetimes_4_structs.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Borrowed<'a>(&'a i32);
[INFO] [stdout]   |        --------     ^^^^^^^
[INFO] [stdout]   |        |
[INFO] [stdout]   |        field in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider removing this field
[INFO] [stdout]   = note: `Borrowed` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `value` are never used
[INFO] [stdout]   --> src/rust_by_practice/_18_functional_programming/_1_closure_closures_in_structs_example.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | / impl<T,E> Cacher<T,E>
[INFO] [stdout] 11 | | where
[INFO] [stdout] 12 | |     T: Fn(E) -> E,
[INFO] [stdout] 13 | |     E: Copy
[INFO] [stdout]    | |___________- associated items in this implementation
[INFO] [stdout] 14 |   {
[INFO] [stdout] 15 |       fn new(query: T) -> Cacher<T,E> {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |       fn value(&mut self, arg: E) -> E {
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]   --> src/rust_by_example/_15_scoping_rules/_4_lifetimes_4_structs.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | struct NamedBorrowed<'a> {
[INFO] [stdout]    |        ------------- fields in this struct
[INFO] [stdout]  9 |     x: &'a i32,
[INFO] [stdout]    |     ^
[INFO] [stdout] 10 |     y: &'a i32,
[INFO] [stdout]    |     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NamedBorrowed` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/rust_by_example/_15_scoping_rules/_4_lifetimes_4_structs.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |     Num(i32),
[INFO] [stdout]    |     --- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Either` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 16 -     Num(i32),
[INFO] [stdout] 16 +     Num(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Subtract` is never constructed
[INFO] [stdout]  --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_5_type_alias.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | enum VeryVerboseEnumOfThingsToDoWithNumbers {
[INFO] [stdout]   |      -------------------------------------- variant in this enum
[INFO] [stdout] 2 |     Add,
[INFO] [stdout] 3 |     Subtract,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `VeryVerboseEnumOfThingsToDoWithNumbers` is never used
[INFO] [stdout]  --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_6_type_alias.rs:1:6
[INFO] [stdout]   |
[INFO] [stdout] 1 | enum VeryVerboseEnumOfThingsToDoWithNumbers {
[INFO] [stdout]   |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/rust_by_example/_15_scoping_rules/_4_lifetimes_4_structs.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     Ref(&'a i32),
[INFO] [stdout]    |     --- ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Either` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 17 -     Ref(&'a i32),
[INFO] [stdout] 17 +     Ref(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `run` is never used
[INFO] [stdout]  --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_6_type_alias.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | impl VeryVerboseEnumOfThingsToDoWithNumbers {
[INFO] [stdout]   | ------------------------------------------- method in this implementation
[INFO] [stdout] 7 |     fn run(&self, x: i32, y: i32) -> i32 {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `x` is never read
[INFO] [stdout]  --> src/rust_by_example/_15_scoping_rules/_4_lifetimes_5_traits.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | struct Borrowed<'a> {
[INFO] [stdout]   |        -------- field in this struct
[INFO] [stdout] 4 |     x: &'a i32,
[INFO] [stdout]   |     ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Borrowed` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `foobar` is never used
[INFO] [stdout]  --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_9_dst_and_unsized_type.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn foobar(thing: &dyn Display) {}    
[INFO] [stdout]   |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: path statement with no effect
[INFO] [stdout]  --> src/rust_by_example/_07_expressions/_0_expressions.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |         x;
[INFO] [stdout]   |         ^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(path_statements)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/rust_by_example/_15_scoping_rules/_4_lifetimes_6_bounds.rs:4:23
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Ref<'a, T: 'a>(&'a T);
[INFO] [stdout]   |        ---            ^^^^^
[INFO] [stdout]   |        |
[INFO] [stdout]   |        field in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider removing this field
[INFO] [stdout]   = note: `Ref` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused arithmetic operation that must be used
[INFO] [stdout]  --> src/rust_by_example/_07_expressions/_0_expressions.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |         x + 1;
[INFO] [stdout]   |         ^^^^^ the arithmetic operation produces a value
[INFO] [stdout]   |
[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] 8 |         let _ = x + 1;
[INFO] [stdout]   |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/rust_by_example/_16_traits/_1_derive.rs:18:16
[INFO] [stdout]    |
[INFO] [stdout] 18 | struct Seconds(i32);
[INFO] [stdout]    |        ------- ^^^
[INFO] [stdout]    |        |
[INFO] [stdout]    |        field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused arithmetic operation that must be used
[INFO] [stdout]   --> src/rust_by_example/_07_expressions/_0_expressions.rs:25:13
[INFO] [stdout]    |
[INFO] [stdout] 25 |             2 * x;
[INFO] [stdout]    |             ^^^^^ the arithmetic operation produces a value
[INFO] [stdout]    |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 25 |             let _ = 2 * x;
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_csv_document` is never used
[INFO] [stdout]  --> src/rust_by_example/_16_traits/_6_impl_trait_1_as_an_argument_type.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn parse_csv_document(src: impl std::io::BufRead) -> std::io::Result<Vec<Vec<String>>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `combine_vecs_explicit_return_type` is never used
[INFO] [stdout]  --> src/rust_by_example/_16_traits/_6_impl_trait_2_as_a_return_type.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn combine_vecs_explicit_return_type(
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::str::from_utf8` with an invalid literal always return an error
[INFO] [stdout]   --> src/rust_by_example/_19_std_library_types/_3_strings_4_literals_and_escapes.rs:33:11
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let shift_jis = b"\x82\xe6\x82\xa8\x82\xb1\x82\xbb"; // "ようこそ" in SHIFT-JIS
[INFO] [stdout]    |                     ----------------------------------- the literal was valid UTF-8 up to the 0 bytes
[INFO] [stdout] ...
[INFO] [stdout] 33 |     match str::from_utf8(shift_jis) {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(invalid_from_utf8)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]  --> src/rust_by_example/_16_traits/_7_clone.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct Pair(Box<i32>, Box<i32>);
[INFO] [stdout]   |        ---- ^^^^^^^^  ^^^^^^^^
[INFO] [stdout]   |        |
[INFO] [stdout]   |        fields in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider removing these fields
[INFO] [stdout]   = note: `Pair` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused arithmetic operation that must be used
[INFO] [stdout]   --> src/rust_by_practice/_04_basic_types/_3_statements_expressions_0.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |         2 * x;
[INFO] [stdout]    |         ^^^^^ the arithmetic operation produces a value
[INFO] [stdout]    |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 14 |         let _ = 2 * x;
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Person` is never used
[INFO] [stdout]  --> src/rust_by_example/_16_traits/_8_supertraits.rs:1:7
[INFO] [stdout]   |
[INFO] [stdout] 1 | trait Person {
[INFO] [stdout]   |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::str::from_utf8` with an invalid literal always return an error
[INFO] [stdout]   --> src/rust_by_practice/_06_compound_types/_1_string_11_byte_string_example.rs:33:11
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let shift_jis = b"\x82\xe6\x82\xa8\x82\xb1\x82\xbb"; // "ようこそ" In SHIFT-JIS
[INFO] [stdout]    |                     ----------------------------------- the literal was valid UTF-8 up to the 0 bytes
[INFO] [stdout] ...
[INFO] [stdout] 33 |     match str::from_utf8(shift_jis) {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]  --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:5:24
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let num = unsafe { std::mem::transmute::<[u8; 4], u32>(raw_bytes) };
[INFO] [stdout]   |                        -----------------------------------^^^^^^^^^^^
[INFO] [stdout]   |                        |
[INFO] [stdout]   |                        help: replace this with: `u32::from_ne_bytes`
[INFO] [stdout]   |
[INFO] [stdout]   = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout]   = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `v` should have an upper case name
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_2_static_and_t_static_1_static.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 |     const v: &str = "hello";
[INFO] [stdout]   |           ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: convert the identifier to upper case (notice the capitalization)
[INFO] [stdout]   |
[INFO] [stdout] 4 -     const v: &str = "hello";
[INFO] [stdout] 4 +     const V: &str = "hello";
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Student` is never used
[INFO] [stdout]  --> src/rust_by_example/_16_traits/_8_supertraits.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | trait Student: Person {
[INFO] [stdout]   |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Programmer` is never used
[INFO] [stdout]   --> src/rust_by_example/_16_traits/_8_supertraits.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | trait Programmer {
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `CompSciStudent` is never used
[INFO] [stdout]   --> src/rust_by_example/_16_traits/_8_supertraits.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | trait CompSciStudent: Programmer + Student {
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `comp_sci_student_greeting` is never used
[INFO] [stdout]   --> src/rust_by_example/_16_traits/_8_supertraits.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn comp_sci_student_greeting(student: &dyn CompSciStudent) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `number` is never read
[INFO] [stdout]   --> src/rust_by_example/_18_error_handling/_3_option_and_unwrap_1_unpacking_options_with_questionmark.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct PhoneNumber {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] 12 |     area_code: Option<u8>,
[INFO] [stdout] 13 |     number: u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PhoneNumber` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Banana` is never constructed
[INFO] [stdout]  --> src/rust_by_example/_18_error_handling/_3_option_and_unwrap_4_unpacking_options_and_defaults.rs:2:29
[INFO] [stdout]   |
[INFO] [stdout] 2 | enum Fruit { Apple, Orange, Banana, Kiwi, Lemon }
[INFO] [stdout]   |      -----                  ^^^^^^
[INFO] [stdout]   |      |
[INFO] [stdout]   |      variant in this enum
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Fruit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `explicitly_ret_unit` is never used
[INFO] [stdout]   --> src/rust_by_practice/_04_basic_types/_2_cbu_5_unit.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn explicitly_ret_unit() -> () {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_option` is never used
[INFO] [stdout]  --> src/rust_by_practice/_04_basic_types/_4_functions_4_diverging.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn get_option(tp: u8) -> Option<i32> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `never_return_fn` is never used
[INFO] [stdout]   --> src/rust_by_practice/_04_basic_types/_4_functions_4_diverging.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn never_return_fn() -> ! {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `age`, and `hobby` are never read
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_5_struct_1_the_types_of_structs.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | struct Person {
[INFO] [stdout]   |        ------ fields in this struct
[INFO] [stdout] 4 |     name: String,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 5 |     age: u8,
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 6 |     hobby: String
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `SomeTrait` is never used
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_5_struct_2_the_types_of_structs.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | trait SomeTrait {
[INFO] [stdout]   |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Color` is never constructed
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_5_struct_3_the_types_of_structs.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | struct Color(i32, i32, i32);
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Person` is never constructed
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_5_struct_5_operating_on_structs.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | struct Person {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_person` is never used
[INFO] [stdout]   --> src/rust_by_practice/_06_compound_types/_5_struct_5_operating_on_structs.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn build_person(name: String, age: u8) -> Person {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `active`, `username`, `email`, and `sign_in_count` are never read
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_5_struct_6_operating_on_structs.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | struct User {
[INFO] [stdout]   |        ---- fields in this struct
[INFO] [stdout] 4 |     active: bool,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 5 |     username: String,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 6 |     email: String,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 7 |     sign_in_count: u64,
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `width` and `height` are never read
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_5_struct_7_print_the_structs.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Rectangle {
[INFO] [stdout]   |        --------- fields in this struct
[INFO] [stdout] 5 |     width: u32,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 6 |     height: u32,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Rectangle` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Zero` and `Two` are never constructed
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_6_enum_1.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | enum Number {
[INFO] [stdout]   |      ------ variants in this enum
[INFO] [stdout] 4 |     Zero,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 5 |     One,
[INFO] [stdout] 6 |     Two,
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Zero` and `Two` are never constructed
[INFO] [stdout]   --> src/rust_by_practice/_06_compound_types/_6_enum_1.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | enum Number1 {
[INFO] [stdout]    |      ------- variants in this enum
[INFO] [stdout] 10 |     Zero = 0,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 11 |     One,
[INFO] [stdout] 12 |     Two,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Zero` and `Two` are never constructed
[INFO] [stdout]   --> src/rust_by_practice/_06_compound_types/_6_enum_1.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | enum Number2 {
[INFO] [stdout]    |      ------- variants in this enum
[INFO] [stdout] 17 |     Zero = 0.0 as isize,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 18 |     One = 1.0 as isize,
[INFO] [stdout] 19 |     Two = 2.0 as isize,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_6_enum_2.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 |     Move { x: i32, y: i32 },
[INFO] [stdout]   |     ----   ^       ^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     fields in this variant
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_6_enum_2.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 |     Write(String),
[INFO] [stdout]   |     ----- ^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 6 -     Write(String),
[INFO] [stdout] 6 +     Write(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Quit` and `ChangeColor` are never constructed
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_6_enum_2.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | enum Message {
[INFO] [stdout]   |      ------- variants in this enum
[INFO] [stdout] 4 |     Quit,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7 |     ChangeColor(i32, i32, i32),
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Quit`, `Write`, and `ChangeColor` are never constructed
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_6_enum_3.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | enum Message {
[INFO] [stdout]   |      ------- variants in this enum
[INFO] [stdout] 4 |     Quit,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 5 |     Move { x: i32, y: i32 },
[INFO] [stdout] 6 |     Write(String),
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 7 |     ChangeColor(i32, i32, i32),
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_6_enum_4.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 |     Move { x: i32, y: i32 },
[INFO] [stdout]   |     ----   ^       ^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     fields in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Message` 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 `0`, `1`, and `2` are never read
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_6_enum_4.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 |     ChangeColor(i32, i32, i32),
[INFO] [stdout]   |     ----------- ^^^  ^^^  ^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     fields in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Message` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]   |
[INFO] [stdout] 8 -     ChangeColor(i32, i32, i32),
[INFO] [stdout] 8 +     ChangeColor((), (), ()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Write` is never constructed
[INFO] [stdout]  --> src/rust_by_practice/_06_compound_types/_6_enum_4.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | enum Message {
[INFO] [stdout]   |      ------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 7 |     Write(String),
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Message` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `East`, `West`, and `North` are never constructed
[INFO] [stdout]  --> src/rust_by_practice/_08_pattern_match/_1_match_matches_and_if_let_1_match.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | enum Direction {
[INFO] [stdout]   |      --------- variants in this enum
[INFO] [stdout] 4 |     East,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 5 |     West,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 6 |     North,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/rust_by_practice/_08_pattern_match/_1_match_matches_and_if_let_3_match.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 |     ChangeColor(i32, i32, i32),
[INFO] [stdout]   |     ----------- ^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 7 -     ChangeColor(i32, i32, i32),
[INFO] [stdout] 7 +     ChangeColor((), i32, i32),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Write` is never constructed
[INFO] [stdout]  --> src/rust_by_practice/_08_pattern_match/_1_match_matches_and_if_let_3_match.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | enum Message {
[INFO] [stdout]   |      ------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 6 |     Write(String),
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/rust_by_practice/_08_pattern_match/_1_match_matches_and_if_let_8_if_let.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     Qux(u32)
[INFO] [stdout]   |     --- ^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 5 -     Qux(u32)
[INFO] [stdout] 5 +     Qux(())
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Bar` and `Baz` are never constructed
[INFO] [stdout]  --> src/rust_by_practice/_08_pattern_match/_1_match_matches_and_if_let_8_if_let.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | enum Foo {
[INFO] [stdout]   |      --- variants in this enum
[INFO] [stdout] 3 |     Bar,
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 4 |     Baz,
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TrafficLight` is never constructed
[INFO] [stdout]  --> src/rust_by_practice/_09_method_and_associated_function/_0_method_and_associated_function_3_method.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | struct TrafficLight {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `show_state` and `change_state` are never used
[INFO] [stdout]   --> src/rust_by_practice/_09_method_and_associated_function/_0_method_and_associated_function_3_method.rs:7:12
[INFO] [stdout]    |
[INFO] [stdout]  5 | impl TrafficLight {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout]  6 |     // Using `Self` to fill in the blank.
[INFO] [stdout]  7 |     pub fn show_state(self: Self)  {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub fn change_state(mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Rectangle` is never constructed
[INFO] [stdout]  --> src/rust_by_practice/_09_method_and_associated_function/_0_method_and_associated_function_5_multiple_impl_blocks.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | struct Rectangle {
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `area` is never used
[INFO] [stdout]  --> src/rust_by_practice/_09_method_and_associated_function/_0_method_and_associated_function_5_multiple_impl_blocks.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | impl Rectangle {
[INFO] [stdout]   | -------------- method in this implementation
[INFO] [stdout] 9 |     fn area(&self) -> u32 {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `can_hold` is never used
[INFO] [stdout]   --> src/rust_by_practice/_09_method_and_associated_function/_0_method_and_associated_function_5_multiple_impl_blocks.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Rectangle {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] 15 |     fn can_hold(&self, other: &Rectangle) -> bool {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Red` and `Green` are never constructed
[INFO] [stdout]  --> src/rust_by_practice/_09_method_and_associated_function/_0_method_and_associated_function_6_enums.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | enum TrafficLightColor {
[INFO] [stdout]   |      ----------------- variants in this enum
[INFO] [stdout] 4 |     Red,
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 5 |     Yellow,
[INFO] [stdout] 6 |     Green,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `TrafficLightColor` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `config` should have an upper case name
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_2_static_and_t_static_2_static.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | static mut config: Option<&mut Config> = None;
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]   |
[INFO] [stdout] 6 - static mut config: Option<&mut Config> = None;
[INFO] [stdout] 6 + static mut CONFIG: Option<&mut Config> = None;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/rust_by_practice/_17_lifetime/_2_static_and_t_static_2_static.rs:22:25
[INFO] [stdout]    |
[INFO] [stdout] 22 |         println!("{:?}",config)
[INFO] [stdout]    |                         ^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `i` should have an upper case name
[INFO] [stdout]   --> src/rust_by_practice/_17_lifetime/_2_static_and_t_static_5_t_static.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 |     const i:i32 = 5;
[INFO] [stdout]    |           ^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case (notice the capitalization)
[INFO] [stdout]    |
[INFO] [stdout] 19 -     const i:i32 = 5;
[INFO] [stdout] 19 +     const I:i32 = 5;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]  --> src/rust_by_practice/_10_generics_and_traits/_1_generics_3_struct_and_impl.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | struct Point<T> {
[INFO] [stdout]   |        ----- fields in this struct
[INFO] [stdout] 4 |     x: T,
[INFO] [stdout]   |     ^
[INFO] [stdout] 5 |     y: T,
[INFO] [stdout]   |     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]  --> src/rust_by_practice/_10_generics_and_traits/_1_generics_4_struct_and_impl.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | struct Point<T, U> {
[INFO] [stdout]   |        ----- fields in this struct
[INFO] [stdout] 4 |     x: T,
[INFO] [stdout]   |     ^
[INFO] [stdout] 5 |     y: U,
[INFO] [stdout]   |     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data` is never read
[INFO] [stdout]  --> src/rust_by_practice/_10_generics_and_traits/_2_const_generics_1.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | struct Array<T, const N: usize> {
[INFO] [stdout]   |        ----- field in this struct
[INFO] [stdout] 2 |     data : [T; N]
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `content` is never read
[INFO] [stdout]   --> src/rust_by_practice/_10_generics_and_traits/_3_traits_5_use_trait_as_function_parameters.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | struct Post {
[INFO] [stdout]    |        ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     content: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Post` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: const parameter `n` should have an upper case name
[INFO] [stdout]  --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_7_dst_and_unsized_type.rs:2:22
[INFO] [stdout]   |
[INFO] [stdout] 2 | fn my_function<const n: usize>() -> [u32; n] {
[INFO] [stdout]   |                      ^
[INFO] [stdout]   |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]   |
[INFO] [stdout] 2 - fn my_function<const n: usize>() -> [u32; n] {
[INFO] [stdout] 2 + fn my_function<const N: usize>() -> [u32; n] {
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/rust_by_practice/_10_generics_and_traits/_3_traits_8_trait_bound.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | impl<T> Pair<T> {
[INFO] [stdout]   | --------------- associated function in this implementation
[INFO] [stdout] 9 |     fn new(x: T, y: T) -> Self {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `fly` is never used
[INFO] [stdout]   --> src/rust_by_practice/_10_generics_and_traits/_4_trait_object_1_returning_traits_with_dyn.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Swan {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 14 |     fn fly(&self) {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `fly` is never used
[INFO] [stdout]  --> src/rust_by_practice/_10_generics_and_traits/_4_trait_object_2_array_with_trait_objects.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | impl Duck {
[INFO] [stdout]   | --------- method in this implementation
[INFO] [stdout] 7 |     fn fly(&self) {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `fly` is never used
[INFO] [stdout]   --> src/rust_by_practice/_10_generics_and_traits/_4_trait_object_2_array_with_trait_objects.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Swan {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 13 |     fn fly(&self) {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CliError` is never used
[INFO] [stdout]  --> src/rust_by_practice/_12_type_conversion/_2_from_into_3.rs:6:6
[INFO] [stdout]   |
[INFO] [stdout] 6 | enum CliError {
[INFO] [stdout]   |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `open_and_parse_file` is never used
[INFO] [stdout]   --> src/rust_by_practice/_12_type_conversion/_2_from_into_3.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn open_and_parse_file(file_name: &str) -> Result<i32, CliError> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `R` is never constructed
[INFO] [stdout]  --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_2.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | struct R<'a>(&'a i32);
[INFO] [stdout]   |        ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extend_lifetime` is never used
[INFO] [stdout]  --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_2.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | unsafe fn extend_lifetime<'b>(r: R<'b>) -> R<'static> {
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shorten_invariant_lifetime` is never used
[INFO] [stdout]  --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_2.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | unsafe fn shorten_invariant_lifetime<'b, 'c>(r: &'b mut R<'static>)
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/rust_by_practice/_16_formatted_output/_2_debug_and_display_1_debug.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Structure(i32);
[INFO] [stdout]   |        --------- ^^^
[INFO] [stdout]   |        |
[INFO] [stdout]   |        field in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider removing this field
[INFO] [stdout]   = note: `Structure` 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 `name` and `age` are never read
[INFO] [stdout]  --> src/rust_by_practice/_16_formatted_output/_2_debug_and_display_2_debug.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | struct Person {
[INFO] [stdout]   |        ------ fields in this struct
[INFO] [stdout] 3 |     name: String,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 4 |     age: u8
[INFO] [stdout]   |     ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Person` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest` is never used
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_1_basic_3_function.rs:2:4
[INFO] [stdout]   |
[INFO] [stdout] 2 | fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
[INFO] [stdout]   |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `invalid_output` is never used
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_1_basic_4_function.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn invalid_output() -> &'static str { 
[INFO] [stdout]   |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_1_basic_6_structs.rs:6:21
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Borrowed<'a>(&'a i32);
[INFO] [stdout]   |        --------     ^^^^^^^
[INFO] [stdout]   |        |
[INFO] [stdout]   |        field in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider removing this field
[INFO] [stdout]   = note: `Borrowed` 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 `x` and `y` are never read
[INFO] [stdout]   --> src/rust_by_practice/_17_lifetime/_1_basic_6_structs.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct NamedBorrowed<'a,'b>{
[INFO] [stdout]    |        ------------- fields in this struct
[INFO] [stdout] 11 |     x: &'a i32,
[INFO] [stdout]    |     ^
[INFO] [stdout] 12 |     y: &'b i32,
[INFO] [stdout]    |     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NamedBorrowed` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/rust_by_practice/_17_lifetime/_1_basic_6_structs.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     Num(i32),
[INFO] [stdout]    |     --- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Either` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 18 -     Num(i32),
[INFO] [stdout] 18 +     Num(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/rust_by_practice/_17_lifetime/_1_basic_6_structs.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     Ref(&'a i32),
[INFO] [stdout]    |     --- ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Either` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 19 -     Ref(&'a i32),
[INFO] [stdout] 19 +     Ref(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `a` and `b` are never read
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_1_basic_7_structs.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct Example<'a, 'b> {
[INFO] [stdout]   |        ------- fields in this struct
[INFO] [stdout] 8 |     a: &'a u32,
[INFO] [stdout]   |     ^
[INFO] [stdout] 9 |     b: &'b NoCopyType
[INFO] [stdout]   |     ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Example` 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 `ImportantExcerpt` is never constructed
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_1_basic_9_method.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | struct ImportantExcerpt<'a>{
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `level` is never used
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_1_basic_9_method.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | impl <'a> ImportantExcerpt<'a>{
[INFO] [stdout]   | ------------------------------ method in this implementation
[INFO] [stdout] 7 |     fn level(&'a self) -> i32 {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `nput` is never used
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_1_basic_10_elision.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn nput(x: &i32) {
[INFO] [stdout]   |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pass` is never used
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_1_basic_10_elision.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn pass(x: &i32) -> &i32 { x }
[INFO] [stdout]   |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest` is never used
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_1_basic_10_elision.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn longest<'a>(x: &'a str, y: &str) -> &'a str {
[INFO] [stdout]   |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Owner` is never constructed
[INFO] [stdout]   --> src/rust_by_practice/_17_lifetime/_1_basic_10_elision.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct Owner(i32);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_one` and `print` are never used
[INFO] [stdout]   --> src/rust_by_practice/_17_lifetime/_1_basic_10_elision.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Owner {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] 16 |     // Annotate lifetimes as in a standalone function.
[INFO] [stdout] 17 |     fn add_one(&mut self) { self.0 += 1; }
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 18 |     fn print(&self) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Person` is never constructed
[INFO] [stdout]   --> src/rust_by_practice/_17_lifetime/_1_basic_10_elision.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | struct Person<'a> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Either` is never used
[INFO] [stdout]   --> src/rust_by_practice/_17_lifetime/_1_basic_10_elision.rs:28:6
[INFO] [stdout]    |
[INFO] [stdout] 28 | enum Either<'a> {
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `a` and `b` are never read
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_2_static_and_t_static_2_static.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | struct Config {
[INFO] [stdout]   |        ------ fields in this struct
[INFO] [stdout] 3 |     a: String,
[INFO] [stdout]   |     ^
[INFO] [stdout] 4 |     b: String,
[INFO] [stdout]   |     ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Config` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_3_advanced_1_trait_bounds_example.rs:4:23
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Ref<'a, T: 'a>(&'a T);
[INFO] [stdout]   |        ---            ^^^^^
[INFO] [stdout]   |        |
[INFO] [stdout]   |        field in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider removing this field
[INFO] [stdout]   = note: `Ref` 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 `DoubleRef` is never constructed
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_3_advanced_1_trait_bounds.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct DoubleRef<'a,'b, T> {
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ImportantExcerpt` is never constructed
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_3_advanced_2_trait_bounds.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | struct ImportantExcerpt<'a> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `announce_and_return_part` is never used
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_3_advanced_2_trait_bounds.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | impl<'a: 'b, 'b> ImportantExcerpt<'a> {
[INFO] [stdout]   | ------------------------------------- method in this implementation
[INFO] [stdout] 7 |     fn announce_and_return_part(&'a self, announcement: &'b str) -> &'b str {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `f` is never used
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_3_advanced_3_trait_bounds.rs:2:4
[INFO] [stdout]   |
[INFO] [stdout] 2 | fn f<'a, 'b>(x: &'a i32, mut y: &'b i32) where 'a: 'b {
[INFO] [stdout]   |    ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `call_on_ref_zero` is never used
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_3_advanced_4_hrtb.rs:2:4
[INFO] [stdout]   |
[INFO] [stdout] 2 | fn call_on_ref_zero<F>(f: F) where for <'a> F : Fn(&'a i32) {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `manager` is never read
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_3_advanced_6_difficult_exercise.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | struct Interface<'b, 'a: 'b> {
[INFO] [stdout]   |        --------- field in this struct
[INFO] [stdout] 3 |     manager: &'b mut Manager<'a>
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `factory` is never used
[INFO] [stdout]  --> src/rust_by_practice/_18_functional_programming/_1_closure_11_closure_as_return_types.rs:2:4
[INFO] [stdout]   |
[INFO] [stdout] 2 | fn factory(x:i32) -> Box<(dyn Fn(i32) -> i32)> {
[INFO] [stdout]   |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Subtract` is never constructed
[INFO] [stdout]  --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_5_type_alias.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | enum VeryVerboseEnumOfThingsToDoWithNumbers {
[INFO] [stdout]   |      -------------------------------------- variant in this enum
[INFO] [stdout] 2 |     Add,
[INFO] [stdout] 3 |     Subtract,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `VeryVerboseEnumOfThingsToDoWithNumbers` is never used
[INFO] [stdout]  --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_6_type_alias.rs:1:6
[INFO] [stdout]   |
[INFO] [stdout] 1 | enum VeryVerboseEnumOfThingsToDoWithNumbers {
[INFO] [stdout]   |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `run` is never used
[INFO] [stdout]  --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_6_type_alias.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | impl VeryVerboseEnumOfThingsToDoWithNumbers {
[INFO] [stdout]   | ------------------------------------------- method in this implementation
[INFO] [stdout] 7 |     fn run(&self, x: i32, y: i32) -> i32 {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `foobar` is never used
[INFO] [stdout]  --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_9_dst_and_unsized_type.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn foobar(thing: &dyn Display) {}    
[INFO] [stdout]   |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: path statement with no effect
[INFO] [stdout]  --> src/rust_by_example/_07_expressions/_0_expressions.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |         x;
[INFO] [stdout]   |         ^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(path_statements)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused arithmetic operation that must be used
[INFO] [stdout]  --> src/rust_by_example/_07_expressions/_0_expressions.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |         x + 1;
[INFO] [stdout]   |         ^^^^^ the arithmetic operation produces a value
[INFO] [stdout]   |
[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] 8 |         let _ = x + 1;
[INFO] [stdout]   |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused arithmetic operation that must be used
[INFO] [stdout]   --> src/rust_by_example/_07_expressions/_0_expressions.rs:25:13
[INFO] [stdout]    |
[INFO] [stdout] 25 |             2 * x;
[INFO] [stdout]    |             ^^^^^ the arithmetic operation produces a value
[INFO] [stdout]    |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 25 |             let _ = 2 * x;
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::str::from_utf8` with an invalid literal always return an error
[INFO] [stdout]   --> src/rust_by_example/_19_std_library_types/_3_strings_4_literals_and_escapes.rs:33:11
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let shift_jis = b"\x82\xe6\x82\xa8\x82\xb1\x82\xbb"; // "ようこそ" in SHIFT-JIS
[INFO] [stdout]    |                     ----------------------------------- the literal was valid UTF-8 up to the 0 bytes
[INFO] [stdout] ...
[INFO] [stdout] 33 |     match str::from_utf8(shift_jis) {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(invalid_from_utf8)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused arithmetic operation that must be used
[INFO] [stdout]   --> src/rust_by_practice/_04_basic_types/_3_statements_expressions_0.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |         2 * x;
[INFO] [stdout]    |         ^^^^^ the arithmetic operation produces a value
[INFO] [stdout]    |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 14 |         let _ = 2 * x;
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::str::from_utf8` with an invalid literal always return an error
[INFO] [stdout]   --> src/rust_by_practice/_06_compound_types/_1_string_11_byte_string_example.rs:33:11
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let shift_jis = b"\x82\xe6\x82\xa8\x82\xb1\x82\xbb"; // "ようこそ" In SHIFT-JIS
[INFO] [stdout]    |                     ----------------------------------- the literal was valid UTF-8 up to the 0 bytes
[INFO] [stdout] ...
[INFO] [stdout] 33 |     match str::from_utf8(shift_jis) {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]  --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:5:24
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let num = unsafe { std::mem::transmute::<[u8; 4], u32>(raw_bytes) };
[INFO] [stdout]   |                        -----------------------------------^^^^^^^^^^^
[INFO] [stdout]   |                        |
[INFO] [stdout]   |                        help: replace this with: `u32::from_ne_bytes`
[INFO] [stdout]   |
[INFO] [stdout]   = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout]   = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `v` should have an upper case name
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_2_static_and_t_static_1_static.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 |     const v: &str = "hello";
[INFO] [stdout]   |           ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: convert the identifier to upper case (notice the capitalization)
[INFO] [stdout]   |
[INFO] [stdout] 4 -     const v: &str = "hello";
[INFO] [stdout] 4 +     const V: &str = "hello";
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `config` should have an upper case name
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_2_static_and_t_static_2_static.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | static mut config: Option<&mut Config> = None;
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]   |
[INFO] [stdout] 6 - static mut config: Option<&mut Config> = None;
[INFO] [stdout] 6 + static mut CONFIG: Option<&mut Config> = None;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/rust_by_practice/_17_lifetime/_2_static_and_t_static_2_static.rs:22:25
[INFO] [stdout]    |
[INFO] [stdout] 22 |         println!("{:?}",config)
[INFO] [stdout]    |                         ^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `i` should have an upper case name
[INFO] [stdout]   --> src/rust_by_practice/_17_lifetime/_2_static_and_t_static_5_t_static.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 |     const i:i32 = 5;
[INFO] [stdout]    |           ^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case (notice the capitalization)
[INFO] [stdout]    |
[INFO] [stdout] 19 -     const i:i32 = 5;
[INFO] [stdout] 19 +     const I:i32 = 5;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: const parameter `n` should have an upper case name
[INFO] [stdout]  --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_7_dst_and_unsized_type.rs:2:22
[INFO] [stdout]   |
[INFO] [stdout] 2 | fn my_function<const n: usize>() -> [u32; n] {
[INFO] [stdout]   |                      ^
[INFO] [stdout]   |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]   |
[INFO] [stdout] 2 - fn my_function<const n: usize>() -> [u32; n] {
[INFO] [stdout] 2 + fn my_function<const N: usize>() -> [u32; n] {
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.86s
[INFO] running `Command { std: "docker" "inspect" "9b8a7feb770250d875d427fd2f1fb7b6e53472586f14413e2aea94a35d63410e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9b8a7feb770250d875d427fd2f1fb7b6e53472586f14413e2aea94a35d63410e", kill_on_drop: false }`
[INFO] [stdout] 9b8a7feb770250d875d427fd2f1fb7b6e53472586f14413e2aea94a35d63410e
