[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] testing domahidizoltan/learning-rust against beta-2025-09-21 for beta-1.91-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdomahidizoltan%2Flearning-rust" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-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-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/domahidizoltan/learning-rust on toolchain beta-2025-09-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "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" "+beta-2025-09-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 3553f4b784f5a5aa1c3669765bc462bae116633a87468aae78f4f334ae82592f
[INFO] running `Command { std: "docker" "start" "-a" "3553f4b784f5a5aa1c3669765bc462bae116633a87468aae78f4f334ae82592f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3553f4b784f5a5aa1c3669765bc462bae116633a87468aae78f4f334ae82592f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3553f4b784f5a5aa1c3669765bc462bae116633a87468aae78f4f334ae82592f", kill_on_drop: false }`
[INFO] [stdout] 3553f4b784f5a5aa1c3669765bc462bae116633a87468aae78f4f334ae82592f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 827dc01cc425898f1536f783ab3b7332ebde108a67ebc0a4e4fe12af429cb088
[INFO] running `Command { std: "docker" "start" "-a" "827dc01cc425898f1536f783ab3b7332ebde108a67ebc0a4e4fe12af429cb088", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.146
[INFO] [stderr]    Compiling utf8_slice v1.0.0
[INFO] [stderr]    Compiling getrandom v0.2.10
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling 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: 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]   |         ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let _an_integer   = 5i32; // Suffix annotation
[INFO] [stdout]   |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stdout]   |
[INFO] [stdout] 6 -     let an_integer   = 5i32; // Suffix annotation
[INFO] [stdout] 6 +     let rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i   = 5i32; // Suffix annotation
[INFO] [stdout]   |
[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]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let _default_integer = 7;   // `i32`
[INFO] [stdout]    |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stdout]    |
[INFO] [stdout] 10 -     let default_integer = 7;   // `i32`
[INFO] [stdout] 10 +     let rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i = 7;   // `i32`
[INFO] [stdout]    |
[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:13
[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: 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: variable `mutable` is assigned to, but never used
[INFO] [stdout]   --> src/rust_by_example/_02_primitives/_0_primitives.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut mutable = 12; // Mutable `i32`
[INFO] [stdout]    |             ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_mutable` instead
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stdout]    |
[INFO] [stdout] 17 -     let mut mutable = 12; // Mutable `i32`
[INFO] [stdout] 17 +     let mut rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i = 12; // Mutable `i32`
[INFO] [stdout]    |
[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: `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: 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]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let _noisy_unused_variable = 2u32;
[INFO] [stdout]    |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `NTHREADS`
[INFO] [stdout]    |
[INFO] [stdout] 17 -     let noisy_unused_variable = 2u32;
[INFO] [stdout] 17 +     let rust_by_example::_20_std_misc::_1_threads::NTHREADS = 2u32;
[INFO] [stdout]    |
[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: `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: `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]   |         ^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let _y: i32; // Uninitialized but also unused, only a Warning !
[INFO] [stdout]   |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stdout]   |
[INFO] [stdout] 5 -     let y: i32; // Uninitialized but also unused, only a Warning !
[INFO] [stdout] 5 +     let rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i: i32; // Uninitialized but also unused, only a Warning !
[INFO] [stdout]   |
[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:13
[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: `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]   |         ^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let _x = x; 
[INFO] [stdout]   |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stdout]   |
[INFO] [stdout] 7 -     let x = x; 
[INFO] [stdout] 7 +     let rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i = x; 
[INFO] [stdout]   |
[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]    |         ^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let _y = 4;
[INFO] [stdout]    |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stdout]    |
[INFO] [stdout] 10 -     let y = 4;
[INFO] [stdout] 10 +     let rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i = 4;
[INFO] [stdout]    |
[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: variable `y` is assigned to, but never used
[INFO] [stdout]  --> src/rust_by_practice/_04_basic_types/_1_numbers_1_integer.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let mut y = 5;
[INFO] [stdout]   |             ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: consider using `_y` instead
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stdout]   |
[INFO] [stdout] 5 -     let mut y = 5;
[INFO] [stdout] 5 +     let mut rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i = 5;
[INFO] [stdout]   |
[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: `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]   |         ^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let _z = 10; // Type of z ? 
[INFO] [stdout]   |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stdout]   |
[INFO] [stdout] 9 -     let z = 10; // Type of z ? 
[INFO] [stdout] 9 +     let rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i = 10; // Type of z ? 
[INFO] [stdout]   |
[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: `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_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: 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: `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: this operation will panic at runtime
[INFO] [stdout]   --> src/rust_by_practice/_06_compound_types/_2_array_6.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let _name1 = &names[2];
[INFO] [stdout]    |                   ^^^^^^^^ index out of bounds: the length is 2 but the index is 2
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unconditional_panic)]` on by default
[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: `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: `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: if this is intentional, prefix it with an underscore
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let _none = plus_one(None);
[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] 
[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]    |         ^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 13 |     for _n in numbers {
[INFO] [stdout]    |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stdout]    |
[INFO] [stdout] 13 -     for n in numbers {
[INFO] [stdout] 13 +     for rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i in numbers {
[INFO] [stdout]    |
[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]   |         ^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]   |
[INFO] [stdout] 5 |     for _i in 0..=100 {
[INFO] [stdout]   |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stdout]   |
[INFO] [stdout] 5 |     for rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i in 0..=100 {
[INFO] [stdout]   |         +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[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]   |         ^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]   |
[INFO] [stdout] 5 |     for _i in 0..=100 {
[INFO] [stdout]   |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stdout]   |
[INFO] [stdout] 5 |     for rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i in 0..=100 {
[INFO] [stdout]   |         +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[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: `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]    |        ^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 12 |    let _i3: u32 = 'a'.into();
[INFO] [stdout]    |        +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `NTHREADS`
[INFO] [stdout]    |
[INFO] [stdout] 12 -    let i3: u32 = 'a'.into();
[INFO] [stdout] 12 +    let rust_by_example::_20_std_misc::_1_threads::NTHREADS: u32 = 'a'.into();
[INFO] [stdout]    |
[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: `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]   |         ^^^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let _num = unsafe { std::mem::transmute::<[u8; 4], u32>(raw_bytes) };
[INFO] [stdout]   |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `NTHREADS`
[INFO] [stdout]   |
[INFO] [stdout] 5 -     let num = unsafe { std::mem::transmute::<[u8; 4], u32>(raw_bytes) };
[INFO] [stdout] 5 +     let rust_by_example::_20_std_misc::_1_threads::NTHREADS = unsafe { std::mem::transmute::<[u8; 4], u32>(raw_bytes) };
[INFO] [stdout]   |
[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]   |         ^^^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let _num = u32::from_ne_bytes(raw_bytes);
[INFO] [stdout]   |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `NTHREADS`
[INFO] [stdout]   |
[INFO] [stdout] 8 -     let num = u32::from_ne_bytes(raw_bytes);
[INFO] [stdout] 8 +     let rust_by_example::_20_std_misc::_1_threads::NTHREADS = u32::from_ne_bytes(raw_bytes);
[INFO] [stdout]   |
[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]   |         ^^^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let _ele = v[2];
[INFO] [stdout]   |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stdout]   |
[INFO] [stdout] 6 -     let ele = v[2];
[INFO] [stdout] 6 +     let rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i = v[2];
[INFO] [stdout]   |
[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: 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: `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: variable `y` is assigned to, but never used
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_3_advanced_3_trait_bounds.rs:2:30
[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: `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: `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: 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: 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: 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: 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: 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: 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 4.31s
[INFO] running `Command { std: "docker" "inspect" "827dc01cc425898f1536f783ab3b7332ebde108a67ebc0a4e4fe12af429cb088", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "827dc01cc425898f1536f783ab3b7332ebde108a67ebc0a4e4fe12af429cb088", kill_on_drop: false }`
[INFO] [stdout] 827dc01cc425898f1536f783ab3b7332ebde108a67ebc0a4e4fe12af429cb088
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a011d171f8d927dd565590bdd8964831785cff8d455a0197ebaea972dded5e7c
[INFO] running `Command { std: "docker" "start" "-a" "a011d171f8d927dd565590bdd8964831785cff8d455a0197ebaea972dded5e7c", kill_on_drop: false }`
[INFO] [stderr]    Compiling yansi v0.5.1
[INFO] [stderr]    Compiling diff v0.1.13
[INFO] [stderr]    Compiling pretty_assertions v1.4.0
[INFO] [stderr]    Compiling 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: 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]   |         ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let _an_integer   = 5i32; // Suffix annotation
[INFO] [stdout]   |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stdout]   |
[INFO] [stdout] 6 -     let an_integer   = 5i32; // Suffix annotation
[INFO] [stdout] 6 +     let rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i   = 5i32; // Suffix annotation
[INFO] [stdout]   |
[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]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let _default_integer = 7;   // `i32`
[INFO] [stdout]    |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stdout]    |
[INFO] [stdout] 10 -     let default_integer = 7;   // `i32`
[INFO] [stdout] 10 +     let rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i = 7;   // `i32`
[INFO] [stdout]    |
[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:13
[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: 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: variable `mutable` is assigned to, but never used
[INFO] [stdout]   --> src/rust_by_example/_02_primitives/_0_primitives.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut mutable = 12; // Mutable `i32`
[INFO] [stdout]    |             ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_mutable` instead
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stdout]    |
[INFO] [stdout] 17 -     let mut mutable = 12; // Mutable `i32`
[INFO] [stdout] 17 +     let mut rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i = 12; // Mutable `i32`
[INFO] [stdout]    |
[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: `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: 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]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let _noisy_unused_variable = 2u32;
[INFO] [stdout]    |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `NTHREADS`
[INFO] [stdout]    |
[INFO] [stdout] 17 -     let noisy_unused_variable = 2u32;
[INFO] [stdout] 17 +     let rust_by_example::_20_std_misc::_1_threads::NTHREADS = 2u32;
[INFO] [stdout]    |
[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: `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: `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]   |         ^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let _y: i32; // Uninitialized but also unused, only a Warning !
[INFO] [stdout]   |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stdout]   |
[INFO] [stdout] 5 -     let y: i32; // Uninitialized but also unused, only a Warning !
[INFO] [stdout] 5 +     let rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i: i32; // Uninitialized but also unused, only a Warning !
[INFO] [stdout]   |
[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:13
[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: `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]   |         ^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let _x = x; 
[INFO] [stdout]   |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stdout]   |
[INFO] [stdout] 7 -     let x = x; 
[INFO] [stdout] 7 +     let rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i = x; 
[INFO] [stdout]   |
[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]    |         ^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let _y = 4;
[INFO] [stdout]    |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stdout]    |
[INFO] [stdout] 10 -     let y = 4;
[INFO] [stdout] 10 +     let rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i = 4;
[INFO] [stdout]    |
[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: variable `y` is assigned to, but never used
[INFO] [stdout]  --> src/rust_by_practice/_04_basic_types/_1_numbers_1_integer.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let mut y = 5;
[INFO] [stdout]   |             ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: consider using `_y` instead
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stdout]   |
[INFO] [stdout] 5 -     let mut y = 5;
[INFO] [stdout] 5 +     let mut rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i = 5;
[INFO] [stdout]   |
[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: `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]   |         ^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let _z = 10; // Type of z ? 
[INFO] [stdout]   |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stdout]   |
[INFO] [stdout] 9 -     let z = 10; // Type of z ? 
[INFO] [stdout] 9 +     let rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i = 10; // Type of z ? 
[INFO] [stdout]   |
[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: `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_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: 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: `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: this operation will panic at runtime
[INFO] [stdout]   --> src/rust_by_practice/_06_compound_types/_2_array_6.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let _name1 = &names[2];
[INFO] [stdout]    |                   ^^^^^^^^ index out of bounds: the length is 2 but the index is 2
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unconditional_panic)]` on by default
[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: `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: `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: if this is intentional, prefix it with an underscore
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let _none = plus_one(None);
[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] 
[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]    |         ^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 13 |     for _n in numbers {
[INFO] [stdout]    |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stdout]    |
[INFO] [stdout] 13 -     for n in numbers {
[INFO] [stdout] 13 +     for rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i in numbers {
[INFO] [stdout]    |
[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]   |         ^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]   |
[INFO] [stdout] 5 |     for _i in 0..=100 {
[INFO] [stdout]   |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stdout]   |
[INFO] [stdout] 5 |     for rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i in 0..=100 {
[INFO] [stdout]   |         +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[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]   |         ^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]   |
[INFO] [stdout] 5 |     for _i in 0..=100 {
[INFO] [stdout]   |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stdout]   |
[INFO] [stdout] 5 |     for rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i in 0..=100 {
[INFO] [stdout]   |         +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[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: `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]    |        ^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 12 |    let _i3: u32 = 'a'.into();
[INFO] [stdout]    |        +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `NTHREADS`
[INFO] [stdout]    |
[INFO] [stdout] 12 -    let i3: u32 = 'a'.into();
[INFO] [stdout] 12 +    let rust_by_example::_20_std_misc::_1_threads::NTHREADS: u32 = 'a'.into();
[INFO] [stdout]    |
[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: `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]   |         ^^^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let _num = unsafe { std::mem::transmute::<[u8; 4], u32>(raw_bytes) };
[INFO] [stdout]   |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `NTHREADS`
[INFO] [stdout]   |
[INFO] [stdout] 5 -     let num = unsafe { std::mem::transmute::<[u8; 4], u32>(raw_bytes) };
[INFO] [stdout] 5 +     let rust_by_example::_20_std_misc::_1_threads::NTHREADS = unsafe { std::mem::transmute::<[u8; 4], u32>(raw_bytes) };
[INFO] [stdout]   |
[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]   |         ^^^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let _num = u32::from_ne_bytes(raw_bytes);
[INFO] [stdout]   |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `NTHREADS`
[INFO] [stdout]   |
[INFO] [stdout] 8 -     let num = u32::from_ne_bytes(raw_bytes);
[INFO] [stdout] 8 +     let rust_by_example::_20_std_misc::_1_threads::NTHREADS = u32::from_ne_bytes(raw_bytes);
[INFO] [stdout]   |
[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]   |         ^^^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let _ele = v[2];
[INFO] [stdout]   |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stdout]   |
[INFO] [stdout] 6 -     let ele = v[2];
[INFO] [stdout] 6 +     let rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i = v[2];
[INFO] [stdout]   |
[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: 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: `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: variable `y` is assigned to, but never used
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_3_advanced_3_trait_bounds.rs:2:30
[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: `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]    |         ^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let _v1 = c.value(1);
[INFO] [stdout]    |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stdout]    |
[INFO] [stdout] 41 -     let v1 = c.value(1);
[INFO] [stdout] 41 +     let rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i = c.value(1);
[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: 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 `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: 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: 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 `test` profile [unoptimized + debuginfo] target(s) in 1.92s
[INFO] running `Command { std: "docker" "inspect" "a011d171f8d927dd565590bdd8964831785cff8d455a0197ebaea972dded5e7c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a011d171f8d927dd565590bdd8964831785cff8d455a0197ebaea972dded5e7c", kill_on_drop: false }`
[INFO] [stdout] a011d171f8d927dd565590bdd8964831785cff8d455a0197ebaea972dded5e7c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] d31deb804773938db03e4806d91dab2e2f99dc0edd0cc5b7521d4f67db76f35f
[INFO] running `Command { std: "docker" "start" "-a" "d31deb804773938db03e4806d91dab2e2f99dc0edd0cc5b7521d4f67db76f35f", kill_on_drop: false }`
[INFO] [stderr] warning: unused label
[INFO] [stderr]  --> src/rust_by_example/_08_flow_of_control/_2_loop_1_nesting_and_labels.rs:7:9
[INFO] [stderr]   |
[INFO] [stderr] 7 |         'inner: loop {
[INFO] [stderr]   |         ^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_labels)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stderr]  --> src/rust_by_example/_20_std_misc/_8_foreign_function_interface.rs:5:1
[INFO] [stderr]   |
[INFO] [stderr] 5 | extern {
[INFO] [stderr]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(missing_abi)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused label
[INFO] [stderr]   --> src/rust_by_practice/_07_flow_control/_1_flow_control_11_loop.rs:16:9
[INFO] [stderr]    |
[INFO] [stderr] 16 |         'inner2: loop {
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]   --> src/rust_by_practice/_10_generics_and_traits/_3_traits_2_derive.rs:27:25
[INFO] [stderr]    |
[INFO] [stderr] 27 |     let _this_is_true = (_one_second == _one_second);
[INFO] [stderr]    |                         ^                          ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 27 -     let _this_is_true = (_one_second == _one_second);
[INFO] [stderr] 27 +     let _this_is_true = _one_second == _one_second;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]   --> src/rust_by_practice/_10_generics_and_traits/_3_traits_2_derive.rs:28:25
[INFO] [stderr]    |
[INFO] [stderr] 28 |     let _this_is_true = (_one_second > _one_second);
[INFO] [stderr]    |                         ^                         ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 28 -     let _this_is_true = (_one_second > _one_second);
[INFO] [stderr] 28 +     let _this_is_true = _one_second > _one_second;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]  --> src/rust_by_practice/_18_functional_programming/_1_closure_11_closure_as_return_types.rs:2:26
[INFO] [stderr]   |
[INFO] [stderr] 2 | fn factory(x:i32) -> Box<(dyn Fn(i32) -> i32)> {
[INFO] [stderr]   |                          ^                  ^
[INFO] [stderr]   |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]   |
[INFO] [stderr] 2 - fn factory(x:i32) -> Box<(dyn Fn(i32) -> i32)> {
[INFO] [stderr] 2 + fn factory(x:i32) -> Box<dyn Fn(i32) -> i32> {
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `format`
[INFO] [stderr]  --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_4_newtype.rs:2:22
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::fmt::{self, format};
[INFO] [stderr]   |                      ^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::borrow::BorrowMut`
[INFO] [stderr]  --> src/rust_by_practice/_31_fighting_with_compiler/_1_borrowing_1.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::borrow::BorrowMut;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type `test` should have an upper camel case name
[INFO] [stderr]  --> src/rust_by_practice/_31_fighting_with_compiler/_1_borrowing_1.rs:5:8
[INFO] [stderr]   |
[INFO] [stderr] 5 | struct test {
[INFO] [stderr]   |        ^^^^ help: convert the identifier to upper camel case: `Test`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable statement
[INFO] [stderr]  --> src/rust_by_practice/_04_basic_types/_4_functions_3.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 4 |     never_return();
[INFO] [stderr]   |     -------------- any code following this expression is unreachable
[INFO] [stderr] 5 |
[INFO] [stderr] 6 |     println!("Failed!");
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr]   = note: this warning originates in the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `logical`
[INFO] [stderr]  --> src/rust_by_example/_02_primitives/_0_primitives.rs:3:9
[INFO] [stderr]   |
[INFO] [stderr] 3 |     let logical: bool = true;
[INFO] [stderr]   |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_logical`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `a_float`
[INFO] [stderr]  --> src/rust_by_example/_02_primitives/_0_primitives.rs:5:9
[INFO] [stderr]   |
[INFO] [stderr] 5 |     let a_float: f64 = 1.0;  // Regular annotation
[INFO] [stderr]   |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_a_float`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `an_integer`
[INFO] [stderr]  --> src/rust_by_example/_02_primitives/_0_primitives.rs:6:9
[INFO] [stderr]   |
[INFO] [stderr] 6 |     let an_integer   = 5i32; // Suffix annotation
[INFO] [stderr]   |         ^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: if this is intentional, prefix it with an underscore
[INFO] [stderr]   |
[INFO] [stderr] 6 |     let _an_integer   = 5i32; // Suffix annotation
[INFO] [stderr]   |         +
[INFO] [stderr] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stderr]   |
[INFO] [stderr] 6 -     let an_integer   = 5i32; // Suffix annotation
[INFO] [stderr] 6 +     let rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i   = 5i32; // Suffix annotation
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `default_float`
[INFO] [stderr]  --> src/rust_by_example/_02_primitives/_0_primitives.rs:9:9
[INFO] [stderr]   |
[INFO] [stderr] 9 |     let default_float   = 3.0; // `f64`
[INFO] [stderr]   |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_float`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `default_integer`
[INFO] [stderr]   --> src/rust_by_example/_02_primitives/_0_primitives.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr] 10 |     let default_integer = 7;   // `i32`
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: if this is intentional, prefix it with an underscore
[INFO] [stderr]    |
[INFO] [stderr] 10 |     let _default_integer = 7;   // `i32`
[INFO] [stderr]    |         +
[INFO] [stderr] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stderr]    |
[INFO] [stderr] 10 -     let default_integer = 7;   // `i32`
[INFO] [stderr] 10 +     let rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i = 7;   // `i32`
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: variable `inferred_type` is assigned to, but never used
[INFO] [stderr]   --> src/rust_by_example/_02_primitives/_0_primitives.rs:13:13
[INFO] [stderr]    |
[INFO] [stderr] 13 |     let mut inferred_type = 12; // Type i64 is inferred from another line.
[INFO] [stderr]    |             ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: consider using `_inferred_type` instead
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `inferred_type` is never read
[INFO] [stderr]   --> src/rust_by_example/_02_primitives/_0_primitives.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 14 |     inferred_type = 4294967296i64;
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = help: maybe it is overwritten before being read?
[INFO] [stderr]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `mutable` is assigned to, but never used
[INFO] [stderr]   --> src/rust_by_example/_02_primitives/_0_primitives.rs:17:13
[INFO] [stderr]    |
[INFO] [stderr] 17 |     let mut mutable = 12; // Mutable `i32`
[INFO] [stderr]    |             ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: consider using `_mutable` instead
[INFO] [stderr] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stderr]    |
[INFO] [stderr] 17 -     let mut mutable = 12; // Mutable `i32`
[INFO] [stderr] 17 +     let mut rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i = 12; // Mutable `i32`
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `mutable` is never read
[INFO] [stderr]   --> src/rust_by_example/_02_primitives/_0_primitives.rs:18:5
[INFO] [stderr]    |
[INFO] [stderr] 18 |     mutable = 21;
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `mutable`
[INFO] [stderr]   --> src/rust_by_example/_02_primitives/_0_primitives.rs:24:9
[INFO] [stderr]    |
[INFO] [stderr] 24 |     let mutable = true;
[INFO] [stderr]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mutable`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]   --> src/rust_by_example/_03_custom_types/_2_enums_0.rs:49:9
[INFO] [stderr]    |
[INFO] [stderr] 49 |     let x = Operations::Add;
[INFO] [stderr]    |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `noisy_unused_variable`
[INFO] [stderr]   --> src/rust_by_example/_04_variable_bindings/_0_variable_bindings.rs:17:9
[INFO] [stderr]    |
[INFO] [stderr] 17 |     let noisy_unused_variable = 2u32;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: if this is intentional, prefix it with an underscore
[INFO] [stderr]    |
[INFO] [stderr] 17 |     let _noisy_unused_variable = 2u32;
[INFO] [stderr]    |         +
[INFO] [stderr] help: you might have meant to pattern match on the similarly named constant `NTHREADS`
[INFO] [stderr]    |
[INFO] [stderr] 17 -     let noisy_unused_variable = 2u32;
[INFO] [stderr] 17 +     let rust_by_example::_20_std_misc::_1_threads::NTHREADS = 2u32;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: irrefutable `if let` pattern
[INFO] [stderr]    --> src/rust_by_example/_08_flow_of_control/_6_if_let.rs:104:12
[INFO] [stderr]     |
[INFO] [stderr] 104 |         if let Foo::Bar = a {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stderr]     = help: consider replacing the `if let` with a `let`
[INFO] [stderr]     = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `years_as_primitive_1`
[INFO] [stderr]   --> src/rust_by_example/_14_generics/_7_new_type_idiom.rs:32:9
[INFO] [stderr]    |
[INFO] [stderr] 32 |     let years_as_primitive_1: i64 = years.0; // Tuple
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_years_as_primitive_1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `years_as_primitive_2`
[INFO] [stderr]   --> src/rust_by_example/_14_generics/_7_new_type_idiom.rs:33:15
[INFO] [stderr]    |
[INFO] [stderr] 33 |     let Years(years_as_primitive_2) = years; // Destructuring
[INFO] [stderr]    |               ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_years_as_primitive_2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `apple`
[INFO] [stderr]   --> src/rust_by_example/_18_error_handling/_3_option_and_unwrap_4_unpacking_options_and_defaults.rs:24:13
[INFO] [stderr]    |
[INFO] [stderr] 24 |         let apple = Some(Fruit::Apple);
[INFO] [stderr]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_apple`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `first_number_str`
[INFO] [stderr]  --> src/rust_by_example/_18_error_handling/_4_result_4_introducing_questionmark_2_try_macro.rs:6:13
[INFO] [stderr]   |
[INFO] [stderr] 6 | fn multiply(first_number_str: &str, second_number_str: &str) -> Result<i32, ParseIntError> {
[INFO] [stderr]   |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_first_number_str`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `second_number_str`
[INFO] [stderr]  --> src/rust_by_example/_18_error_handling/_4_result_4_introducing_questionmark_2_try_macro.rs:6:37
[INFO] [stderr]   |
[INFO] [stderr] 6 | fn multiply(first_number_str: &str, second_number_str: &str) -> Result<i32, ParseIntError> {
[INFO] [stderr]   |                                     ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_second_number_str`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `y`
[INFO] [stderr]  --> src/rust_by_practice/_03_variables/_0_variables_1_binding_and_mutability.rs:5:9
[INFO] [stderr]   |
[INFO] [stderr] 5 |     let y: i32; // Uninitialized but also unused, only a Warning !
[INFO] [stderr]   |         ^
[INFO] [stderr]   |
[INFO] [stderr] help: if this is intentional, prefix it with an underscore
[INFO] [stderr]   |
[INFO] [stderr] 5 |     let _y: i32; // Uninitialized but also unused, only a Warning !
[INFO] [stderr]   |         +
[INFO] [stderr] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stderr]   |
[INFO] [stderr] 5 -     let y: i32; // Uninitialized but also unused, only a Warning !
[INFO] [stderr] 5 +     let rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i: i32; // Uninitialized but also unused, only a Warning !
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `x` is never read
[INFO] [stderr]  --> src/rust_by_practice/_03_variables/_0_variables_6_shadowing.rs:4:13
[INFO] [stderr]   |
[INFO] [stderr] 4 |     let mut x: i32 = 1;
[INFO] [stderr]   |             ^
[INFO] [stderr]   |
[INFO] [stderr]   = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]  --> src/rust_by_practice/_03_variables/_0_variables_6_shadowing.rs:7:9
[INFO] [stderr]   |
[INFO] [stderr] 7 |     let x = x; 
[INFO] [stderr]   |         ^
[INFO] [stderr]   |
[INFO] [stderr] help: if this is intentional, prefix it with an underscore
[INFO] [stderr]   |
[INFO] [stderr] 7 |     let _x = x; 
[INFO] [stderr]   |         +
[INFO] [stderr] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stderr]   |
[INFO] [stderr] 7 -     let x = x; 
[INFO] [stderr] 7 +     let rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i = x; 
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `y`
[INFO] [stderr]   --> src/rust_by_practice/_03_variables/_0_variables_6_shadowing.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr] 10 |     let y = 4;
[INFO] [stderr]    |         ^
[INFO] [stderr]    |
[INFO] [stderr] help: if this is intentional, prefix it with an underscore
[INFO] [stderr]    |
[INFO] [stderr] 10 |     let _y = 4;
[INFO] [stderr]    |         +
[INFO] [stderr] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stderr]    |
[INFO] [stderr] 10 -     let y = 4;
[INFO] [stderr] 10 +     let rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i = 4;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `y`
[INFO] [stderr]   --> src/rust_by_practice/_03_variables/_0_variables_6_shadowing.rs:12:9
[INFO] [stderr]    |
[INFO] [stderr] 12 |     let y = "I can also be bound to text!"; 
[INFO] [stderr]    |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `y` is assigned to, but never used
[INFO] [stderr]  --> src/rust_by_practice/_04_basic_types/_1_numbers_1_integer.rs:5:13
[INFO] [stderr]   |
[INFO] [stderr] 5 |     let mut y = 5;
[INFO] [stderr]   |             ^
[INFO] [stderr]   |
[INFO] [stderr]   = note: consider using `_y` instead
[INFO] [stderr] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stderr]   |
[INFO] [stderr] 5 -     let mut y = 5;
[INFO] [stderr] 5 +     let mut rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i = 5;
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `y` is never read
[INFO] [stderr]  --> src/rust_by_practice/_04_basic_types/_1_numbers_1_integer.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 |     y = x;
[INFO] [stderr]   |     ^
[INFO] [stderr]   |
[INFO] [stderr]   = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `z`
[INFO] [stderr]  --> src/rust_by_practice/_04_basic_types/_1_numbers_1_integer.rs:9:9
[INFO] [stderr]   |
[INFO] [stderr] 9 |     let z = 10; // Type of z ? 
[INFO] [stderr]   |         ^
[INFO] [stderr]   |
[INFO] [stderr] help: if this is intentional, prefix it with an underscore
[INFO] [stderr]   |
[INFO] [stderr] 9 |     let _z = 10; // Type of z ? 
[INFO] [stderr]   |         +
[INFO] [stderr] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stderr]   |
[INFO] [stderr] 9 -     let z = 10; // Type of z ? 
[INFO] [stderr] 9 +     let rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i = 10; // Type of z ? 
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `v`
[INFO] [stderr]  --> src/rust_by_practice/_04_basic_types/_1_numbers_2_integer.rs:4:9
[INFO] [stderr]   |
[INFO] [stderr] 4 |     let v: u16 = 38_u8 as u16;
[INFO] [stderr]   |         ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `y`
[INFO] [stderr]  --> src/rust_by_practice/_04_basic_types/_1_numbers_7_floating_point.rs:5:9
[INFO] [stderr]   |
[INFO] [stderr] 5 |     let y: f32 = 0.12; // f32
[INFO] [stderr]   |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `z`
[INFO] [stderr]  --> src/rust_by_practice/_04_basic_types/_1_numbers_7_floating_point.rs:6:9
[INFO] [stderr]   |
[INFO] [stderr] 6 |     let z = 0.01_f64; // f64
[INFO] [stderr]   |         ^ help: if this is intentional, prefix it with an underscore: `_z`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `t`
[INFO] [stderr]  --> src/rust_by_practice/_04_basic_types/_2_cbu_3_bool.rs:6:9
[INFO] [stderr]   |
[INFO] [stderr] 6 |     let t = true;
[INFO] [stderr]   |         ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `v`
[INFO] [stderr]  --> src/rust_by_practice/_04_basic_types/_2_cbu_5_unit.rs:6:9
[INFO] [stderr]   |
[INFO] [stderr] 6 |     let v = (2, 3);
[INFO] [stderr]   |         ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]  --> src/rust_by_practice/_05_ownership_and_borrowing/_2_referencing_and_borrowing_3_reference.rs:4:9
[INFO] [stderr]   |
[INFO] [stderr] 4 |     let mut s = String::from("hello, ");
[INFO] [stderr]   |         ----^
[INFO] [stderr]   |         |
[INFO] [stderr]   |         help: remove this `mut`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `s`
[INFO] [stderr]   --> src/rust_by_practice/_05_ownership_and_borrowing/_2_referencing_and_borrowing_3_reference.rs:11:18
[INFO] [stderr]    |
[INFO] [stderr] 11 | fn borrow_object(s: &String) {}
[INFO] [stderr]    |                  ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]  --> src/rust_by_practice/_05_ownership_and_borrowing/_2_referencing_and_borrowing_7_borrowing_rules.rs:5:9
[INFO] [stderr]   |
[INFO] [stderr] 5 |     let mut s = String::from("hello");
[INFO] [stderr]   |         ----^
[INFO] [stderr]   |         |
[INFO] [stderr]   |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `s`
[INFO] [stderr]   --> src/rust_by_practice/_05_ownership_and_borrowing/_2_referencing_and_borrowing_8_mutablity.rs:11:18
[INFO] [stderr]    |
[INFO] [stderr] 11 | fn borrow_object(s: &mut String) {}
[INFO] [stderr]    |                  ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `s`
[INFO] [stderr]   --> src/rust_by_practice/_05_ownership_and_borrowing/_2_referencing_and_borrowing_9_mutablity.rs:13:18
[INFO] [stderr]    |
[INFO] [stderr] 13 | fn borrow_object(s: &String) {}
[INFO] [stderr]    |                  ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `r1`
[INFO] [stderr]  --> src/rust_by_practice/_05_ownership_and_borrowing/_2_referencing_and_borrowing_11_nll.rs:5:9
[INFO] [stderr]   |
[INFO] [stderr] 5 |     let r1 = &mut s;
[INFO] [stderr]   |         ^^ help: if this is intentional, prefix it with an underscore: `_r1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `r2`
[INFO] [stderr]  --> src/rust_by_practice/_05_ownership_and_borrowing/_2_referencing_and_borrowing_11_nll.rs:6:9
[INFO] [stderr]   |
[INFO] [stderr] 6 |     let r2 = &mut s;
[INFO] [stderr]   |         ^^ help: if this is intentional, prefix it with an underscore: `_r2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `s`
[INFO] [stderr]  --> src/rust_by_practice/_06_compound_types/_1_string_1_str_and_str.rs:4:9
[INFO] [stderr]   |
[INFO] [stderr] 4 |     let s: &str = "hello, world";
[INFO] [stderr]   |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `s1`
[INFO] [stderr]  --> src/rust_by_practice/_06_compound_types/_1_string_8_str_and_string.rs:5:9
[INFO] [stderr]   |
[INFO] [stderr] 5 |     let s1: &str = s;
[INFO] [stderr]   |         ^^ help: if this is intentional, prefix it with an underscore: `_s1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rocket`
[INFO] [stderr]  --> src/rust_by_practice/_06_compound_types/_1_string_12_utf8_slice_example.rs:5:9
[INFO] [stderr]   |
[INFO] [stderr] 5 |     let rocket = utf8_slice::slice(s, 4, 5);
[INFO] [stderr]   |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_rocket`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `arr0`
[INFO] [stderr]  --> src/rust_by_practice/_06_compound_types/_2_array_2.rs:4:9
[INFO] [stderr]   |
[INFO] [stderr] 4 |     let arr0 = [1, 2, 3];
[INFO] [stderr]   |         ^^^^ help: if this is intentional, prefix it with an underscore: `_arr0`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `name0`
[INFO] [stderr]  --> src/rust_by_practice/_06_compound_types/_2_array_6.rs:7:9
[INFO] [stderr]   |
[INFO] [stderr] 7 |     let name0 = names.get(0).unwrap();
[INFO] [stderr]   |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_name0`
[INFO] [stderr] 
[INFO] [stderr] warning: this operation will panic at runtime
[INFO] [stderr]   --> src/rust_by_practice/_06_compound_types/_2_array_6.rs:10:19
[INFO] [stderr]    |
[INFO] [stderr] 10 |     let _name1 = &names[2];
[INFO] [stderr]    |                   ^^^^^^^^ index out of bounds: the length is 2 but the index is 2
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unconditional_panic)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `s1`
[INFO] [stderr]  --> src/rust_by_practice/_06_compound_types/_3_slice_1.rs:5:9
[INFO] [stderr]   |
[INFO] [stderr] 5 |     let s1: &[i32] = &arr[0..2];
[INFO] [stderr]   |         ^^ help: if this is intentional, prefix it with an underscore: `_s1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `s2`
[INFO] [stderr]  --> src/rust_by_practice/_06_compound_types/_3_slice_1.rs:7:9
[INFO] [stderr]   |
[INFO] [stderr] 7 |     let s2: &str = "hello, world";
[INFO] [stderr]   |         ^^ help: if this is intentional, prefix it with an underscore: `_s2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `t`
[INFO] [stderr]  --> src/rust_by_practice/_06_compound_types/_4_tuple_1.rs:7:9
[INFO] [stderr]   |
[INFO] [stderr] 7 |     let t: (u8, u16, i64, &str,String) = (1u8, 2u16, 3i64, "hello", String::from(", world"));
[INFO] [stderr]   |         ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `p`
[INFO] [stderr]   --> src/rust_by_practice/_06_compound_types/_5_struct_1_the_types_of_structs.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr] 10 |     let p = Person {
[INFO] [stderr]    |         ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `u`
[INFO] [stderr]   --> src/rust_by_practice/_06_compound_types/_5_struct_2_the_types_of_structs.rs:18:27
[INFO] [stderr]    |
[INFO] [stderr] 18 | fn do_something_with_unit(u: Unit) {   }
[INFO] [stderr]    |                           ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `u2`
[INFO] [stderr]   --> src/rust_by_practice/_06_compound_types/_5_struct_6_operating_on_structs.rs:17:9
[INFO] [stderr]    |
[INFO] [stderr] 17 |     let u2 = set_email(u1);
[INFO] [stderr]    |         ^^ help: if this is intentional, prefix it with an underscore: `_u2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `msg1`
[INFO] [stderr]   --> src/rust_by_practice/_06_compound_types/_6_enum_2.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 |     let msg1 = Message::Move{x:1, y:2}; // Instantiating with x = 1, y = 2 
[INFO] [stderr]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_msg1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `msg2`
[INFO] [stderr]   --> src/rust_by_practice/_06_compound_types/_6_enum_2.rs:12:9
[INFO] [stderr]    |
[INFO] [stderr] 12 |     let msg2 = Message::Write("hello, world!".to_string()); // Instantiating with "hello, world!"
[INFO] [stderr]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_msg2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `none`
[INFO] [stderr]  --> src/rust_by_practice/_06_compound_types/_6_enum_5.rs:7:9
[INFO] [stderr]   |
[INFO] [stderr] 7 |     let none = plus_one(None);
[INFO] [stderr]   |         ^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: if this is intentional, prefix it with an underscore
[INFO] [stderr]   |
[INFO] [stderr] 7 |     let _none = plus_one(None);
[INFO] [stderr]   |         +
[INFO] [stderr] help: you might have meant to pattern match on the similarly named variant `None`
[INFO] [stderr]   |
[INFO] [stderr] 7 -     let none = plus_one(None);
[INFO] [stderr] 7 +     let std::prelude::v1::None = plus_one(None);
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `name`
[INFO] [stderr]  --> src/rust_by_practice/_07_flow_control/_1_flow_control_4_for.rs:5:9
[INFO] [stderr]   |
[INFO] [stderr] 5 |     for name in names.clone() {
[INFO] [stderr]   |         ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `n`
[INFO] [stderr]   --> src/rust_by_practice/_07_flow_control/_1_flow_control_4_for.rs:13:9
[INFO] [stderr]    |
[INFO] [stderr] 13 |     for n in numbers {
[INFO] [stderr]    |         ^
[INFO] [stderr]    |
[INFO] [stderr] help: if this is intentional, prefix it with an underscore
[INFO] [stderr]    |
[INFO] [stderr] 13 |     for _n in numbers {
[INFO] [stderr]    |         +
[INFO] [stderr] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stderr]    |
[INFO] [stderr] 13 -     for n in numbers {
[INFO] [stderr] 13 +     for rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i in numbers {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]  --> src/rust_by_practice/_07_flow_control/_1_flow_control_7_continue_and_break.rs:5:9
[INFO] [stderr]   |
[INFO] [stderr] 5 |     for i in 0..=100 {
[INFO] [stderr]   |         ^
[INFO] [stderr]   |
[INFO] [stderr] help: if this is intentional, prefix it with an underscore
[INFO] [stderr]   |
[INFO] [stderr] 5 |     for _i in 0..=100 {
[INFO] [stderr]   |         +
[INFO] [stderr] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stderr]   |
[INFO] [stderr] 5 |     for rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i in 0..=100 {
[INFO] [stderr]   |         +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]  --> src/rust_by_practice/_07_flow_control/_1_flow_control_8_continue_and_break.rs:5:9
[INFO] [stderr]   |
[INFO] [stderr] 5 |     for i in 0..=100 {
[INFO] [stderr]   |         ^
[INFO] [stderr]   |
[INFO] [stderr] help: if this is intentional, prefix it with an underscore
[INFO] [stderr]   |
[INFO] [stderr] 5 |     for _i in 0..=100 {
[INFO] [stderr]   |         +
[INFO] [stderr] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stderr]   |
[INFO] [stderr] 5 |     for rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i in 0..=100 {
[INFO] [stderr]   |         +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[INFO] [stderr] 
[INFO] [stderr] warning: irrefutable `if let` pattern
[INFO] [stderr]   --> src/rust_by_practice/_08_pattern_match/_1_match_matches_and_if_let_7_if_let.rs:10:8
[INFO] [stderr]    |
[INFO] [stderr] 10 |     if let Foo::Bar(i) = a {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this pattern will always match, so the `if let` is useless
[INFO] [stderr]    = help: consider replacing the `if let` with a `let`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `integer`
[INFO] [stderr]  --> src/rust_by_practice/_10_generics_and_traits/_1_generics_3_struct_and_impl.rs:9:9
[INFO] [stderr]   |
[INFO] [stderr] 9 |     let integer = Point { x: 5, y: 10 };
[INFO] [stderr]   |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_integer`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `float`
[INFO] [stderr]   --> src/rust_by_practice/_10_generics_and_traits/_1_generics_3_struct_and_impl.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr] 10 |     let float = Point { x: 1.0, y: 4.0 };
[INFO] [stderr]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_float`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `p`
[INFO] [stderr]   --> src/rust_by_practice/_10_generics_and_traits/_1_generics_4_struct_and_impl.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr] 10 |     let p = Point{x: 5, y : "hello".to_string()};
[INFO] [stderr]    |         ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `arrays`
[INFO] [stderr]  --> src/rust_by_practice/_10_generics_and_traits/_2_const_generics_1.rs:6:9
[INFO] [stderr]   |
[INFO] [stderr] 6 |     let arrays = [
[INFO] [stderr]   |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_arrays`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `v`
[INFO] [stderr]   --> src/rust_by_practice/_11_collection_types/_2_vector_1_basic_operations.rs:28:11
[INFO] [stderr]    |
[INFO] [stderr] 28 | fn is_vec(v: &Vec<u8>) {}
[INFO] [stderr]    |           ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `c1`
[INFO] [stderr]  --> src/rust_by_practice/_12_type_conversion/_1_as_1.rs:8:9
[INFO] [stderr]   |
[INFO] [stderr] 8 |     let c1: char = decimal as u8 as char;
[INFO] [stderr]   |         ^^ help: if this is intentional, prefix it with an underscore: `_c1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `c2`
[INFO] [stderr]  --> src/rust_by_practice/_12_type_conversion/_1_as_1.rs:9:9
[INFO] [stderr]   |
[INFO] [stderr] 9 |     let c2 = integer as char;
[INFO] [stderr]   |         ^^ help: if this is intentional, prefix it with an underscore: `_c2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `v`
[INFO] [stderr]  --> src/rust_by_practice/_12_type_conversion/_1_as_2.rs:8:9
[INFO] [stderr]   |
[INFO] [stderr] 8 |     let v = 1000 as u8;
[INFO] [stderr]   |         ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i3`
[INFO] [stderr]   --> src/rust_by_practice/_12_type_conversion/_2_from_into_1.rs:12:8
[INFO] [stderr]    |
[INFO] [stderr] 12 |    let i3: u32 = 'a'.into();
[INFO] [stderr]    |        ^^
[INFO] [stderr]    |
[INFO] [stderr] help: if this is intentional, prefix it with an underscore
[INFO] [stderr]    |
[INFO] [stderr] 12 |    let _i3: u32 = 'a'.into();
[INFO] [stderr]    |        +
[INFO] [stderr] help: you might have meant to pattern match on the similarly named constant `NTHREADS`
[INFO] [stderr]    |
[INFO] [stderr] 12 -    let i3: u32 = 'a'.into();
[INFO] [stderr] 12 +    let rust_by_example::_20_std_misc::_1_threads::NTHREADS: u32 = 'a'.into();
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `s`
[INFO] [stderr]   --> src/rust_by_practice/_12_type_conversion/_2_from_into_1.rs:15:8
[INFO] [stderr]    |
[INFO] [stderr] 15 |    let s: String = 'a'.into();
[INFO] [stderr]    |        ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `num`
[INFO] [stderr]  --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:5:9
[INFO] [stderr]   |
[INFO] [stderr] 5 |     let num = unsafe { std::mem::transmute::<[u8; 4], u32>(raw_bytes) };
[INFO] [stderr]   |         ^^^
[INFO] [stderr]   |
[INFO] [stderr] help: if this is intentional, prefix it with an underscore
[INFO] [stderr]   |
[INFO] [stderr] 5 |     let _num = unsafe { std::mem::transmute::<[u8; 4], u32>(raw_bytes) };
[INFO] [stderr]   |         +
[INFO] [stderr] help: you might have meant to pattern match on the similarly named constant `NTHREADS`
[INFO] [stderr]   |
[INFO] [stderr] 5 -     let num = unsafe { std::mem::transmute::<[u8; 4], u32>(raw_bytes) };
[INFO] [stderr] 5 +     let rust_by_example::_20_std_misc::_1_threads::NTHREADS = unsafe { std::mem::transmute::<[u8; 4], u32>(raw_bytes) };
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `num`
[INFO] [stderr]  --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:8:9
[INFO] [stderr]   |
[INFO] [stderr] 8 |     let num = u32::from_ne_bytes(raw_bytes);
[INFO] [stderr]   |         ^^^
[INFO] [stderr]   |
[INFO] [stderr] help: if this is intentional, prefix it with an underscore
[INFO] [stderr]   |
[INFO] [stderr] 8 |     let _num = u32::from_ne_bytes(raw_bytes);
[INFO] [stderr]   |         +
[INFO] [stderr] help: you might have meant to pattern match on the similarly named constant `NTHREADS`
[INFO] [stderr]   |
[INFO] [stderr] 8 -     let num = u32::from_ne_bytes(raw_bytes);
[INFO] [stderr] 8 +     let rust_by_example::_20_std_misc::_1_threads::NTHREADS = u32::from_ne_bytes(raw_bytes);
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ptr_num_transmute`
[INFO] [stderr]   --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:17:9
[INFO] [stderr]    |
[INFO] [stderr] 17 |     let ptr_num_transmute = unsafe { std::mem::transmute::<&i32, usize>(ptr) };
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ptr_num_transmute`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ptr_num_cast`
[INFO] [stderr]   --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:20:9
[INFO] [stderr]    |
[INFO] [stderr] 20 |     let ptr_num_cast = ptr as *const i32 as usize;
[INFO] [stderr]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ptr_num_cast`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `val_transmuted`
[INFO] [stderr]   --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:24:9
[INFO] [stderr]    |
[INFO] [stderr] 24 |     let val_transmuted = unsafe { std::mem::transmute::<&mut i32, &mut u32>(ptr) };
[INFO] [stderr]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_val_transmuted`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `val_casts`
[INFO] [stderr]   --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:28:9
[INFO] [stderr]    |
[INFO] [stderr] 28 |     let val_casts = unsafe { &mut *(ptr as *mut i32 as *mut u32) };
[INFO] [stderr]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_val_casts`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ele`
[INFO] [stderr]  --> src/rust_by_practice/_13_result_and_panic/_1_panic_2.rs:6:9
[INFO] [stderr]   |
[INFO] [stderr] 6 |     let ele = v[2];
[INFO] [stderr]   |         ^^^
[INFO] [stderr]   |
[INFO] [stderr] help: if this is intentional, prefix it with an underscore
[INFO] [stderr]   |
[INFO] [stderr] 6 |     let _ele = v[2];
[INFO] [stderr]   |         +
[INFO] [stderr] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stderr]   |
[INFO] [stderr] 6 -     let ele = v[2];
[INFO] [stderr] 6 +     let rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i = v[2];
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ele`
[INFO] [stderr]  --> src/rust_by_practice/_13_result_and_panic/_1_panic_2.rs:8:9
[INFO] [stderr]   |
[INFO] [stderr] 8 |     let ele = v.get(2).unwrap();
[INFO] [stderr]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_ele`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `v`
[INFO] [stderr]   --> src/rust_by_practice/_13_result_and_panic/_1_panic_2.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 |     let v = production_rate_per_hour(2);
[INFO] [stderr]    |         ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `width`
[INFO] [stderr]   --> src/rust_by_practice/_16_formatted_output/_3_formatting_9_capture_the_environment.rs:14:10
[INFO] [stderr]    |
[INFO] [stderr] 14 |     let (width, precision) = get_format();
[INFO] [stderr]    |          ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `precision`
[INFO] [stderr]   --> src/rust_by_practice/_16_formatted_output/_3_formatting_9_capture_the_environment.rs:14:17
[INFO] [stderr]    |
[INFO] [stderr] 14 |     let (width, precision) = get_format();
[INFO] [stderr]    |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_precision`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `y`
[INFO] [stderr]   --> src/rust_by_practice/_17_lifetime/_1_basic_5_function.rs:14:9
[INFO] [stderr]    |
[INFO] [stderr] 14 |     let y: &i32 = &_x;
[INFO] [stderr]    |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `y`
[INFO] [stderr]  --> src/rust_by_practice/_17_lifetime/_1_basic_10_elision.rs:9:28
[INFO] [stderr]   |
[INFO] [stderr] 9 | fn longest<'a>(x: &'a str, y: &str) -> &'a str {
[INFO] [stderr]   |                            ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `y` is never read
[INFO] [stderr]  --> src/rust_by_practice/_17_lifetime/_3_advanced_3_trait_bounds.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 |     y = x;                      
[INFO] [stderr]   |     ^
[INFO] [stderr]   |
[INFO] [stderr]   = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `r`
[INFO] [stderr]  --> src/rust_by_practice/_17_lifetime/_3_advanced_3_trait_bounds.rs:4:9
[INFO] [stderr]   |
[INFO] [stderr] 4 |     let r: &'b &'a i32 = &&0;   
[INFO] [stderr]   |         ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `y` is assigned to, but never used
[INFO] [stderr]  --> src/rust_by_practice/_17_lifetime/_3_advanced_3_trait_bounds.rs:2:30
[INFO] [stderr]   |
[INFO] [stderr] 2 | fn f<'a, 'b>(x: &'a i32, mut y: &'b i32) where 'a: 'b {
[INFO] [stderr]   |                              ^
[INFO] [stderr]   |
[INFO] [stderr]   = note: consider using `_y` instead
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `s`
[INFO] [stderr]  --> src/rust_by_practice/_18_functional_programming/_1_closure_4_type_inferred.rs:4:9
[INFO] [stderr]   |
[INFO] [stderr] 4 |     let s = example_closure(String::from("hello"));
[INFO] [stderr]   |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `n`
[INFO] [stderr]  --> src/rust_by_practice/_18_functional_programming/_1_closure_4_type_inferred.rs:7:9
[INFO] [stderr]   |
[INFO] [stderr] 7 |     let n = example_closure("5".to_owned());
[INFO] [stderr]   |         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/rust_by_practice/_18_functional_programming/_1_closure_8_fn_fnmut_fnonce.rs:10:43
[INFO] [stderr]    |
[INFO] [stderr] 10 | fn exec<'a, F: FnOnce(&'a str) -> String>(mut f: F) {
[INFO] [stderr]    |                                           ----^
[INFO] [stderr]    |                                           |
[INFO] [stderr]    |                                           help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `v1`
[INFO] [stderr]   --> src/rust_by_practice/_18_functional_programming/_1_closure_closures_in_structs_example.rs:41:9
[INFO] [stderr]    |
[INFO] [stderr] 41 |     let v1 = c.value(1);
[INFO] [stderr]    |         ^^
[INFO] [stderr]    |
[INFO] [stderr] help: if this is intentional, prefix it with an underscore
[INFO] [stderr]    |
[INFO] [stderr] 41 |     let _v1 = c.value(1);
[INFO] [stderr]    |         +
[INFO] [stderr] help: you might have meant to pattern match on the similarly named constant `i`
[INFO] [stderr]    |
[INFO] [stderr] 41 -     let v1 = c.value(1);
[INFO] [stderr] 41 +     let rust_by_practice::_17_lifetime::_2_static_and_t_static_5_t_static::main::i = c.value(1);
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]   --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_5_type_alias.rs:12:9
[INFO] [stderr]    |
[INFO] [stderr] 12 |     let x = Operations::Add;
[INFO] [stderr]    |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `s`
[INFO] [stderr]  --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_8_dst_and_unsized_type.rs:3:9
[INFO] [stderr]   |
[INFO] [stderr] 3 |     let s: &str = "Hello there!";
[INFO] [stderr]   |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `arr`
[INFO] [stderr]  --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_8_dst_and_unsized_type.rs:5:9
[INFO] [stderr]   |
[INFO] [stderr] 5 |     let arr: &[u8] = &[1, 2, 3];
[INFO] [stderr]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_arr`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `thing`
[INFO] [stderr]  --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_9_dst_and_unsized_type.rs:3:11
[INFO] [stderr]   |
[INFO] [stderr] 3 | fn foobar(thing: &dyn Display) {}    
[INFO] [stderr]   |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_thing`
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]  --> src/rust_by_example/_01_hello_world/_2_1_debug_1.rs:4:18
[INFO] [stderr]   |
[INFO] [stderr] 4 | struct Structure(i32);
[INFO] [stderr]   |        --------- ^^^
[INFO] [stderr]   |        |
[INFO] [stderr]   |        field in this struct
[INFO] [stderr]   |
[INFO] [stderr]   = help: consider removing this field
[INFO] [stderr]   = note: `Structure` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]  --> src/rust_by_example/_01_hello_world/_2_1_debug_1.rs:9:13
[INFO] [stderr]   |
[INFO] [stderr] 9 | struct Deep(Structure);
[INFO] [stderr]   |        ---- ^^^^^^^^^
[INFO] [stderr]   |        |
[INFO] [stderr]   |        field in this struct
[INFO] [stderr]   |
[INFO] [stderr]   = help: consider removing this field
[INFO] [stderr]   = note: `Deep` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `name` and `age` are never read
[INFO] [stderr]  --> src/rust_by_example/_01_hello_world/_2_1_debug_2.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | struct Person<'a> {
[INFO] [stderr]   |        ------ fields in this struct
[INFO] [stderr] 3 |     name: &'a str,
[INFO] [stderr]   |     ^^^^
[INFO] [stderr] 4 |     age: u8
[INFO] [stderr]   |     ^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `Person` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variant `Subtract` is never constructed
[INFO] [stderr]   --> src/rust_by_example/_03_custom_types/_2_enums_0.rs:56:5
[INFO] [stderr]    |
[INFO] [stderr] 54 | enum VeryVerboseEnumOfThingsToDoWithNumbers {
[INFO] [stderr]    |      -------------------------------------- variant in this enum
[INFO] [stderr] 55 |     Add,
[INFO] [stderr] 56 |     Subtract,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `run` is never used
[INFO] [stderr]   --> src/rust_by_example/_03_custom_types/_2_enums_0.rs:63:8
[INFO] [stderr]    |
[INFO] [stderr] 62 | impl VeryVerboseEnumOfThingsToDoWithNumbers {
[INFO] [stderr]    | ------------------------------------------- method in this implementation
[INFO] [stderr] 63 |     fn run(&self, x: i32, y: i32) -> i32 {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `contents` is never read
[INFO] [stderr]  --> src/rust_by_example/_10_modules/_2_struct_visibility.rs:9:9
[INFO] [stderr]   |
[INFO] [stderr] 8 |     pub struct ClosedBox<T> {
[INFO] [stderr]   |                --------- field in this struct
[INFO] [stderr] 9 |         contents: T,
[INFO] [stderr]   |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `function` is never used
[INFO] [stderr]  --> src/rust_by_example/_10_modules/_4_super_and_self.rs:6:12
[INFO] [stderr]   |
[INFO] [stderr] 6 |     pub fn function() {
[INFO] [stderr]   |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]  --> src/rust_by_example/_15_scoping_rules/_4_lifetimes_4_structs.rs:4:21
[INFO] [stderr]   |
[INFO] [stderr] 4 | struct Borrowed<'a>(&'a i32);
[INFO] [stderr]   |        --------     ^^^^^^^
[INFO] [stderr]   |        |
[INFO] [stderr]   |        field in this struct
[INFO] [stderr]   |
[INFO] [stderr]   = help: consider removing this field
[INFO] [stderr]   = note: `Borrowed` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `x` and `y` are never read
[INFO] [stderr]   --> src/rust_by_example/_15_scoping_rules/_4_lifetimes_4_structs.rs:9:5
[INFO] [stderr]    |
[INFO] [stderr]  8 | struct NamedBorrowed<'a> {
[INFO] [stderr]    |        ------------- fields in this struct
[INFO] [stderr]  9 |     x: &'a i32,
[INFO] [stderr]    |     ^
[INFO] [stderr] 10 |     y: &'a i32,
[INFO] [stderr]    |     ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `NamedBorrowed` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/rust_by_example/_15_scoping_rules/_4_lifetimes_4_structs.rs:16:9
[INFO] [stderr]    |
[INFO] [stderr] 16 |     Num(i32),
[INFO] [stderr]    |     --- ^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Either` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 16 -     Num(i32),
[INFO] [stderr] 16 +     Num(()),
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/rust_by_example/_15_scoping_rules/_4_lifetimes_4_structs.rs:17:9
[INFO] [stderr]    |
[INFO] [stderr] 17 |     Ref(&'a i32),
[INFO] [stderr]    |     --- ^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Either` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 17 -     Ref(&'a i32),
[INFO] [stderr] 17 +     Ref(()),
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: field `x` is never read
[INFO] [stderr]  --> src/rust_by_example/_15_scoping_rules/_4_lifetimes_5_traits.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | struct Borrowed<'a> {
[INFO] [stderr]   |        -------- field in this struct
[INFO] [stderr] 4 |     x: &'a i32,
[INFO] [stderr]   |     ^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `Borrowed` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]  --> src/rust_by_example/_15_scoping_rules/_4_lifetimes_6_bounds.rs:4:23
[INFO] [stderr]   |
[INFO] [stderr] 4 | struct Ref<'a, T: 'a>(&'a T);
[INFO] [stderr]   |        ---            ^^^^^
[INFO] [stderr]   |        |
[INFO] [stderr]   |        field in this struct
[INFO] [stderr]   |
[INFO] [stderr]   = help: consider removing this field
[INFO] [stderr]   = note: `Ref` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/rust_by_example/_16_traits/_1_derive.rs:18:16
[INFO] [stderr]    |
[INFO] [stderr] 18 | struct Seconds(i32);
[INFO] [stderr]    |        ------- ^^^
[INFO] [stderr]    |        |
[INFO] [stderr]    |        field in this struct
[INFO] [stderr]    |
[INFO] [stderr]    = help: consider removing this field
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_csv_document` is never used
[INFO] [stderr]  --> src/rust_by_example/_16_traits/_6_impl_trait_1_as_an_argument_type.rs:1:4
[INFO] [stderr]   |
[INFO] [stderr] 1 | fn parse_csv_document(src: impl std::io::BufRead) -> std::io::Result<Vec<Vec<String>>> {
[INFO] [stderr]   |    ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `combine_vecs_explicit_return_type` is never used
[INFO] [stderr]  --> src/rust_by_example/_16_traits/_6_impl_trait_2_as_a_return_type.rs:6:4
[INFO] [stderr]   |
[INFO] [stderr] 6 | fn combine_vecs_explicit_return_type(
[INFO] [stderr]   |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `0` and `1` are never read
[INFO] [stderr]  --> src/rust_by_example/_16_traits/_7_clone.rs:7:13
[INFO] [stderr]   |
[INFO] [stderr] 7 | struct Pair(Box<i32>, Box<i32>);
[INFO] [stderr]   |        ---- ^^^^^^^^  ^^^^^^^^
[INFO] [stderr]   |        |
[INFO] [stderr]   |        fields in this struct
[INFO] [stderr]   |
[INFO] [stderr]   = help: consider removing these fields
[INFO] [stderr]   = note: `Pair` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: trait `Person` is never used
[INFO] [stderr]  --> src/rust_by_example/_16_traits/_8_supertraits.rs:1:7
[INFO] [stderr]   |
[INFO] [stderr] 1 | trait Person {
[INFO] [stderr]   |       ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `Student` is never used
[INFO] [stderr]  --> src/rust_by_example/_16_traits/_8_supertraits.rs:7:7
[INFO] [stderr]   |
[INFO] [stderr] 7 | trait Student: Person {
[INFO] [stderr]   |       ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `Programmer` is never used
[INFO] [stderr]   --> src/rust_by_example/_16_traits/_8_supertraits.rs:11:7
[INFO] [stderr]    |
[INFO] [stderr] 11 | trait Programmer {
[INFO] [stderr]    |       ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `CompSciStudent` is never used
[INFO] [stderr]   --> src/rust_by_example/_16_traits/_8_supertraits.rs:17:7
[INFO] [stderr]    |
[INFO] [stderr] 17 | trait CompSciStudent: Programmer + Student {
[INFO] [stderr]    |       ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `comp_sci_student_greeting` is never used
[INFO] [stderr]   --> src/rust_by_example/_16_traits/_8_supertraits.rs:21:4
[INFO] [stderr]    |
[INFO] [stderr] 21 | fn comp_sci_student_greeting(student: &dyn CompSciStudent) -> String {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `number` is never read
[INFO] [stderr]   --> src/rust_by_example/_18_error_handling/_3_option_and_unwrap_1_unpacking_options_with_questionmark.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | struct PhoneNumber {
[INFO] [stderr]    |        ----------- field in this struct
[INFO] [stderr] 12 |     area_code: Option<u8>,
[INFO] [stderr] 13 |     number: u32,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `PhoneNumber` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variant `Banana` is never constructed
[INFO] [stderr]  --> src/rust_by_example/_18_error_handling/_3_option_and_unwrap_4_unpacking_options_and_defaults.rs:2:29
[INFO] [stderr]   |
[INFO] [stderr] 2 | enum Fruit { Apple, Orange, Banana, Kiwi, Lemon }
[INFO] [stderr]   |      -----                  ^^^^^^
[INFO] [stderr]   |      |
[INFO] [stderr]   |      variant in this enum
[INFO] [stderr]   |
[INFO] [stderr]   = note: `Fruit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: function `explicitly_ret_unit` is never used
[INFO] [stderr]   --> src/rust_by_practice/_04_basic_types/_2_cbu_5_unit.rs:17:4
[INFO] [stderr]    |
[INFO] [stderr] 17 | fn explicitly_ret_unit() -> () {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_option` is never used
[INFO] [stderr]  --> src/rust_by_practice/_04_basic_types/_4_functions_4_diverging.rs:6:4
[INFO] [stderr]   |
[INFO] [stderr] 6 | fn get_option(tp: u8) -> Option<i32> {
[INFO] [stderr]   |    ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `never_return_fn` is never used
[INFO] [stderr]   --> src/rust_by_practice/_04_basic_types/_4_functions_4_diverging.rs:21:4
[INFO] [stderr]    |
[INFO] [stderr] 21 | fn never_return_fn() -> ! {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `name`, `age`, and `hobby` are never read
[INFO] [stderr]  --> src/rust_by_practice/_06_compound_types/_5_struct_1_the_types_of_structs.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | struct Person {
[INFO] [stderr]   |        ------ fields in this struct
[INFO] [stderr] 4 |     name: String,
[INFO] [stderr]   |     ^^^^
[INFO] [stderr] 5 |     age: u8,
[INFO] [stderr]   |     ^^^
[INFO] [stderr] 6 |     hobby: String
[INFO] [stderr]   |     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `SomeTrait` is never used
[INFO] [stderr]  --> src/rust_by_practice/_06_compound_types/_5_struct_2_the_types_of_structs.rs:3:7
[INFO] [stderr]   |
[INFO] [stderr] 3 | trait SomeTrait {
[INFO] [stderr]   |       ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Color` is never constructed
[INFO] [stderr]  --> src/rust_by_practice/_06_compound_types/_5_struct_3_the_types_of_structs.rs:3:8
[INFO] [stderr]   |
[INFO] [stderr] 3 | struct Color(i32, i32, i32);
[INFO] [stderr]   |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Person` is never constructed
[INFO] [stderr]  --> src/rust_by_practice/_06_compound_types/_5_struct_5_operating_on_structs.rs:3:8
[INFO] [stderr]   |
[INFO] [stderr] 3 | struct Person {
[INFO] [stderr]   |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `build_person` is never used
[INFO] [stderr]   --> src/rust_by_practice/_06_compound_types/_5_struct_5_operating_on_structs.rs:11:4
[INFO] [stderr]    |
[INFO] [stderr] 11 | fn build_person(name: String, age: u8) -> Person {
[INFO] [stderr]    |    ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `active`, `username`, `email`, and `sign_in_count` are never read
[INFO] [stderr]  --> src/rust_by_practice/_06_compound_types/_5_struct_6_operating_on_structs.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | struct User {
[INFO] [stderr]   |        ---- fields in this struct
[INFO] [stderr] 4 |     active: bool,
[INFO] [stderr]   |     ^^^^^^
[INFO] [stderr] 5 |     username: String,
[INFO] [stderr]   |     ^^^^^^^^
[INFO] [stderr] 6 |     email: String,
[INFO] [stderr]   |     ^^^^^
[INFO] [stderr] 7 |     sign_in_count: u64,
[INFO] [stderr]   |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `width` and `height` are never read
[INFO] [stderr]  --> src/rust_by_practice/_06_compound_types/_5_struct_7_print_the_structs.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | struct Rectangle {
[INFO] [stderr]   |        --------- fields in this struct
[INFO] [stderr] 5 |     width: u32,
[INFO] [stderr]   |     ^^^^^
[INFO] [stderr] 6 |     height: u32,
[INFO] [stderr]   |     ^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `Rectangle` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Zero` and `Two` are never constructed
[INFO] [stderr]  --> src/rust_by_practice/_06_compound_types/_6_enum_1.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | enum Number {
[INFO] [stderr]   |      ------ variants in this enum
[INFO] [stderr] 4 |     Zero,
[INFO] [stderr]   |     ^^^^
[INFO] [stderr] 5 |     One,
[INFO] [stderr] 6 |     Two,
[INFO] [stderr]   |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Zero` and `Two` are never constructed
[INFO] [stderr]   --> src/rust_by_practice/_06_compound_types/_6_enum_1.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr]  9 | enum Number1 {
[INFO] [stderr]    |      ------- variants in this enum
[INFO] [stderr] 10 |     Zero = 0,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 11 |     One,
[INFO] [stderr] 12 |     Two,
[INFO] [stderr]    |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Zero` and `Two` are never constructed
[INFO] [stderr]   --> src/rust_by_practice/_06_compound_types/_6_enum_1.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 16 | enum Number2 {
[INFO] [stderr]    |      ------- variants in this enum
[INFO] [stderr] 17 |     Zero = 0.0 as isize,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 18 |     One = 1.0 as isize,
[INFO] [stderr] 19 |     Two = 2.0 as isize,
[INFO] [stderr]    |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `x` and `y` are never read
[INFO] [stderr]  --> src/rust_by_practice/_06_compound_types/_6_enum_2.rs:5:12
[INFO] [stderr]   |
[INFO] [stderr] 5 |     Move { x: i32, y: i32 },
[INFO] [stderr]   |     ----   ^       ^
[INFO] [stderr]   |     |
[INFO] [stderr]   |     fields in this variant
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]  --> src/rust_by_practice/_06_compound_types/_6_enum_2.rs:6:11
[INFO] [stderr]   |
[INFO] [stderr] 6 |     Write(String),
[INFO] [stderr]   |     ----- ^^^^^^
[INFO] [stderr]   |     |
[INFO] [stderr]   |     field in this variant
[INFO] [stderr]   |
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]   |
[INFO] [stderr] 6 -     Write(String),
[INFO] [stderr] 6 +     Write(()),
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Quit` and `ChangeColor` are never constructed
[INFO] [stderr]  --> src/rust_by_practice/_06_compound_types/_6_enum_2.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | enum Message {
[INFO] [stderr]   |      ------- variants in this enum
[INFO] [stderr] 4 |     Quit,
[INFO] [stderr]   |     ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 7 |     ChangeColor(i32, i32, i32),
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Quit`, `Write`, and `ChangeColor` are never constructed
[INFO] [stderr]  --> src/rust_by_practice/_06_compound_types/_6_enum_3.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | enum Message {
[INFO] [stderr]   |      ------- variants in this enum
[INFO] [stderr] 4 |     Quit,
[INFO] [stderr]   |     ^^^^
[INFO] [stderr] 5 |     Move { x: i32, y: i32 },
[INFO] [stderr] 6 |     Write(String),
[INFO] [stderr]   |     ^^^^^
[INFO] [stderr] 7 |     ChangeColor(i32, i32, i32),
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `x` and `y` are never read
[INFO] [stderr]  --> src/rust_by_practice/_06_compound_types/_6_enum_4.rs:6:12
[INFO] [stderr]   |
[INFO] [stderr] 6 |     Move { x: i32, y: i32 },
[INFO] [stderr]   |     ----   ^       ^
[INFO] [stderr]   |     |
[INFO] [stderr]   |     fields in this variant
[INFO] [stderr]   |
[INFO] [stderr]   = note: `Message` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `0`, `1`, and `2` are never read
[INFO] [stderr]  --> src/rust_by_practice/_06_compound_types/_6_enum_4.rs:8:17
[INFO] [stderr]   |
[INFO] [stderr] 8 |     ChangeColor(i32, i32, i32),
[INFO] [stderr]   |     ----------- ^^^  ^^^  ^^^
[INFO] [stderr]   |     |
[INFO] [stderr]   |     fields in this variant
[INFO] [stderr]   |
[INFO] [stderr]   = note: `Message` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stderr]   |
[INFO] [stderr] 8 -     ChangeColor(i32, i32, i32),
[INFO] [stderr] 8 +     ChangeColor((), (), ()),
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: variant `Write` is never constructed
[INFO] [stderr]  --> src/rust_by_practice/_06_compound_types/_6_enum_4.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | enum Message {
[INFO] [stderr]   |      ------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 7 |     Write(String),
[INFO] [stderr]   |     ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `Message` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `East`, `West`, and `North` are never constructed
[INFO] [stderr]  --> src/rust_by_practice/_08_pattern_match/_1_match_matches_and_if_let_1_match.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | enum Direction {
[INFO] [stderr]   |      --------- variants in this enum
[INFO] [stderr] 4 |     East,
[INFO] [stderr]   |     ^^^^
[INFO] [stderr] 5 |     West,
[INFO] [stderr]   |     ^^^^
[INFO] [stderr] 6 |     North,
[INFO] [stderr]   |     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]  --> src/rust_by_practice/_08_pattern_match/_1_match_matches_and_if_let_3_match.rs:7:17
[INFO] [stderr]   |
[INFO] [stderr] 7 |     ChangeColor(i32, i32, i32),
[INFO] [stderr]   |     ----------- ^^^
[INFO] [stderr]   |     |
[INFO] [stderr]   |     field in this variant
[INFO] [stderr]   |
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]   |
[INFO] [stderr] 7 -     ChangeColor(i32, i32, i32),
[INFO] [stderr] 7 +     ChangeColor((), i32, i32),
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: variant `Write` is never constructed
[INFO] [stderr]  --> src/rust_by_practice/_08_pattern_match/_1_match_matches_and_if_let_3_match.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | enum Message {
[INFO] [stderr]   |      ------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 6 |     Write(String),
[INFO] [stderr]   |     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]  --> src/rust_by_practice/_08_pattern_match/_1_match_matches_and_if_let_8_if_let.rs:5:9
[INFO] [stderr]   |
[INFO] [stderr] 5 |     Qux(u32)
[INFO] [stderr]   |     --- ^^^
[INFO] [stderr]   |     |
[INFO] [stderr]   |     field in this variant
[INFO] [stderr]   |
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]   |
[INFO] [stderr] 5 -     Qux(u32)
[INFO] [stderr] 5 +     Qux(())
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Bar` and `Baz` are never constructed
[INFO] [stderr]  --> src/rust_by_practice/_08_pattern_match/_1_match_matches_and_if_let_8_if_let.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | enum Foo {
[INFO] [stderr]   |      --- variants in this enum
[INFO] [stderr] 3 |     Bar,
[INFO] [stderr]   |     ^^^
[INFO] [stderr] 4 |     Baz,
[INFO] [stderr]   |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `TrafficLight` is never constructed
[INFO] [stderr]  --> src/rust_by_practice/_09_method_and_associated_function/_0_method_and_associated_function_3_method.rs:1:8
[INFO] [stderr]   |
[INFO] [stderr] 1 | struct TrafficLight {
[INFO] [stderr]   |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `show_state` and `change_state` are never used
[INFO] [stderr]   --> src/rust_by_practice/_09_method_and_associated_function/_0_method_and_associated_function_3_method.rs:7:12
[INFO] [stderr]    |
[INFO] [stderr]  5 | impl TrafficLight {
[INFO] [stderr]    | ----------------- methods in this implementation
[INFO] [stderr]  6 |     // Using `Self` to fill in the blank.
[INFO] [stderr]  7 |     pub fn show_state(self: Self)  {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 12 |     pub fn change_state(mut self) {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Rectangle` is never constructed
[INFO] [stderr]  --> src/rust_by_practice/_09_method_and_associated_function/_0_method_and_associated_function_5_multiple_impl_blocks.rs:2:8
[INFO] [stderr]   |
[INFO] [stderr] 2 | struct Rectangle {
[INFO] [stderr]   |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `area` is never used
[INFO] [stderr]  --> src/rust_by_practice/_09_method_and_associated_function/_0_method_and_associated_function_5_multiple_impl_blocks.rs:9:8
[INFO] [stderr]   |
[INFO] [stderr] 8 | impl Rectangle {
[INFO] [stderr]   | -------------- method in this implementation
[INFO] [stderr] 9 |     fn area(&self) -> u32 {
[INFO] [stderr]   |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `can_hold` is never used
[INFO] [stderr]   --> src/rust_by_practice/_09_method_and_associated_function/_0_method_and_associated_function_5_multiple_impl_blocks.rs:15:8
[INFO] [stderr]    |
[INFO] [stderr] 14 | impl Rectangle {
[INFO] [stderr]    | -------------- method in this implementation
[INFO] [stderr] 15 |     fn can_hold(&self, other: &Rectangle) -> bool {
[INFO] [stderr]    |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Red` and `Green` are never constructed
[INFO] [stderr]  --> src/rust_by_practice/_09_method_and_associated_function/_0_method_and_associated_function_6_enums.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | enum TrafficLightColor {
[INFO] [stderr]   |      ----------------- variants in this enum
[INFO] [stderr] 4 |     Red,
[INFO] [stderr]   |     ^^^
[INFO] [stderr] 5 |     Yellow,
[INFO] [stderr] 6 |     Green,
[INFO] [stderr]   |     ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `TrafficLightColor` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `x` and `y` are never read
[INFO] [stderr]  --> src/rust_by_practice/_10_generics_and_traits/_1_generics_3_struct_and_impl.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | struct Point<T> {
[INFO] [stderr]   |        ----- fields in this struct
[INFO] [stderr] 4 |     x: T,
[INFO] [stderr]   |     ^
[INFO] [stderr] 5 |     y: T,
[INFO] [stderr]   |     ^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `x` and `y` are never read
[INFO] [stderr]  --> src/rust_by_practice/_10_generics_and_traits/_1_generics_4_struct_and_impl.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | struct Point<T, U> {
[INFO] [stderr]   |        ----- fields in this struct
[INFO] [stderr] 4 |     x: T,
[INFO] [stderr]   |     ^
[INFO] [stderr] 5 |     y: U,
[INFO] [stderr]   |     ^
[INFO] [stderr] 
[INFO] [stderr] warning: field `data` is never read
[INFO] [stderr]  --> src/rust_by_practice/_10_generics_and_traits/_2_const_generics_1.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | struct Array<T, const N: usize> {
[INFO] [stderr]   |        ----- field in this struct
[INFO] [stderr] 2 |     data : [T; N]
[INFO] [stderr]   |     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `content` is never read
[INFO] [stderr]   --> src/rust_by_practice/_10_generics_and_traits/_3_traits_5_use_trait_as_function_parameters.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr]  9 | struct Post {
[INFO] [stderr]    |        ---- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 12 |     content: String,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Post` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]  --> src/rust_by_practice/_10_generics_and_traits/_3_traits_8_trait_bound.rs:9:8
[INFO] [stderr]   |
[INFO] [stderr] 8 | impl<T> Pair<T> {
[INFO] [stderr]   | --------------- associated function in this implementation
[INFO] [stderr] 9 |     fn new(x: T, y: T) -> Self {
[INFO] [stderr]   |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `fly` is never used
[INFO] [stderr]   --> src/rust_by_practice/_10_generics_and_traits/_4_trait_object_1_returning_traits_with_dyn.rs:14:8
[INFO] [stderr]    |
[INFO] [stderr] 13 | impl Swan {
[INFO] [stderr]    | --------- method in this implementation
[INFO] [stderr] 14 |     fn fly(&self) {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `fly` is never used
[INFO] [stderr]  --> src/rust_by_practice/_10_generics_and_traits/_4_trait_object_2_array_with_trait_objects.rs:7:8
[INFO] [stderr]   |
[INFO] [stderr] 6 | impl Duck {
[INFO] [stderr]   | --------- method in this implementation
[INFO] [stderr] 7 |     fn fly(&self) {
[INFO] [stderr]   |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `fly` is never used
[INFO] [stderr]   --> src/rust_by_practice/_10_generics_and_traits/_4_trait_object_2_array_with_trait_objects.rs:13:8
[INFO] [stderr]    |
[INFO] [stderr] 12 | impl Swan {
[INFO] [stderr]    | --------- method in this implementation
[INFO] [stderr] 13 |     fn fly(&self) {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `CliError` is never used
[INFO] [stderr]  --> src/rust_by_practice/_12_type_conversion/_2_from_into_3.rs:6:6
[INFO] [stderr]   |
[INFO] [stderr] 6 | enum CliError {
[INFO] [stderr]   |      ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `open_and_parse_file` is never used
[INFO] [stderr]   --> src/rust_by_practice/_12_type_conversion/_2_from_into_3.rs:25:4
[INFO] [stderr]    |
[INFO] [stderr] 25 | fn open_and_parse_file(file_name: &str) -> Result<i32, CliError> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `R` is never constructed
[INFO] [stderr]  --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_2.rs:1:8
[INFO] [stderr]   |
[INFO] [stderr] 1 | struct R<'a>(&'a i32);
[INFO] [stderr]   |        ^
[INFO] [stderr] 
[INFO] [stderr] warning: function `extend_lifetime` is never used
[INFO] [stderr]  --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_2.rs:2:11
[INFO] [stderr]   |
[INFO] [stderr] 2 | unsafe fn extend_lifetime<'b>(r: R<'b>) -> R<'static> {
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `shorten_invariant_lifetime` is never used
[INFO] [stderr]  --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_2.rs:6:11
[INFO] [stderr]   |
[INFO] [stderr] 6 | unsafe fn shorten_invariant_lifetime<'b, 'c>(r: &'b mut R<'static>)
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]  --> src/rust_by_practice/_16_formatted_output/_2_debug_and_display_1_debug.rs:4:18
[INFO] [stderr]   |
[INFO] [stderr] 4 | struct Structure(i32);
[INFO] [stderr]   |        --------- ^^^
[INFO] [stderr]   |        |
[INFO] [stderr]   |        field in this struct
[INFO] [stderr]   |
[INFO] [stderr]   = help: consider removing this field
[INFO] [stderr]   = note: `Structure` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `name` and `age` are never read
[INFO] [stderr]  --> src/rust_by_practice/_16_formatted_output/_2_debug_and_display_2_debug.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | struct Person {
[INFO] [stderr]   |        ------ fields in this struct
[INFO] [stderr] 3 |     name: String,
[INFO] [stderr]   |     ^^^^
[INFO] [stderr] 4 |     age: u8
[INFO] [stderr]   |     ^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `Person` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: function `longest` is never used
[INFO] [stderr]  --> src/rust_by_practice/_17_lifetime/_1_basic_3_function.rs:2:4
[INFO] [stderr]   |
[INFO] [stderr] 2 | fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
[INFO] [stderr]   |    ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `invalid_output` is never used
[INFO] [stderr]  --> src/rust_by_practice/_17_lifetime/_1_basic_4_function.rs:7:4
[INFO] [stderr]   |
[INFO] [stderr] 7 | fn invalid_output() -> &'static str { 
[INFO] [stderr]   |    ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]  --> src/rust_by_practice/_17_lifetime/_1_basic_6_structs.rs:6:21
[INFO] [stderr]   |
[INFO] [stderr] 6 | struct Borrowed<'a>(&'a i32);
[INFO] [stderr]   |        --------     ^^^^^^^
[INFO] [stderr]   |        |
[INFO] [stderr]   |        field in this struct
[INFO] [stderr]   |
[INFO] [stderr]   = help: consider removing this field
[INFO] [stderr]   = note: `Borrowed` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `x` and `y` are never read
[INFO] [stderr]   --> src/rust_by_practice/_17_lifetime/_1_basic_6_structs.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | struct NamedBorrowed<'a,'b>{
[INFO] [stderr]    |        ------------- fields in this struct
[INFO] [stderr] 11 |     x: &'a i32,
[INFO] [stderr]    |     ^
[INFO] [stderr] 12 |     y: &'b i32,
[INFO] [stderr]    |     ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `NamedBorrowed` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/rust_by_practice/_17_lifetime/_1_basic_6_structs.rs:18:9
[INFO] [stderr]    |
[INFO] [stderr] 18 |     Num(i32),
[INFO] [stderr]    |     --- ^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Either` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 18 -     Num(i32),
[INFO] [stderr] 18 +     Num(()),
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/rust_by_practice/_17_lifetime/_1_basic_6_structs.rs:19:9
[INFO] [stderr]    |
[INFO] [stderr] 19 |     Ref(&'a i32),
[INFO] [stderr]    |     --- ^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Either` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 19 -     Ref(&'a i32),
[INFO] [stderr] 19 +     Ref(()),
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: fields `a` and `b` are never read
[INFO] [stderr]  --> src/rust_by_practice/_17_lifetime/_1_basic_7_structs.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | struct Example<'a, 'b> {
[INFO] [stderr]   |        ------- fields in this struct
[INFO] [stderr] 8 |     a: &'a u32,
[INFO] [stderr]   |     ^
[INFO] [stderr] 9 |     b: &'b NoCopyType
[INFO] [stderr]   |     ^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `Example` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ImportantExcerpt` is never constructed
[INFO] [stderr]  --> src/rust_by_practice/_17_lifetime/_1_basic_9_method.rs:2:8
[INFO] [stderr]   |
[INFO] [stderr] 2 | struct ImportantExcerpt<'a>{
[INFO] [stderr]   |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `level` is never used
[INFO] [stderr]  --> src/rust_by_practice/_17_lifetime/_1_basic_9_method.rs:7:8
[INFO] [stderr]   |
[INFO] [stderr] 6 | impl <'a> ImportantExcerpt<'a>{
[INFO] [stderr]   | ------------------------------ method in this implementation
[INFO] [stderr] 7 |     fn level(&'a self) -> i32 {
[INFO] [stderr]   |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `nput` is never used
[INFO] [stderr]  --> src/rust_by_practice/_17_lifetime/_1_basic_10_elision.rs:3:4
[INFO] [stderr]   |
[INFO] [stderr] 3 | fn nput(x: &i32) {
[INFO] [stderr]   |    ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `pass` is never used
[INFO] [stderr]  --> src/rust_by_practice/_17_lifetime/_1_basic_10_elision.rs:7:4
[INFO] [stderr]   |
[INFO] [stderr] 7 | fn pass(x: &i32) -> &i32 { x }
[INFO] [stderr]   |    ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `longest` is never used
[INFO] [stderr]  --> src/rust_by_practice/_17_lifetime/_1_basic_10_elision.rs:9:4
[INFO] [stderr]   |
[INFO] [stderr] 9 | fn longest<'a>(x: &'a str, y: &str) -> &'a str {
[INFO] [stderr]   |    ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Owner` is never constructed
[INFO] [stderr]   --> src/rust_by_practice/_17_lifetime/_1_basic_10_elision.rs:13:8
[INFO] [stderr]    |
[INFO] [stderr] 13 | struct Owner(i32);
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `add_one` and `print` are never used
[INFO] [stderr]   --> src/rust_by_practice/_17_lifetime/_1_basic_10_elision.rs:17:8
[INFO] [stderr]    |
[INFO] [stderr] 15 | impl Owner {
[INFO] [stderr]    | ---------- methods in this implementation
[INFO] [stderr] 16 |     // Annotate lifetimes as in a standalone function.
[INFO] [stderr] 17 |     fn add_one(&mut self) { self.0 += 1; }
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] 18 |     fn print(&self) {
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Person` is never constructed
[INFO] [stderr]   --> src/rust_by_practice/_17_lifetime/_1_basic_10_elision.rs:23:8
[INFO] [stderr]    |
[INFO] [stderr] 23 | struct Person<'a> {
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Either` is never used
[INFO] [stderr]   --> src/rust_by_practice/_17_lifetime/_1_basic_10_elision.rs:28:6
[INFO] [stderr]    |
[INFO] [stderr] 28 | enum Either<'a> {
[INFO] [stderr]    |      ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `a` and `b` are never read
[INFO] [stderr]  --> src/rust_by_practice/_17_lifetime/_2_static_and_t_static_2_static.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | struct Config {
[INFO] [stderr]   |        ------ fields in this struct
[INFO] [stderr] 3 |     a: String,
[INFO] [stderr]   |     ^
[INFO] [stderr] 4 |     b: String,
[INFO] [stderr]   |     ^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `Config` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]  --> src/rust_by_practice/_17_lifetime/_3_advanced_1_trait_bounds_example.rs:4:23
[INFO] [stderr]   |
[INFO] [stderr] 4 | struct Ref<'a, T: 'a>(&'a T);
[INFO] [stderr]   |        ---            ^^^^^
[INFO] [stderr]   |        |
[INFO] [stderr]   |        field in this struct
[INFO] [stderr]   |
[INFO] [stderr]   = help: consider removing this field
[INFO] [stderr]   = note: `Ref` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: struct `DoubleRef` is never constructed
[INFO] [stderr]  --> src/rust_by_practice/_17_lifetime/_3_advanced_1_trait_bounds.rs:5:8
[INFO] [stderr]   |
[INFO] [stderr] 5 | struct DoubleRef<'a,'b, T> {
[INFO] [stderr]   |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ImportantExcerpt` is never constructed
[INFO] [stderr]  --> src/rust_by_practice/_17_lifetime/_3_advanced_2_trait_bounds.rs:2:8
[INFO] [stderr]   |
[INFO] [stderr] 2 | struct ImportantExcerpt<'a> {
[INFO] [stderr]   |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `announce_and_return_part` is never used
[INFO] [stderr]  --> src/rust_by_practice/_17_lifetime/_3_advanced_2_trait_bounds.rs:7:8
[INFO] [stderr]   |
[INFO] [stderr] 6 | impl<'a: 'b, 'b> ImportantExcerpt<'a> {
[INFO] [stderr]   | ------------------------------------- method in this implementation
[INFO] [stderr] 7 |     fn announce_and_return_part(&'a self, announcement: &'b str) -> &'b str {
[INFO] [stderr]   |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `f` is never used
[INFO] [stderr]  --> src/rust_by_practice/_17_lifetime/_3_advanced_3_trait_bounds.rs:2:4
[INFO] [stderr]   |
[INFO] [stderr] 2 | fn f<'a, 'b>(x: &'a i32, mut y: &'b i32) where 'a: 'b {
[INFO] [stderr]   |    ^
[INFO] [stderr] 
[INFO] [stderr] warning: function `call_on_ref_zero` is never used
[INFO] [stderr]  --> src/rust_by_practice/_17_lifetime/_3_advanced_4_hrtb.rs:2:4
[INFO] [stderr]   |
[INFO] [stderr] 2 | fn call_on_ref_zero<F>(f: F) where for <'a> F : Fn(&'a i32) {
[INFO] [stderr]   |    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `manager` is never read
[INFO] [stderr]  --> src/rust_by_practice/_17_lifetime/_3_advanced_6_difficult_exercise.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | struct Interface<'b, 'a: 'b> {
[INFO] [stderr]   |        --------- field in this struct
[INFO] [stderr] 3 |     manager: &'b mut Manager<'a>
[INFO] [stderr]   |     ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `factory` is never used
[INFO] [stderr]  --> src/rust_by_practice/_18_functional_programming/_1_closure_11_closure_as_return_types.rs:2:4
[INFO] [stderr]   |
[INFO] [stderr] 2 | fn factory(x:i32) -> Box<(dyn Fn(i32) -> i32)> {
[INFO] [stderr]   |    ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `Subtract` is never constructed
[INFO] [stderr]  --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_5_type_alias.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | enum VeryVerboseEnumOfThingsToDoWithNumbers {
[INFO] [stderr]   |      -------------------------------------- variant in this enum
[INFO] [stderr] 2 |     Add,
[INFO] [stderr] 3 |     Subtract,
[INFO] [stderr]   |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `VeryVerboseEnumOfThingsToDoWithNumbers` is never used
[INFO] [stderr]  --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_6_type_alias.rs:1:6
[INFO] [stderr]   |
[INFO] [stderr] 1 | enum VeryVerboseEnumOfThingsToDoWithNumbers {
[INFO] [stderr]   |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `run` is never used
[INFO] [stderr]  --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_6_type_alias.rs:7:8
[INFO] [stderr]   |
[INFO] [stderr] 6 | impl VeryVerboseEnumOfThingsToDoWithNumbers {
[INFO] [stderr]   | ------------------------------------------- method in this implementation
[INFO] [stderr] 7 |     fn run(&self, x: i32, y: i32) -> i32 {
[INFO] [stderr]   |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `foobar` is never used
[INFO] [stderr]  --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_9_dst_and_unsized_type.rs:3:4
[INFO] [stderr]   |
[INFO] [stderr] 3 | fn foobar(thing: &dyn Display) {}    
[INFO] [stderr]   |    ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: path statement with no effect
[INFO] [stderr]  --> src/rust_by_example/_07_expressions/_0_expressions.rs:7:9
[INFO] [stderr]   |
[INFO] [stderr] 7 |         x;
[INFO] [stderr]   |         ^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(path_statements)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused arithmetic operation that must be used
[INFO] [stderr]  --> src/rust_by_example/_07_expressions/_0_expressions.rs:8:9
[INFO] [stderr]   |
[INFO] [stderr] 8 |         x + 1;
[INFO] [stderr]   |         ^^^^^ the arithmetic operation produces a value
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]   |
[INFO] [stderr] 8 |         let _ = x + 1;
[INFO] [stderr]   |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused arithmetic operation that must be used
[INFO] [stderr]   --> src/rust_by_example/_07_expressions/_0_expressions.rs:25:13
[INFO] [stderr]    |
[INFO] [stderr] 25 |             2 * x;
[INFO] [stderr]    |             ^^^^^ the arithmetic operation produces a value
[INFO] [stderr]    |
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 25 |             let _ = 2 * x;
[INFO] [stderr]    |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: calls to `std::str::from_utf8` with an invalid literal always return an error
[INFO] [stderr]   --> src/rust_by_example/_19_std_library_types/_3_strings_4_literals_and_escapes.rs:33:11
[INFO] [stderr]    |
[INFO] [stderr] 30 |     let shift_jis = b"\x82\xe6\x82\xa8\x82\xb1\x82\xbb"; // "ようこそ" in SHIFT-JIS
[INFO] [stderr]    |                     ----------------------------------- the literal was valid UTF-8 up to the 0 bytes
[INFO] [stderr] ...
[INFO] [stderr] 33 |     match str::from_utf8(shift_jis) {
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(invalid_from_utf8)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused arithmetic operation that must be used
[INFO] [stderr]   --> src/rust_by_practice/_04_basic_types/_3_statements_expressions_0.rs:14:9
[INFO] [stderr]    |
[INFO] [stderr] 14 |         2 * x;
[INFO] [stderr]    |         ^^^^^ the arithmetic operation produces a value
[INFO] [stderr]    |
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 14 |         let _ = 2 * x;
[INFO] [stderr]    |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: calls to `std::str::from_utf8` with an invalid literal always return an error
[INFO] [stderr]   --> src/rust_by_practice/_06_compound_types/_1_string_11_byte_string_example.rs:33:11
[INFO] [stderr]    |
[INFO] [stderr] 30 |     let shift_jis = b"\x82\xe6\x82\xa8\x82\xb1\x82\xbb"; // "ようこそ" In SHIFT-JIS
[INFO] [stderr]    |                     ----------------------------------- the literal was valid UTF-8 up to the 0 bytes
[INFO] [stderr] ...
[INFO] [stderr] 33 |     match str::from_utf8(shift_jis) {
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]  --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:5:24
[INFO] [stderr]   |
[INFO] [stderr] 5 |     let num = unsafe { std::mem::transmute::<[u8; 4], u32>(raw_bytes) };
[INFO] [stderr]   |                        -----------------------------------^^^^^^^^^^^
[INFO] [stderr]   |                        |
[INFO] [stderr]   |                        help: replace this with: `u32::from_ne_bytes`
[INFO] [stderr]   |
[INFO] [stderr]   = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stderr]   = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `v` should have an upper case name
[INFO] [stderr]  --> src/rust_by_practice/_17_lifetime/_2_static_and_t_static_1_static.rs:4:11
[INFO] [stderr]   |
[INFO] [stderr] 4 |     const v: &str = "hello";
[INFO] [stderr]   |           ^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] help: convert the identifier to upper case (notice the capitalization)
[INFO] [stderr]   |
[INFO] [stderr] 4 -     const v: &str = "hello";
[INFO] [stderr] 4 +     const V: &str = "hello";
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: static variable `config` should have an upper case name
[INFO] [stderr]  --> src/rust_by_practice/_17_lifetime/_2_static_and_t_static_2_static.rs:6:12
[INFO] [stderr]   |
[INFO] [stderr] 6 | static mut config: Option<&mut Config> = None;
[INFO] [stderr]   |            ^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: convert the identifier to upper case
[INFO] [stderr]   |
[INFO] [stderr] 6 - static mut config: Option<&mut Config> = None;
[INFO] [stderr] 6 + static mut CONFIG: Option<&mut Config> = None;
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static
[INFO] [stderr]   --> src/rust_by_practice/_17_lifetime/_2_static_and_t_static_2_static.rs:22:25
[INFO] [stderr]    |
[INFO] [stderr] 22 |         println!("{:?}",config)
[INFO] [stderr]    |                         ^^^^^^ shared reference to mutable static
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr]    = 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] [stderr]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `i` should have an upper case name
[INFO] [stderr]   --> src/rust_by_practice/_17_lifetime/_2_static_and_t_static_5_t_static.rs:19:11
[INFO] [stderr]    |
[INFO] [stderr] 19 |     const i:i32 = 5;
[INFO] [stderr]    |           ^
[INFO] [stderr]    |
[INFO] [stderr] help: convert the identifier to upper case (notice the capitalization)
[INFO] [stderr]    |
[INFO] [stderr] 19 -     const i:i32 = 5;
[INFO] [stderr] 19 +     const I:i32 = 5;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: const parameter `n` should have an upper case name
[INFO] [stderr]  --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_7_dst_and_unsized_type.rs:2:22
[INFO] [stderr]   |
[INFO] [stderr] 2 | fn my_function<const n: usize>() -> [u32; n] {
[INFO] [stderr]   |                      ^
[INFO] [stderr]   |
[INFO] [stderr] help: convert the identifier to upper case
[INFO] [stderr]   |
[INFO] [stderr] 2 - fn my_function<const n: usize>() -> [u32; n] {
[INFO] [stderr] 2 + fn my_function<const N: usize>() -> [u32; n] {
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: `learn-rust` (bin "learn-rust" test) generated 213 warnings (run `cargo fix --bin "learn-rust" --tests` to apply 32 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.04s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/learn_rust-7840ccbfddab1db7)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test rust_by_example::_21_testing::_1_unit_testing_1::tests::test_add ... ok
[INFO] [stdout] test rust_by_example::_21_testing::_1_unit_testing_4_ignoring_tests::tests::ignored_test ... ignored
[INFO] [stdout] test rust_by_example::_21_testing::_1_unit_testing_2_tests_and_questionmark::tests::test_sqrt ... ok
[INFO] [stdout] test rust_by_example::_21_testing::_1_unit_testing_3_testing_panics::tests::test_divide ... ok
[INFO] [stdout] test rust_by_example::_21_testing::_1_unit_testing_4_ignoring_tests::tests::test_add ... ok
[INFO] [stdout] test rust_by_example::_21_testing::_1_unit_testing_4_ignoring_tests::tests::test_add_hundred ... ok
[INFO] [stdout] test rust_by_practice::_18_functional_programming::_1_closure_closures_in_structs_example::call_with_different_values ... ok
[INFO] [stdout] test rust_by_example::_21_testing::_1_unit_testing_1::tests::test_bad_add ... FAILED
[INFO] [stdout] test rust_by_example::_21_testing::_1_unit_testing_3_testing_panics::tests::test_any_panic - should panic ... ok
[INFO] [stdout] test rust_by_example::_21_testing::_1_unit_testing_3_testing_panics::tests::test_specific_panic - should panic ... ok
[INFO] [stdout] test rust_by_example::_21_testing::_4_development_dependencies::tests::test_add ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- rust_by_example::_21_testing::_1_unit_testing_1::tests::test_bad_add stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'rust_by_example::_21_testing::_1_unit_testing_1::tests::test_bad_add' (26) panicked at src/rust_by_example/_21_testing/_1_unit_testing_1.rs:26:9:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: -1
[INFO] [stdout]  right: 3
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x579fc82bb152 - std::backtrace_rs::backtrace::libunwind::trace::hcab59e1e990fdc24
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x579fc82bb152 - std::backtrace_rs::backtrace::trace_unsynchronized::he24cc57f3d2f47b7
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x579fc82bb152 - std::sys::backtrace::_print_fmt::hf8d65ede198eeb54
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x579fc82bb152 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h67edf0e4d33c343c
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x579fc82cb95f - core::fmt::rt::Argument::fmt::hef94184842aeafdd
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/fmt/rt.rs:173:76
[INFO] [stdout]    5:     0x579fc82cb95f - core::fmt::write::hcf0c66b48a8fa606
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/fmt/mod.rs:1468:25
[INFO] [stdout]    6:     0x579fc82885e1 - std::io::default_write_fmt::h69967ac0ba93195f
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x579fc82885e1 - std::io::Write::write_fmt::h8db9396209deaa1c
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/io/mod.rs:1954:13
[INFO] [stdout]    8:     0x579fc8294722 - std::sys::backtrace::BacktraceLock::print::h07e5435aa717b414
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    9:     0x579fc829926f - std::panicking::default_hook::{{closure}}::h91001850288db5f7
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:301:27
[INFO] [stdout]   10:     0x579fc8299101 - std::panicking::default_hook::h2346dbb704ef5512
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:325:9
[INFO] [stdout]   11:     0x579fc8244aee - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h18383b2e29377420
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/alloc/src/boxed.rs:1999:9
[INFO] [stdout]   12:     0x579fc8244aee - test::test_main_with_exit_callback::{{closure}}::h272d7ef99aef06dc
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x579fc829992f - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h6dba6e441651a0d1
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/alloc/src/boxed.rs:1999:9
[INFO] [stdout]   14:     0x579fc829992f - std::panicking::panic_with_hook::hd2b063a6090d23a4
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:842:13
[INFO] [stdout]   15:     0x579fc829978a - std::panicking::panic_handler::{{closure}}::he666d95f139a333e
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:707:13
[INFO] [stdout]   16:     0x579fc8294859 - std::sys::backtrace::__rust_end_short_backtrace::h631ad224854ebee5
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/sys/backtrace.rs:174:18
[INFO] [stdout]   17:     0x579fc827cabd - __rustc[1d67440d6e82e4f]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:698:5
[INFO] [stdout]   18:     0x579fc82d32e0 - core::panicking::panic_fmt::h420ddb7fd73daf53
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/panicking.rs:75:14
[INFO] [stdout]   19:     0x579fc82d3183 - core::panicking::assert_failed_inner::h448e1d534f4c3d4b
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/panicking.rs:439:17
[INFO] [stdout]   20:     0x579fc82a8a4c - core::panicking::assert_failed::h0d15de03de2e06c1
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x579fc821f6b7 - learn_rust::rust_by_example::_21_testing::_1_unit_testing_1::tests::test_bad_add::h37c8c4c511a21f43
[INFO] [stdout]                                at /opt/rustwide/workdir/src/rust_by_example/_21_testing/_1_unit_testing_1.rs:26:9
[INFO] [stdout]   22:     0x579fc821f6d7 - learn_rust::rust_by_example::_21_testing::_1_unit_testing_1::tests::test_bad_add::{{closure}}::h931bc8a6be256990
[INFO] [stdout]                                at /opt/rustwide/workdir/src/rust_by_example/_21_testing/_1_unit_testing_1.rs:23:22
[INFO] [stdout]   23:     0x579fc8222066 - core::ops::function::FnOnce::call_once::h0bb3d91d66b0977c
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x579fc82448ab - core::ops::function::FnOnce::call_once::h70887edf07a630ba
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x579fc82448ab - test::__rust_begin_short_backtrace::h27763c4cbbdb8601
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x579fc825a515 - test::run_test_in_process::{{closure}}::h4dc8bc6d5e3924d3
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x579fc825a515 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h75905e8ffe81974f
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x579fc825a515 - std::panicking::catch_unwind::do_call::h0bc60366ba66eba5
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:590:40
[INFO] [stdout]   29:     0x579fc825a515 - std::panicking::catch_unwind::hae1ec7bf94407afa
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:553:19
[INFO] [stdout]   30:     0x579fc825a515 - std::panic::catch_unwind::h0f4ff4773d84d3cd
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x579fc825a515 - test::run_test_in_process::h03fbc77ae48b3f10
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x579fc825a515 - test::run_test::{{closure}}::h83476a9c453dc4d3
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x579fc8230d04 - test::run_test::{{closure}}::h515482ad1e7fe7de
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x579fc8230d04 - std::sys::backtrace::__rust_begin_short_backtrace::hed09f6ac5fe9d647
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/sys/backtrace.rs:158:18
[INFO] [stdout]   35:     0x579fc82345ca - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h988e2cd969319888
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/thread/mod.rs:559:17
[INFO] [stdout]   36:     0x579fc82345ca - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hd70e28dc46ec20be
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x579fc82345ca - std::panicking::catch_unwind::do_call::hdc29e11311eb7655
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:590:40
[INFO] [stdout]   38:     0x579fc82345ca - std::panicking::catch_unwind::h9e402d6a96fef41c
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:553:19
[INFO] [stdout]   39:     0x579fc82345ca - std::panic::catch_unwind::h9213c0c54aec70e0
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x579fc82345ca - std::thread::Builder::spawn_unchecked_::{{closure}}::h6262965869ed2b87
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/thread/mod.rs:557:30
[INFO] [stdout]   41:     0x579fc82345ca - core::ops::function::FnOnce::call_once{{vtable.shim}}::h05c05ed02619e462
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x579fc828f9bf - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h2044e71c41d3958a
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/alloc/src/boxed.rs:1985:9
[INFO] [stdout]   43:     0x579fc828f9bf - std::sys::thread::unix::Thread::new::thread_start::hf277835320aa8e5a
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/sys/thread/unix.rs:126:17
[INFO] [stdout]   44:     0x73c917d57aa4 - <unknown>
[INFO] [stdout]   45:     0x73c917de4a34 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- rust_by_example::_21_testing::_4_development_dependencies::tests::test_add stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'rust_by_example::_21_testing::_4_development_dependencies::tests::test_add' (33) panicked at src/rust_by_example/_21_testing/_4_development_dependencies.rs:12:9:
[INFO] [stdout] assertion failed: `(left == right)`
[INFO] [stdout] 
[INFO] [stdout] [1mDiff[0m [31m< left[0m / [32mright >[0m :
[INFO] [stdout] [31m<[0m[1;48;5;52;31m5[0m
[INFO] [stdout] [32m>[0m[1;48;5;22;32m6[0m
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x579fc82bb152 - std::backtrace_rs::backtrace::libunwind::trace::hcab59e1e990fdc24
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x579fc82bb152 - std::backtrace_rs::backtrace::trace_unsynchronized::he24cc57f3d2f47b7
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x579fc82bb152 - std::sys::backtrace::_print_fmt::hf8d65ede198eeb54
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x579fc82bb152 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h67edf0e4d33c343c
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x579fc82cb95f - core::fmt::rt::Argument::fmt::hef94184842aeafdd
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/fmt/rt.rs:173:76
[INFO] [stdout]    5:     0x579fc82cb95f - core::fmt::write::hcf0c66b48a8fa606
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/fmt/mod.rs:1468:25
[INFO] [stdout]    6:     0x579fc82885e1 - std::io::default_write_fmt::h69967ac0ba93195f
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x579fc82885e1 - std::io::Write::write_fmt::h8db9396209deaa1c
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/io/mod.rs:1954:13
[INFO] [stdout]    8:     0x579fc8294722 - std::sys::backtrace::BacktraceLock::print::h07e5435aa717b414
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    9:     0x579fc829926f - std::panicking::default_hook::{{closure}}::h91001850288db5f7
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:301:27
[INFO] [stdout]   10:     0x579fc8299101 - std::panicking::default_hook::h2346dbb704ef5512
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:325:9
[INFO] [stdout]   11:     0x579fc8244aee - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h18383b2e29377420
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/alloc/src/boxed.rs:1999:9
[INFO] [stdout]   12:     0x579fc8244aee - test::test_main_with_exit_callback::{{closure}}::h272d7ef99aef06dc
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x579fc829992f - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h6dba6e441651a0d1
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/alloc/src/boxed.rs:1999:9
[INFO] [stdout]   14:     0x579fc829992f - std::panicking::panic_with_hook::hd2b063a6090d23a4
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:842:13
[INFO] [stdout]   15:     0x579fc829978a - std::panicking::panic_handler::{{closure}}::he666d95f139a333e
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:707:13
[INFO] [stdout]   16:     0x579fc8294859 - std::sys::backtrace::__rust_end_short_backtrace::h631ad224854ebee5
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/sys/backtrace.rs:174:18
[INFO] [stdout]   17:     0x579fc827cabd - __rustc[1d67440d6e82e4f]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:698:5
[INFO] [stdout]   18:     0x579fc82d32e0 - core::panicking::panic_fmt::h420ddb7fd73daf53
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/panicking.rs:75:14
[INFO] [stdout]   19:     0x579fc821f8a5 - learn_rust::rust_by_example::_21_testing::_4_development_dependencies::tests::test_add::h3909563b86a4cc63
[INFO] [stdout]                                at /opt/rustwide/workdir/src/rust_by_example/_21_testing/_4_development_dependencies.rs:12:9
[INFO] [stdout]   20:     0x579fc821f8c7 - learn_rust::rust_by_example::_21_testing::_4_development_dependencies::tests::test_add::{{closure}}::ha40cdd08655ed9a9
[INFO] [stdout]                                at /opt/rustwide/workdir/src/rust_by_example/_21_testing/_4_development_dependencies.rs:11:18
[INFO] [stdout]   21:     0x579fc8222166 - core::ops::function::FnOnce::call_once::h5280b091e4fb9054
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x579fc82448ab - core::ops::function::FnOnce::call_once::h70887edf07a630ba
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x579fc82448ab - test::__rust_begin_short_backtrace::h27763c4cbbdb8601
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/test/src/lib.rs:663:18
[INFO] [stdout]   24:     0x579fc825a515 - test::run_test_in_process::{{closure}}::h4dc8bc6d5e3924d3
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/test/src/lib.rs:686:74
[INFO] [stdout]   25:     0x579fc825a515 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h75905e8ffe81974f
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   26:     0x579fc825a515 - std::panicking::catch_unwind::do_call::h0bc60366ba66eba5
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:590:40
[INFO] [stdout]   27:     0x579fc825a515 - std::panicking::catch_unwind::hae1ec7bf94407afa
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:553:19
[INFO] [stdout]   28:     0x579fc825a515 - std::panic::catch_unwind::h0f4ff4773d84d3cd
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x579fc825a515 - test::run_test_in_process::h03fbc77ae48b3f10
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/test/src/lib.rs:686:27
[INFO] [stdout]   30:     0x579fc825a515 - test::run_test::{{closure}}::h83476a9c453dc4d3
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/test/src/lib.rs:607:43
[INFO] [stdout]   31:     0x579fc8230d04 - test::run_test::{{closure}}::h515482ad1e7fe7de
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/test/src/lib.rs:637:41
[INFO] [stdout]   32:     0x579fc8230d04 - std::sys::backtrace::__rust_begin_short_backtrace::hed09f6ac5fe9d647
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/sys/backtrace.rs:158:18
[INFO] [stdout]   33:     0x579fc82345ca - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h988e2cd969319888
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/thread/mod.rs:559:17
[INFO] [stdout]   34:     0x579fc82345ca - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hd70e28dc46ec20be
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   35:     0x579fc82345ca - std::panicking::catch_unwind::do_call::hdc29e11311eb7655
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:590:40
[INFO] [stdout]   36:     0x579fc82345ca - std::panicking::catch_unwind::h9e402d6a96fef41c
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panicking.rs:553:19
[INFO] [stdout]   37:     0x579fc82345ca - std::panic::catch_unwind::h9213c0c54aec70e0
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x579fc82345ca - std::thread::Builder::spawn_unchecked_::{{closure}}::h6262965869ed2b87
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/thread/mod.rs:557:30
[INFO] [stdout]   39:     0x579fc82345ca - core::ops::function::FnOnce::call_once{{vtable.shim}}::h05c05ed02619e462
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x579fc828f9bf - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h2044e71c41d3958a
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/alloc/src/boxed.rs:1985:9
[INFO] [stdout]   41:     0x579fc828f9bf - std::sys::thread::unix::Thread::new::thread_start::hf277835320aa8e5a
[INFO] [stdout]                                at /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/std/src/sys/thread/unix.rs:126:17
[INFO] [stdout]   42:     0x73c917d57aa4 - <unknown>
[INFO] [stdout]   43:     0x73c917de4a34 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     rust_by_example::_21_testing::_1_unit_testing_1::tests::test_bad_add
[INFO] [stdout]     rust_by_example::_21_testing::_4_development_dependencies::tests::test_add
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 8 passed; 2 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--bin learn-rust`
[INFO] running `Command { std: "docker" "inspect" "d31deb804773938db03e4806d91dab2e2f99dc0edd0cc5b7521d4f67db76f35f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d31deb804773938db03e4806d91dab2e2f99dc0edd0cc5b7521d4f67db76f35f", kill_on_drop: false }`
[INFO] [stdout] d31deb804773938db03e4806d91dab2e2f99dc0edd0cc5b7521d4f67db76f35f
