[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 1.75.0 for beta-1.76-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdomahidizoltan%2Flearning-rust" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/domahidizoltan/learning-rust on toolchain 1.75.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.75.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[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-1-tc1/source/Cargo.toml
[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" "+1.75.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded utf8_slice v1.0.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 09e10a3f20cd6f5adcdbf1d4e8d641ce1a6f6a2221a883d8bbb72f20210907d8
[INFO] running `Command { std: "docker" "start" "-a" "09e10a3f20cd6f5adcdbf1d4e8d641ce1a6f6a2221a883d8bbb72f20210907d8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "09e10a3f20cd6f5adcdbf1d4e8d641ce1a6f6a2221a883d8bbb72f20210907d8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "09e10a3f20cd6f5adcdbf1d4e8d641ce1a6f6a2221a883d8bbb72f20210907d8", kill_on_drop: false }`
[INFO] [stdout] 09e10a3f20cd6f5adcdbf1d4e8d641ce1a6f6a2221a883d8bbb72f20210907d8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] dd717c24da4d9311c44f27c45c65e058658f69d85a49c2587ec41e1d75390aeb
[INFO] running `Command { std: "docker" "start" "-a" "dd717c24da4d9311c44f27c45c65e058658f69d85a49c2587ec41e1d75390aeb", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.146
[INFO] [stderr]    Compiling ppv-lite86 v0.2.17
[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)]` 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)]` 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: 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)]` 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)]` 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)]` 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)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a_float`
[INFO] [stdout]  --> src/rust_by_example/_02_primitives/_0_primitives.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let a_float: f64 = 1.0;  // Regular annotation
[INFO] [stdout]   |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_a_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `an_integer`
[INFO] [stdout]  --> src/rust_by_example/_02_primitives/_0_primitives.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let an_integer   = 5i32; // Suffix annotation
[INFO] [stdout]   |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_an_integer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `default_float`
[INFO] [stdout]  --> src/rust_by_example/_02_primitives/_0_primitives.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let default_float   = 3.0; // `f64`
[INFO] [stdout]   |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `default_integer`
[INFO] [stdout]   --> src/rust_by_example/_02_primitives/_0_primitives.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let default_integer = 7;   // `i32`
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_integer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `inferred_type` is assigned to, but never used
[INFO] [stdout]   --> src/rust_by_example/_02_primitives/_0_primitives.rs:13: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)]` 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] 
[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]    |         ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_noisy_unused_variable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/rust_by_example/_08_flow_of_control/_6_if_let.rs:104:12
[INFO] [stdout]     |
[INFO] [stdout] 104 |         if let Foo::Bar = a {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout]     = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `years_as_primitive_1`
[INFO] [stdout]   --> src/rust_by_example/_14_generics/_7_new_type_idiom.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let years_as_primitive_1: i64 = years.0; // Tuple
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_years_as_primitive_1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `years_as_primitive_2`
[INFO] [stdout]   --> src/rust_by_example/_14_generics/_7_new_type_idiom.rs:33:15
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let Years(years_as_primitive_2) = years; // Destructuring
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_years_as_primitive_2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `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]   |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `x` is never read
[INFO] [stdout]  --> src/rust_by_practice/_03_variables/_0_variables_6_shadowing.rs:4: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]   |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/rust_by_practice/_03_variables/_0_variables_6_shadowing.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let y = 4;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `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] 
[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]   |         ^ help: if this is intentional, prefix it with an underscore: `_z`
[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)]` 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: 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]   |         ^^^^ help: if this is intentional, prefix it with an underscore: `_none`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]  --> src/rust_by_practice/_07_flow_control/_1_flow_control_4_for.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     for name in names.clone() {
[INFO] [stdout]   |         ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/rust_by_practice/_07_flow_control/_1_flow_control_4_for.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     for n in numbers {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]  --> src/rust_by_practice/_07_flow_control/_1_flow_control_7_continue_and_break.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     for i in 0..=100 {
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]  --> src/rust_by_practice/_07_flow_control/_1_flow_control_8_continue_and_break.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     for i in 0..=100 {
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 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]    |        ^^ help: if this is intentional, prefix it with an underscore: `_i3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/rust_by_practice/_12_type_conversion/_2_from_into_1.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 |    let s: String = 'a'.into();
[INFO] [stdout]    |        ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]  --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let num = unsafe { std::mem::transmute::<[u8; 4], u32>(raw_bytes) };
[INFO] [stdout]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]  --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let num = u32::from_ne_bytes(raw_bytes);
[INFO] [stdout]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ptr_num_transmute`
[INFO] [stdout]   --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let ptr_num_transmute = unsafe { std::mem::transmute::<&i32, usize>(ptr) };
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ptr_num_transmute`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ptr_num_cast`
[INFO] [stdout]   --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let ptr_num_cast = ptr as *const i32 as usize;
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ptr_num_cast`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val_transmuted`
[INFO] [stdout]   --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let val_transmuted = unsafe { std::mem::transmute::<&mut i32, &mut u32>(ptr) };
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_val_transmuted`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val_casts`
[INFO] [stdout]   --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let val_casts = unsafe { &mut *(ptr as *mut i32 as *mut u32) };
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_val_casts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ele`
[INFO] [stdout]  --> src/rust_by_practice/_13_result_and_panic/_1_panic_2.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let ele = v[2];
[INFO] [stdout]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_ele`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ele`
[INFO] [stdout]  --> src/rust_by_practice/_13_result_and_panic/_1_panic_2.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let ele = v.get(2).unwrap();
[INFO] [stdout]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_ele`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/rust_by_practice/_13_result_and_panic/_1_panic_2.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let v = production_rate_per_hour(2);
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]   --> src/rust_by_practice/_16_formatted_output/_3_formatting_9_capture_the_environment.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let (width, precision) = get_format();
[INFO] [stdout]    |          ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `precision`
[INFO] [stdout]   --> src/rust_by_practice/_16_formatted_output/_3_formatting_9_capture_the_environment.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let (width, precision) = get_format();
[INFO] [stdout]    |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_precision`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/rust_by_practice/_17_lifetime/_1_basic_5_function.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let y: &i32 = &_x;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_1_basic_10_elision.rs:9:28
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn longest<'a>(x: &'a str, y: &str) -> &'a str {
[INFO] [stdout]   |                            ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 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: 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: 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]   = note: `#[warn(dead_code)]` on by default
[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: 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 `x` is never read
[INFO] [stdout]  --> src/rust_by_example/_15_scoping_rules/_4_lifetimes_5_traits.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | struct Borrowed<'a> {
[INFO] [stdout]   |        -------- field in this struct
[INFO] [stdout] 4 |     x: &'a i32,
[INFO] [stdout]   |     ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Borrowed` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `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: 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: 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: 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] 
[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: 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: 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: 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: 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: 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: 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: 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)]` 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)]` 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 a 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 a 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: 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]   |           ^ help: convert the identifier to upper case (notice the capitalization): `V`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_upper_case_globals)]` on by default
[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]   |            ^^^^^^ help: convert the identifier to upper case: `CONFIG`
[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]    |           ^ help: convert the identifier to upper case (notice the capitalization): `I`
[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]   |                      ^ help: convert the identifier to upper case: `N`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 188 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 2.49s
[INFO] running `Command { std: "docker" "inspect" "dd717c24da4d9311c44f27c45c65e058658f69d85a49c2587ec41e1d75390aeb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dd717c24da4d9311c44f27c45c65e058658f69d85a49c2587ec41e1d75390aeb", kill_on_drop: false }`
[INFO] [stdout] dd717c24da4d9311c44f27c45c65e058658f69d85a49c2587ec41e1d75390aeb
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a159ec493eb891c15529c956ae96231218c17bd1f5b3480c075b8ab36882972d
[INFO] running `Command { std: "docker" "start" "-a" "a159ec493eb891c15529c956ae96231218c17bd1f5b3480c075b8ab36882972d", kill_on_drop: false }`
[INFO] [stderr]    Compiling diff v0.1.13
[INFO] [stderr]    Compiling yansi v0.5.1
[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)]` 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)]` 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: 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)]` 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)]` 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)]` 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)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a_float`
[INFO] [stdout]  --> src/rust_by_example/_02_primitives/_0_primitives.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let a_float: f64 = 1.0;  // Regular annotation
[INFO] [stdout]   |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_a_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `an_integer`
[INFO] [stdout]  --> src/rust_by_example/_02_primitives/_0_primitives.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let an_integer   = 5i32; // Suffix annotation
[INFO] [stdout]   |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_an_integer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `default_float`
[INFO] [stdout]  --> src/rust_by_example/_02_primitives/_0_primitives.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let default_float   = 3.0; // `f64`
[INFO] [stdout]   |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `default_integer`
[INFO] [stdout]   --> src/rust_by_example/_02_primitives/_0_primitives.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let default_integer = 7;   // `i32`
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_integer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `inferred_type` is assigned to, but never used
[INFO] [stdout]   --> src/rust_by_example/_02_primitives/_0_primitives.rs:13: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)]` 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] 
[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]    |         ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_noisy_unused_variable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/rust_by_example/_08_flow_of_control/_6_if_let.rs:104:12
[INFO] [stdout]     |
[INFO] [stdout] 104 |         if let Foo::Bar = a {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout]     = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `years_as_primitive_1`
[INFO] [stdout]   --> src/rust_by_example/_14_generics/_7_new_type_idiom.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let years_as_primitive_1: i64 = years.0; // Tuple
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_years_as_primitive_1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `years_as_primitive_2`
[INFO] [stdout]   --> src/rust_by_example/_14_generics/_7_new_type_idiom.rs:33:15
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let Years(years_as_primitive_2) = years; // Destructuring
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_years_as_primitive_2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `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]   |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `x` is never read
[INFO] [stdout]  --> src/rust_by_practice/_03_variables/_0_variables_6_shadowing.rs:4: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]   |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/rust_by_practice/_03_variables/_0_variables_6_shadowing.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let y = 4;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `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] 
[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]   |         ^ help: if this is intentional, prefix it with an underscore: `_z`
[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)]` 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: 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]   |         ^^^^ help: if this is intentional, prefix it with an underscore: `_none`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]  --> src/rust_by_practice/_07_flow_control/_1_flow_control_4_for.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     for name in names.clone() {
[INFO] [stdout]   |         ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/rust_by_practice/_07_flow_control/_1_flow_control_4_for.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     for n in numbers {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]  --> src/rust_by_practice/_07_flow_control/_1_flow_control_7_continue_and_break.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     for i in 0..=100 {
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]  --> src/rust_by_practice/_07_flow_control/_1_flow_control_8_continue_and_break.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     for i in 0..=100 {
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 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]    |        ^^ help: if this is intentional, prefix it with an underscore: `_i3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/rust_by_practice/_12_type_conversion/_2_from_into_1.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 |    let s: String = 'a'.into();
[INFO] [stdout]    |        ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]  --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let num = unsafe { std::mem::transmute::<[u8; 4], u32>(raw_bytes) };
[INFO] [stdout]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]  --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let num = u32::from_ne_bytes(raw_bytes);
[INFO] [stdout]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ptr_num_transmute`
[INFO] [stdout]   --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let ptr_num_transmute = unsafe { std::mem::transmute::<&i32, usize>(ptr) };
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ptr_num_transmute`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ptr_num_cast`
[INFO] [stdout]   --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let ptr_num_cast = ptr as *const i32 as usize;
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ptr_num_cast`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val_transmuted`
[INFO] [stdout]   --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let val_transmuted = unsafe { std::mem::transmute::<&mut i32, &mut u32>(ptr) };
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_val_transmuted`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val_casts`
[INFO] [stdout]   --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let val_casts = unsafe { &mut *(ptr as *mut i32 as *mut u32) };
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_val_casts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ele`
[INFO] [stdout]  --> src/rust_by_practice/_13_result_and_panic/_1_panic_2.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let ele = v[2];
[INFO] [stdout]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_ele`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ele`
[INFO] [stdout]  --> src/rust_by_practice/_13_result_and_panic/_1_panic_2.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let ele = v.get(2).unwrap();
[INFO] [stdout]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_ele`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/rust_by_practice/_13_result_and_panic/_1_panic_2.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let v = production_rate_per_hour(2);
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]   --> src/rust_by_practice/_16_formatted_output/_3_formatting_9_capture_the_environment.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let (width, precision) = get_format();
[INFO] [stdout]    |          ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `precision`
[INFO] [stdout]   --> src/rust_by_practice/_16_formatted_output/_3_formatting_9_capture_the_environment.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let (width, precision) = get_format();
[INFO] [stdout]    |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_precision`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/rust_by_practice/_17_lifetime/_1_basic_5_function.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let y: &i32 = &_x;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_1_basic_10_elision.rs:9:28
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn longest<'a>(x: &'a str, y: &str) -> &'a str {
[INFO] [stdout]   |                            ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 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]    |         ^^ help: if this is intentional, prefix it with an underscore: `_v1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_5_type_alias.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let x = Operations::Add;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]  --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_8_dst_and_unsized_type.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 |     let s: &str = "Hello there!";
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arr`
[INFO] [stdout]  --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_8_dst_and_unsized_type.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let arr: &[u8] = &[1, 2, 3];
[INFO] [stdout]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_arr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thing`
[INFO] [stdout]  --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_9_dst_and_unsized_type.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn foobar(thing: &dyn Display) {}    
[INFO] [stdout]   |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_thing`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 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: 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]   = note: `#[warn(dead_code)]` on by default
[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: 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 `x` is never read
[INFO] [stdout]  --> src/rust_by_example/_15_scoping_rules/_4_lifetimes_5_traits.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | struct Borrowed<'a> {
[INFO] [stdout]   |        -------- field in this struct
[INFO] [stdout] 4 |     x: &'a i32,
[INFO] [stdout]   |     ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Borrowed` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `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: 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: 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: 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] 
[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: 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: 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: 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: 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: 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: 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: 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)]` 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)]` 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 a 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 a 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: 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]   |           ^ help: convert the identifier to upper case (notice the capitalization): `V`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_upper_case_globals)]` on by default
[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]   |            ^^^^^^ help: convert the identifier to upper case: `CONFIG`
[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]    |           ^ help: convert the identifier to upper case (notice the capitalization): `I`
[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]   |                      ^ help: convert the identifier to upper case: `N`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 186 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 1.26s
[INFO] running `Command { std: "docker" "inspect" "a159ec493eb891c15529c956ae96231218c17bd1f5b3480c075b8ab36882972d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a159ec493eb891c15529c956ae96231218c17bd1f5b3480c075b8ab36882972d", kill_on_drop: false }`
[INFO] [stdout] a159ec493eb891c15529c956ae96231218c17bd1f5b3480c075b8ab36882972d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 642014d0640ef500f5b76c32c8595397a3b39366ae5c4cb4b014a8f023a6aa45
[INFO] running `Command { std: "docker" "start" "-a" "642014d0640ef500f5b76c32c8595397a3b39366ae5c4cb4b014a8f023a6aa45", 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)]` 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)]` 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: 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)]` 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)]` 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)]` 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)]` 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]   |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_an_integer`
[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]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_integer`
[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)]` 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] 
[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]    |         ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_noisy_unused_variable`
[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]   |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[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]   |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[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]    |         ^ 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/_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] 
[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]   |         ^ help: if this is intentional, prefix it with an underscore: `_z`
[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)]` 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: 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]   |         ^^^^ help: if this is intentional, prefix it with an underscore: `_none`
[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]    |         ^ help: if this is intentional, prefix it with an underscore: `_n`
[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]   |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[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]   |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[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]    |        ^^ help: if this is intentional, prefix it with an underscore: `_i3`
[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]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[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]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[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]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_ele`
[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]    |         ^^ help: if this is intentional, prefix it with an underscore: `_v1`
[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: 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: 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]   = note: `#[warn(dead_code)]` on by default
[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: 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 `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: 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: 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: 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: 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] 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: 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: 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: 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: 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: 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: 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: 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)]` 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)]` 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 a 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 a 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: 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]   |           ^ help: convert the identifier to upper case (notice the capitalization): `V`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(non_upper_case_globals)]` on by default
[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]   |            ^^^^^^ help: convert the identifier to upper case: `CONFIG`
[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]    |           ^ help: convert the identifier to upper case (notice the capitalization): `I`
[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]   |                      ^ help: convert the identifier to upper case: `N`
[INFO] [stderr] 
[INFO] [stderr] warning: `learn-rust` (bin "learn-rust" test) generated 186 warnings (run `cargo fix --bin "learn-rust" --tests` to apply 84 suggestions)
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.02s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/learn_rust-8e6a8e0ecb373a41)
[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_hundred ... ok
[INFO] [stdout] test rust_by_example::_21_testing::_1_unit_testing_4_ignoring_tests::tests::test_add ... 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] thread 'rust_by_example::_21_testing::_1_unit_testing_1::tests::test_bad_add' 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:     0x55b1b01fa8ec - std::backtrace_rs::backtrace::libunwind::trace::ha637c64ce894333a
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5
[INFO] [stdout]    1:     0x55b1b01fa8ec - std::backtrace_rs::backtrace::trace_unsynchronized::h47f62dea28e0c88d
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x55b1b01fa8ec - std::sys_common::backtrace::_print_fmt::h9eef0abe20ede486
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:67:5
[INFO] [stdout]    3:     0x55b1b01fa8ec - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hed7f999df88cc644
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:44:22
[INFO] [stdout]    4:     0x55b1b0224840 - core::fmt::rt::Argument::fmt::h1539a9308b8d058d
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/fmt/rt.rs:142:9
[INFO] [stdout]    5:     0x55b1b0224840 - core::fmt::write::h3a39390d8560d9c9
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/fmt/mod.rs:1120:17
[INFO] [stdout]    6:     0x55b1b01f829f - std::io::Write::write_fmt::h040b369f3a0f9cbc
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/io/mod.rs:1762:15
[INFO] [stdout]    7:     0x55b1b01fa6d4 - std::sys_common::backtrace::_print::h894006fb5c6f3d45
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:47:5
[INFO] [stdout]    8:     0x55b1b01fa6d4 - std::sys_common::backtrace::print::h23a2d212c6fff936
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:34:9
[INFO] [stdout]    9:     0x55b1b01fc397 - std::panicking::default_hook::{{closure}}::h8a1d2ee00185001a
[INFO] [stdout]   10:     0x55b1b01fc083 - std::panicking::default_hook::h6038f2eba384e475
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:289:9
[INFO] [stdout]   11:     0x55b1b01b2fe7 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h0ad024c9bdc6d768
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/alloc/src/boxed.rs:2021:9
[INFO] [stdout]   12:     0x55b1b01b2fe7 - test::test_main::{{closure}}::h7500b54257359db6
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:138:21
[INFO] [stdout]   13:     0x55b1b01fc9a8 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h1f8f335eaa9cfaee
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/alloc/src/boxed.rs:2021:9
[INFO] [stdout]   14:     0x55b1b01fc9a8 - std::panicking::rust_panic_with_hook::h2b5517d590cab22e
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:783:13
[INFO] [stdout]   15:     0x55b1b01fc6fe - std::panicking::begin_panic_handler::{{closure}}::h233112c06e0ef43e
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:657:13
[INFO] [stdout]   16:     0x55b1b01fadb6 - std::sys_common::backtrace::__rust_end_short_backtrace::h6e893f24d7ebbff8
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:170:18
[INFO] [stdout]   17:     0x55b1b01fc462 - rust_begin_unwind
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:645:5
[INFO] [stdout]   18:     0x55b1b0179cf5 - core::panicking::panic_fmt::hbf0e066aabfa482c
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/panicking.rs:72:14
[INFO] [stdout]   19:     0x55b1b017a01b - core::panicking::assert_failed_inner::h0bba8b7c26ee4492
[INFO] [stdout]   20:     0x55b1b017f6ae - core::panicking::assert_failed::h9fabe767c7bdfca8
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/panicking.rs:279:5
[INFO] [stdout]   21:     0x55b1b017ec31 - learn_rust::rust_by_example::_21_testing::_1_unit_testing_1::tests::test_bad_add::hea23e3e42715cd03
[INFO] [stdout]                                at /opt/rustwide/workdir/src/rust_by_example/_21_testing/_1_unit_testing_1.rs:26:9
[INFO] [stdout]   22:     0x55b1b017eb97 - learn_rust::rust_by_example::_21_testing::_1_unit_testing_1::tests::test_bad_add::{{closure}}::hb232eefdb6577e15
[INFO] [stdout]                                at /opt/rustwide/workdir/src/rust_by_example/_21_testing/_1_unit_testing_1.rs:23:22
[INFO] [stdout]   23:     0x55b1b017cee6 - core::ops::function::FnOnce::call_once::h948c0ecb7ba3aa6f
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x55b1b01b863f - core::ops::function::FnOnce::call_once::h2b5d431d5046312d
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x55b1b01b863f - test::__rust_begin_short_backtrace::h7714669af176e207
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:628:18
[INFO] [stdout]   26:     0x55b1b01b7655 - test::run_test_in_process::{{closure}}::h85218797dcbcec12
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:651:60
[INFO] [stdout]   27:     0x55b1b01b7655 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h76c106ea31c14d7b
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   28:     0x55b1b01b7655 - std::panicking::try::do_call::h3bd5d0f6620ee946
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:552:40
[INFO] [stdout]   29:     0x55b1b01b7655 - std::panicking::try::h232e535e4744fe31
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:516:19
[INFO] [stdout]   30:     0x55b1b01b7655 - std::panic::catch_unwind::h3ce3bd6ca8dbac68
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panic.rs:142:14
[INFO] [stdout]   31:     0x55b1b01b7655 - test::run_test_in_process::hc97b257c9621286a
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:651:27
[INFO] [stdout]   32:     0x55b1b01b7655 - test::run_test::{{closure}}::h2aa798823a438d38
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:574:43
[INFO] [stdout]   33:     0x55b1b017f916 - test::run_test::{{closure}}::h87d231c78fb59832
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:602:41
[INFO] [stdout]   34:     0x55b1b017f916 - std::sys_common::backtrace::__rust_begin_short_backtrace::he6df152596625789
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:154:18
[INFO] [stdout]   35:     0x55b1b01849c7 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::ha94be15d1e0acf36
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/thread/mod.rs:529:17
[INFO] [stdout]   36:     0x55b1b01849c7 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h9dc6bd6372f16606
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   37:     0x55b1b01849c7 - std::panicking::try::do_call::h9057517f80303cd4
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:552:40
[INFO] [stdout]   38:     0x55b1b01849c7 - std::panicking::try::he3a30b11ee45340c
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:516:19
[INFO] [stdout]   39:     0x55b1b01849c7 - std::panic::catch_unwind::h410458cfd3528b8b
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panic.rs:142:14
[INFO] [stdout]   40:     0x55b1b01849c7 - std::thread::Builder::spawn_unchecked_::{{closure}}::h72ac3bdb567b737b
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/thread/mod.rs:528:30
[INFO] [stdout]   41:     0x55b1b01849c7 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h38f34da3654a8344
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x55b1b0201435 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hc7eafaff61e32df9
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/alloc/src/boxed.rs:2007:9
[INFO] [stdout]   43:     0x55b1b0201435 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h6ba4a5de48dd2304
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/alloc/src/boxed.rs:2007:9
[INFO] [stdout]   44:     0x55b1b0201435 - std::sys::unix::thread::Thread::new::thread_start::he469335aef763e45
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys/unix/thread.rs:108:17
[INFO] [stdout]   45:     0x7f12a0d84ac3 - <unknown>
[INFO] [stdout]   46:     0x7f12a0e15bf4 - __clone
[INFO] [stdout]   47:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- rust_by_example::_21_testing::_4_development_dependencies::tests::test_add stdout ----
[INFO] [stdout] thread 'rust_by_example::_21_testing::_4_development_dependencies::tests::test_add' 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:     0x55b1b01fa8ec - std::backtrace_rs::backtrace::libunwind::trace::ha637c64ce894333a
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5
[INFO] [stdout]    1:     0x55b1b01fa8ec - std::backtrace_rs::backtrace::trace_unsynchronized::h47f62dea28e0c88d
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x55b1b01fa8ec - std::sys_common::backtrace::_print_fmt::h9eef0abe20ede486
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:67:5
[INFO] [stdout]    3:     0x55b1b01fa8ec - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hed7f999df88cc644
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:44:22
[INFO] [stdout]    4:     0x55b1b0224840 - core::fmt::rt::Argument::fmt::h1539a9308b8d058d
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/fmt/rt.rs:142:9
[INFO] [stdout]    5:     0x55b1b0224840 - core::fmt::write::h3a39390d8560d9c9
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/fmt/mod.rs:1120:17
[INFO] [stdout]    6:     0x55b1b01f829f - std::io::Write::write_fmt::h040b369f3a0f9cbc
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/io/mod.rs:1762:15
[INFO] [stdout]    7:     0x55b1b01fa6d4 - std::sys_common::backtrace::_print::h894006fb5c6f3d45
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:47:5
[INFO] [stdout]    8:     0x55b1b01fa6d4 - std::sys_common::backtrace::print::h23a2d212c6fff936
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:34:9
[INFO] [stdout]    9:     0x55b1b01fc397 - std::panicking::default_hook::{{closure}}::h8a1d2ee00185001a
[INFO] [stdout]   10:     0x55b1b01fc083 - std::panicking::default_hook::h6038f2eba384e475
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:289:9
[INFO] [stdout]   11:     0x55b1b01b2fe7 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h0ad024c9bdc6d768
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/alloc/src/boxed.rs:2021:9
[INFO] [stdout]   12:     0x55b1b01b2fe7 - test::test_main::{{closure}}::h7500b54257359db6
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:138:21
[INFO] [stdout]   13:     0x55b1b01fc9a8 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h1f8f335eaa9cfaee
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/alloc/src/boxed.rs:2021:9
[INFO] [stdout]   14:     0x55b1b01fc9a8 - std::panicking::rust_panic_with_hook::h2b5517d590cab22e
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:783:13
[INFO] [stdout]   15:     0x55b1b01fc6fe - std::panicking::begin_panic_handler::{{closure}}::h233112c06e0ef43e
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:657:13
[INFO] [stdout]   16:     0x55b1b01fadb6 - std::sys_common::backtrace::__rust_end_short_backtrace::h6e893f24d7ebbff8
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:170:18
[INFO] [stdout]   17:     0x55b1b01fc462 - rust_begin_unwind
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:645:5
[INFO] [stdout]   18:     0x55b1b0179cf5 - core::panicking::panic_fmt::hbf0e066aabfa482c
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/panicking.rs:72:14
[INFO] [stdout]   19:     0x55b1b017f363 - learn_rust::rust_by_example::_21_testing::_4_development_dependencies::tests::test_add::h647fc45453b1a248
[INFO] [stdout]                                at /opt/rustwide/workdir/src/rust_by_example/_21_testing/_4_development_dependencies.rs:12:9
[INFO] [stdout]   20:     0x55b1b017f237 - learn_rust::rust_by_example::_21_testing::_4_development_dependencies::tests::test_add::{{closure}}::hf0d778e1fb1ff116
[INFO] [stdout]                                at /opt/rustwide/workdir/src/rust_by_example/_21_testing/_4_development_dependencies.rs:11:18
[INFO] [stdout]   21:     0x55b1b017cea6 - core::ops::function::FnOnce::call_once::h8f5caec2125bd5f0
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x55b1b01b863f - core::ops::function::FnOnce::call_once::h2b5d431d5046312d
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x55b1b01b863f - test::__rust_begin_short_backtrace::h7714669af176e207
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:628:18
[INFO] [stdout]   24:     0x55b1b01b7655 - test::run_test_in_process::{{closure}}::h85218797dcbcec12
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:651:60
[INFO] [stdout]   25:     0x55b1b01b7655 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h76c106ea31c14d7b
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   26:     0x55b1b01b7655 - std::panicking::try::do_call::h3bd5d0f6620ee946
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:552:40
[INFO] [stdout]   27:     0x55b1b01b7655 - std::panicking::try::h232e535e4744fe31
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:516:19
[INFO] [stdout]   28:     0x55b1b01b7655 - std::panic::catch_unwind::h3ce3bd6ca8dbac68
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panic.rs:142:14
[INFO] [stdout]   29:     0x55b1b01b7655 - test::run_test_in_process::hc97b257c9621286a
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:651:27
[INFO] [stdout]   30:     0x55b1b01b7655 - test::run_test::{{closure}}::h2aa798823a438d38
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:574:43
[INFO] [stdout]   31:     0x55b1b017f916 - test::run_test::{{closure}}::h87d231c78fb59832
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:602:41
[INFO] [stdout]   32:     0x55b1b017f916 - std::sys_common::backtrace::__rust_begin_short_backtrace::he6df152596625789
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:154:18
[INFO] [stdout]   33:     0x55b1b01849c7 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::ha94be15d1e0acf36
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/thread/mod.rs:529:17
[INFO] [stdout]   34:     0x55b1b01849c7 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h9dc6bd6372f16606
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   35:     0x55b1b01849c7 - std::panicking::try::do_call::h9057517f80303cd4
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:552:40
[INFO] [stdout]   36:     0x55b1b01849c7 - std::panicking::try::he3a30b11ee45340c
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:516:19
[INFO] [stdout]   37:     0x55b1b01849c7 - std::panic::catch_unwind::h410458cfd3528b8b
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panic.rs:142:14
[INFO] [stdout]   38:     0x55b1b01849c7 - std::thread::Builder::spawn_unchecked_::{{closure}}::h72ac3bdb567b737b
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/thread/mod.rs:528:30
[INFO] [stdout]   39:     0x55b1b01849c7 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h38f34da3654a8344
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x55b1b0201435 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hc7eafaff61e32df9
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/alloc/src/boxed.rs:2007:9
[INFO] [stdout]   41:     0x55b1b0201435 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h6ba4a5de48dd2304
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/alloc/src/boxed.rs:2007:9
[INFO] [stdout]   42:     0x55b1b0201435 - std::sys::unix::thread::Thread::new::thread_start::he469335aef763e45
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys/unix/thread.rs:108:17
[INFO] [stdout]   43:     0x7f12a0d84ac3 - <unknown>
[INFO] [stdout]   44:     0x7f12a0e15bf4 - __clone
[INFO] [stdout]   45:                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.02s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--bin learn-rust`
[INFO] running `Command { std: "docker" "inspect" "642014d0640ef500f5b76c32c8595397a3b39366ae5c4cb4b014a8f023a6aa45", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "642014d0640ef500f5b76c32c8595397a3b39366ae5c4cb4b014a8f023a6aa45", kill_on_drop: false }`
[INFO] [stdout] 642014d0640ef500f5b76c32c8595397a3b39366ae5c4cb4b014a8f023a6aa45
[INFO] testing domahidizoltan/learning-rust against beta-2023-12-22 for beta-1.76-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdomahidizoltan%2Flearning-rust" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/domahidizoltan/learning-rust on toolchain beta-2023-12-22
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2023-12-22" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[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-1-tc2/source/Cargo.toml
[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-2023-12-22" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-12-22" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2ee34490efa8184957ae139df5ab98eb6a9bfe4f6e4a9534a1750c8b48f9b764
[INFO] running `Command { std: "docker" "start" "-a" "2ee34490efa8184957ae139df5ab98eb6a9bfe4f6e4a9534a1750c8b48f9b764", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2ee34490efa8184957ae139df5ab98eb6a9bfe4f6e4a9534a1750c8b48f9b764", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2ee34490efa8184957ae139df5ab98eb6a9bfe4f6e4a9534a1750c8b48f9b764", kill_on_drop: false }`
[INFO] [stdout] 2ee34490efa8184957ae139df5ab98eb6a9bfe4f6e4a9534a1750c8b48f9b764
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-12-22" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] fed947a840c89f3a150d77211c406da38b469fd324806a19cf7eb81be44a53c9
[INFO] running `Command { std: "docker" "start" "-a" "fed947a840c89f3a150d77211c406da38b469fd324806a19cf7eb81be44a53c9", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.146
[INFO] [stderr]    Compiling ppv-lite86 v0.2.17
[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)]` 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)]` 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: 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)]` 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)]` 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)]` 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)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a_float`
[INFO] [stdout]  --> src/rust_by_example/_02_primitives/_0_primitives.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let a_float: f64 = 1.0;  // Regular annotation
[INFO] [stdout]   |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_a_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `an_integer`
[INFO] [stdout]  --> src/rust_by_example/_02_primitives/_0_primitives.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let an_integer   = 5i32; // Suffix annotation
[INFO] [stdout]   |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_an_integer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `default_float`
[INFO] [stdout]  --> src/rust_by_example/_02_primitives/_0_primitives.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let default_float   = 3.0; // `f64`
[INFO] [stdout]   |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `default_integer`
[INFO] [stdout]   --> src/rust_by_example/_02_primitives/_0_primitives.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let default_integer = 7;   // `i32`
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_integer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `inferred_type` is assigned to, but never used
[INFO] [stdout]   --> src/rust_by_example/_02_primitives/_0_primitives.rs:13: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)]` 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] 
[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]    |         ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_noisy_unused_variable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/rust_by_example/_08_flow_of_control/_6_if_let.rs:104:12
[INFO] [stdout]     |
[INFO] [stdout] 104 |         if let Foo::Bar = a {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout]     = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `years_as_primitive_1`
[INFO] [stdout]   --> src/rust_by_example/_14_generics/_7_new_type_idiom.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let years_as_primitive_1: i64 = years.0; // Tuple
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_years_as_primitive_1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `years_as_primitive_2`
[INFO] [stdout]   --> src/rust_by_example/_14_generics/_7_new_type_idiom.rs:33:15
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let Years(years_as_primitive_2) = years; // Destructuring
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_years_as_primitive_2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `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]   |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `x` is never read
[INFO] [stdout]  --> src/rust_by_practice/_03_variables/_0_variables_6_shadowing.rs:4: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]   |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/rust_by_practice/_03_variables/_0_variables_6_shadowing.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let y = 4;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `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] 
[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]   |         ^ help: if this is intentional, prefix it with an underscore: `_z`
[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)]` 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: 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]   |         ^^^^ help: if this is intentional, prefix it with an underscore: `_none`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]  --> src/rust_by_practice/_07_flow_control/_1_flow_control_4_for.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     for name in names.clone() {
[INFO] [stdout]   |         ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/rust_by_practice/_07_flow_control/_1_flow_control_4_for.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     for n in numbers {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]  --> src/rust_by_practice/_07_flow_control/_1_flow_control_7_continue_and_break.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     for i in 0..=100 {
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]  --> src/rust_by_practice/_07_flow_control/_1_flow_control_8_continue_and_break.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     for i in 0..=100 {
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 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]    |        ^^ help: if this is intentional, prefix it with an underscore: `_i3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/rust_by_practice/_12_type_conversion/_2_from_into_1.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 |    let s: String = 'a'.into();
[INFO] [stdout]    |        ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]  --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let num = unsafe { std::mem::transmute::<[u8; 4], u32>(raw_bytes) };
[INFO] [stdout]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]  --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let num = u32::from_ne_bytes(raw_bytes);
[INFO] [stdout]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ptr_num_transmute`
[INFO] [stdout]   --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let ptr_num_transmute = unsafe { std::mem::transmute::<&i32, usize>(ptr) };
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ptr_num_transmute`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ptr_num_cast`
[INFO] [stdout]   --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let ptr_num_cast = ptr as *const i32 as usize;
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ptr_num_cast`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val_transmuted`
[INFO] [stdout]   --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let val_transmuted = unsafe { std::mem::transmute::<&mut i32, &mut u32>(ptr) };
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_val_transmuted`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val_casts`
[INFO] [stdout]   --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let val_casts = unsafe { &mut *(ptr as *mut i32 as *mut u32) };
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_val_casts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ele`
[INFO] [stdout]  --> src/rust_by_practice/_13_result_and_panic/_1_panic_2.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let ele = v[2];
[INFO] [stdout]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_ele`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ele`
[INFO] [stdout]  --> src/rust_by_practice/_13_result_and_panic/_1_panic_2.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let ele = v.get(2).unwrap();
[INFO] [stdout]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_ele`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/rust_by_practice/_13_result_and_panic/_1_panic_2.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let v = production_rate_per_hour(2);
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]   --> src/rust_by_practice/_16_formatted_output/_3_formatting_9_capture_the_environment.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let (width, precision) = get_format();
[INFO] [stdout]    |          ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `precision`
[INFO] [stdout]   --> src/rust_by_practice/_16_formatted_output/_3_formatting_9_capture_the_environment.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let (width, precision) = get_format();
[INFO] [stdout]    |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_precision`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/rust_by_practice/_17_lifetime/_1_basic_5_function.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let y: &i32 = &_x;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_1_basic_10_elision.rs:9:28
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn longest<'a>(x: &'a str, y: &str) -> &'a str {
[INFO] [stdout]   |                            ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 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: 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: 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]   = note: `#[warn(dead_code)]` on by default
[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: 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 `x` is never read
[INFO] [stdout]  --> src/rust_by_example/_15_scoping_rules/_4_lifetimes_5_traits.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | struct Borrowed<'a> {
[INFO] [stdout]   |        -------- field in this struct
[INFO] [stdout] 4 |     x: &'a i32,
[INFO] [stdout]   |     ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Borrowed` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `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: 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: 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: 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] 
[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: 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: 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: 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: 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: 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: 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: 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)]` 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)]` 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 a 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 a 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: 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]   |           ^ help: convert the identifier to upper case (notice the capitalization): `V`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_upper_case_globals)]` on by default
[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]   |            ^^^^^^ help: convert the identifier to upper case: `CONFIG`
[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]    |           ^ help: convert the identifier to upper case (notice the capitalization): `I`
[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]   |                      ^ help: convert the identifier to upper case: `N`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 188 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 2.33s
[INFO] running `Command { std: "docker" "inspect" "fed947a840c89f3a150d77211c406da38b469fd324806a19cf7eb81be44a53c9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fed947a840c89f3a150d77211c406da38b469fd324806a19cf7eb81be44a53c9", kill_on_drop: false }`
[INFO] [stdout] fed947a840c89f3a150d77211c406da38b469fd324806a19cf7eb81be44a53c9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-12-22" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 958dc33aa143aab804c765e507f7d018e6129be725ed2d0ca2b3504e74807423
[INFO] running `Command { std: "docker" "start" "-a" "958dc33aa143aab804c765e507f7d018e6129be725ed2d0ca2b3504e74807423", kill_on_drop: false }`
[INFO] [stderr]    Compiling diff v0.1.13
[INFO] [stderr]    Compiling yansi v0.5.1
[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)]` 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)]` 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: 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)]` 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)]` 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)]` 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)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a_float`
[INFO] [stdout]  --> src/rust_by_example/_02_primitives/_0_primitives.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let a_float: f64 = 1.0;  // Regular annotation
[INFO] [stdout]   |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_a_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `an_integer`
[INFO] [stdout]  --> src/rust_by_example/_02_primitives/_0_primitives.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let an_integer   = 5i32; // Suffix annotation
[INFO] [stdout]   |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_an_integer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `default_float`
[INFO] [stdout]  --> src/rust_by_example/_02_primitives/_0_primitives.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let default_float   = 3.0; // `f64`
[INFO] [stdout]   |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `default_integer`
[INFO] [stdout]   --> src/rust_by_example/_02_primitives/_0_primitives.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let default_integer = 7;   // `i32`
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_integer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `inferred_type` is assigned to, but never used
[INFO] [stdout]   --> src/rust_by_example/_02_primitives/_0_primitives.rs:13: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)]` 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] 
[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]    |         ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_noisy_unused_variable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/rust_by_example/_08_flow_of_control/_6_if_let.rs:104:12
[INFO] [stdout]     |
[INFO] [stdout] 104 |         if let Foo::Bar = a {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout]     = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `years_as_primitive_1`
[INFO] [stdout]   --> src/rust_by_example/_14_generics/_7_new_type_idiom.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let years_as_primitive_1: i64 = years.0; // Tuple
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_years_as_primitive_1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `years_as_primitive_2`
[INFO] [stdout]   --> src/rust_by_example/_14_generics/_7_new_type_idiom.rs:33:15
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let Years(years_as_primitive_2) = years; // Destructuring
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_years_as_primitive_2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `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]   |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `x` is never read
[INFO] [stdout]  --> src/rust_by_practice/_03_variables/_0_variables_6_shadowing.rs:4: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]   |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/rust_by_practice/_03_variables/_0_variables_6_shadowing.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let y = 4;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `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] 
[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]   |         ^ help: if this is intentional, prefix it with an underscore: `_z`
[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)]` 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: 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]   |         ^^^^ help: if this is intentional, prefix it with an underscore: `_none`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]  --> src/rust_by_practice/_07_flow_control/_1_flow_control_4_for.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     for name in names.clone() {
[INFO] [stdout]   |         ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/rust_by_practice/_07_flow_control/_1_flow_control_4_for.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     for n in numbers {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]  --> src/rust_by_practice/_07_flow_control/_1_flow_control_7_continue_and_break.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     for i in 0..=100 {
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]  --> src/rust_by_practice/_07_flow_control/_1_flow_control_8_continue_and_break.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     for i in 0..=100 {
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 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]    |        ^^ help: if this is intentional, prefix it with an underscore: `_i3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/rust_by_practice/_12_type_conversion/_2_from_into_1.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 |    let s: String = 'a'.into();
[INFO] [stdout]    |        ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]  --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let num = unsafe { std::mem::transmute::<[u8; 4], u32>(raw_bytes) };
[INFO] [stdout]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]  --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let num = u32::from_ne_bytes(raw_bytes);
[INFO] [stdout]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ptr_num_transmute`
[INFO] [stdout]   --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let ptr_num_transmute = unsafe { std::mem::transmute::<&i32, usize>(ptr) };
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ptr_num_transmute`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ptr_num_cast`
[INFO] [stdout]   --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let ptr_num_cast = ptr as *const i32 as usize;
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ptr_num_cast`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val_transmuted`
[INFO] [stdout]   --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let val_transmuted = unsafe { std::mem::transmute::<&mut i32, &mut u32>(ptr) };
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_val_transmuted`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val_casts`
[INFO] [stdout]   --> src/rust_by_practice/_12_type_conversion/_3_others_transmute_examples_3.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let val_casts = unsafe { &mut *(ptr as *mut i32 as *mut u32) };
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_val_casts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ele`
[INFO] [stdout]  --> src/rust_by_practice/_13_result_and_panic/_1_panic_2.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let ele = v[2];
[INFO] [stdout]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_ele`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ele`
[INFO] [stdout]  --> src/rust_by_practice/_13_result_and_panic/_1_panic_2.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let ele = v.get(2).unwrap();
[INFO] [stdout]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_ele`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/rust_by_practice/_13_result_and_panic/_1_panic_2.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let v = production_rate_per_hour(2);
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]   --> src/rust_by_practice/_16_formatted_output/_3_formatting_9_capture_the_environment.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let (width, precision) = get_format();
[INFO] [stdout]    |          ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `precision`
[INFO] [stdout]   --> src/rust_by_practice/_16_formatted_output/_3_formatting_9_capture_the_environment.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let (width, precision) = get_format();
[INFO] [stdout]    |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_precision`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/rust_by_practice/_17_lifetime/_1_basic_5_function.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let y: &i32 = &_x;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]  --> src/rust_by_practice/_17_lifetime/_1_basic_10_elision.rs:9:28
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn longest<'a>(x: &'a str, y: &str) -> &'a str {
[INFO] [stdout]   |                            ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 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]    |         ^^ help: if this is intentional, prefix it with an underscore: `_v1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_5_type_alias.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let x = Operations::Add;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]  --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_8_dst_and_unsized_type.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 |     let s: &str = "Hello there!";
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arr`
[INFO] [stdout]  --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_8_dst_and_unsized_type.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let arr: &[u8] = &[1, 2, 3];
[INFO] [stdout]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_arr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thing`
[INFO] [stdout]  --> src/rust_by_practice/_19_newtype_and_dst/_0_newtype_and_dst_9_dst_and_unsized_type.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn foobar(thing: &dyn Display) {}    
[INFO] [stdout]   |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_thing`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 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: 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]   = note: `#[warn(dead_code)]` on by default
[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: 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 `x` is never read
[INFO] [stdout]  --> src/rust_by_example/_15_scoping_rules/_4_lifetimes_5_traits.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | struct Borrowed<'a> {
[INFO] [stdout]   |        -------- field in this struct
[INFO] [stdout] 4 |     x: &'a i32,
[INFO] [stdout]   |     ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Borrowed` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `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: 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: 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: 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] 
[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: 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: 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: 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: 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: 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: 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: 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)]` 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)]` 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 a 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 a 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: 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]   |           ^ help: convert the identifier to upper case (notice the capitalization): `V`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_upper_case_globals)]` on by default
[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]   |            ^^^^^^ help: convert the identifier to upper case: `CONFIG`
[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]    |           ^ help: convert the identifier to upper case (notice the capitalization): `I`
[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]   |                      ^ help: convert the identifier to upper case: `N`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 186 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 1.32s
[INFO] running `Command { std: "docker" "inspect" "958dc33aa143aab804c765e507f7d018e6129be725ed2d0ca2b3504e74807423", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "958dc33aa143aab804c765e507f7d018e6129be725ed2d0ca2b3504e74807423", kill_on_drop: false }`
[INFO] [stdout] 958dc33aa143aab804c765e507f7d018e6129be725ed2d0ca2b3504e74807423
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-12-22" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 08117b15895e696c1e0802c5abe77ea328d747d2ee359f043736a86666e12894
[INFO] running `Command { std: "docker" "start" "-a" "08117b15895e696c1e0802c5abe77ea328d747d2ee359f043736a86666e12894", 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)]` 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)]` 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: 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)]` 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)]` 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)]` 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)]` 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]   |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_an_integer`
[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]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_integer`
[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)]` 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] 
[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]    |         ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_noisy_unused_variable`
[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]   |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[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]   |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[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]    |         ^ 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/_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] 
[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]   |         ^ help: if this is intentional, prefix it with an underscore: `_z`
[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)]` 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: 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]   |         ^^^^ help: if this is intentional, prefix it with an underscore: `_none`
[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]    |         ^ help: if this is intentional, prefix it with an underscore: `_n`
[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]   |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[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]   |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[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]    |        ^^ help: if this is intentional, prefix it with an underscore: `_i3`
[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]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[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]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[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]   |         ^^^ help: if this is intentional, prefix it with an underscore: `_ele`
[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]    |         ^^ help: if this is intentional, prefix it with an underscore: `_v1`
[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: 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: 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]   = note: `#[warn(dead_code)]` on by default
[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: 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 `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: 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: 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: 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: 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] 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: 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: 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: 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: 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: 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: 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: 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)]` 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)]` 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 a 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 a 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: 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]   |           ^ help: convert the identifier to upper case (notice the capitalization): `V`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(non_upper_case_globals)]` on by default
[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]   |            ^^^^^^ help: convert the identifier to upper case: `CONFIG`
[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]    |           ^ help: convert the identifier to upper case (notice the capitalization): `I`
[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]   |                      ^ help: convert the identifier to upper case: `N`
[INFO] [stderr] 
[INFO] [stderr] warning: `learn-rust` (bin "learn-rust" test) generated 186 warnings (run `cargo fix --bin "learn-rust" --tests` to apply 84 suggestions)
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.02s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/learn_rust-83624381f65ea3ae)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[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_1::tests::test_add ... 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::ignored_test ... ignored
[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] thread 'rust_by_example::_21_testing::_1_unit_testing_1::tests::test_bad_add' 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:     0x5619b0307ff6 - std::backtrace_rs::backtrace::libunwind::trace::h261606ad26a499c1
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5
[INFO] [stdout]    1:     0x5619b0307ff6 - std::backtrace_rs::backtrace::trace_unsynchronized::hd183f0625477fb28
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x5619b0307ff6 - std::sys_common::backtrace::_print_fmt::hd7f8fef21b4eda67
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:68:5
[INFO] [stdout]    3:     0x5619b0307ff6 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h623d9b51f2f453f1
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:44:22
[INFO] [stdout]    4:     0x5619b0331250 - core::fmt::rt::Argument::fmt::h9f417ac76a86f368
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/fmt/rt.rs:142:9
[INFO] [stdout]    5:     0x5619b0331250 - core::fmt::write::hc9b6faf4ac2aeff7
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/fmt/mod.rs:1120:17
[INFO] [stdout]    6:     0x5619b0305a5f - std::io::Write::write_fmt::he04625a3a989fec3
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/io/mod.rs:1810:15
[INFO] [stdout]    7:     0x5619b0307dd4 - std::sys_common::backtrace::_print::hd5d66399c7df88a2
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:47:5
[INFO] [stdout]    8:     0x5619b0307dd4 - std::sys_common::backtrace::print::he81ed2da642d37e5
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:34:9
[INFO] [stdout]    9:     0x5619b0309b47 - std::panicking::default_hook::{{closure}}::h85773f4fa117163d
[INFO] [stdout]   10:     0x5619b030982d - std::panicking::default_hook::h6a1694a91d09b278
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:289:9
[INFO] [stdout]   11:     0x5619b02bff97 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h616ac37fa3cd6c8f
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/alloc/src/boxed.rs:2029:9
[INFO] [stdout]   12:     0x5619b02bff97 - test::test_main::{{closure}}::h00d84697cefdcbb6
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:138:21
[INFO] [stdout]   13:     0x5619b030a166 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hcb3fe3b9bb537ba8
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/alloc/src/boxed.rs:2029:9
[INFO] [stdout]   14:     0x5619b030a166 - std::panicking::rust_panic_with_hook::h0a7ad96e90f7145b
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:783:13
[INFO] [stdout]   15:     0x5619b0309eb2 - std::panicking::begin_panic_handler::{{closure}}::h7919090525c6485e
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:657:13
[INFO] [stdout]   16:     0x5619b03084f6 - std::sys_common::backtrace::__rust_end_short_backtrace::hf3289479464f7dfe
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:171:18
[INFO] [stdout]   17:     0x5619b0309c10 - rust_begin_unwind
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:645:5
[INFO] [stdout]   18:     0x5619b0285cd5 - core::panicking::panic_fmt::hcc9f77c5c132af55
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/panicking.rs:72:14
[INFO] [stdout]   19:     0x5619b028601b - core::panicking::assert_failed_inner::h9f13e27dd63c3a08
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/panicking.rs:342:17
[INFO] [stdout]   20:     0x5619b028b6be - core::panicking::assert_failed::h2e5b50b12a0fb170
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/panicking.rs:297:5
[INFO] [stdout]   21:     0x5619b028ac51 - learn_rust::rust_by_example::_21_testing::_1_unit_testing_1::tests::test_bad_add::hb7296aae11457387
[INFO] [stdout]                                at /opt/rustwide/workdir/src/rust_by_example/_21_testing/_1_unit_testing_1.rs:26:9
[INFO] [stdout]   22:     0x5619b028abb7 - learn_rust::rust_by_example::_21_testing::_1_unit_testing_1::tests::test_bad_add::{{closure}}::h0133cd681ba83225
[INFO] [stdout]                                at /opt/rustwide/workdir/src/rust_by_example/_21_testing/_1_unit_testing_1.rs:23:22
[INFO] [stdout]   23:     0x5619b0289016 - core::ops::function::FnOnce::call_once::hdc65933e710d4dcb
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5619b02c586f - core::ops::function::FnOnce::call_once::hd64d26f405258157
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5619b02c586f - test::__rust_begin_short_backtrace::he21b0b7a6d731bf9
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:627:18
[INFO] [stdout]   26:     0x5619b02c45f1 - test::run_test_in_process::{{closure}}::hf5c73986d7bdfde2
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:650:60
[INFO] [stdout]   27:     0x5619b02c45f1 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h330011ad032aadc0
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   28:     0x5619b02c45f1 - std::panicking::try::do_call::he61b0a958b795a41
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:552:40
[INFO] [stdout]   29:     0x5619b02c45f1 - std::panicking::try::h7309da130f906eb7
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:516:19
[INFO] [stdout]   30:     0x5619b02c45f1 - std::panic::catch_unwind::hc5c3a06fdaf0a92a
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panic.rs:142:14
[INFO] [stdout]   31:     0x5619b02c45f1 - test::run_test_in_process::h7e7b7c71c3324e0f
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:650:27
[INFO] [stdout]   32:     0x5619b02c45f1 - test::run_test::{{closure}}::h1f509f28f5cf20b1
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:573:43
[INFO] [stdout]   33:     0x5619b028b926 - test::run_test::{{closure}}::h1754218abf443f6d
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:601:41
[INFO] [stdout]   34:     0x5619b028b926 - std::sys_common::backtrace::__rust_begin_short_backtrace::h2ee174b9d5954948
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:155:18
[INFO] [stdout]   35:     0x5619b0290987 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hf60bee9c1a17ef09
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/thread/mod.rs:529:17
[INFO] [stdout]   36:     0x5619b0290987 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h33d0dddec5216160
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   37:     0x5619b0290987 - std::panicking::try::do_call::h144b3048b546f835
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:552:40
[INFO] [stdout]   38:     0x5619b0290987 - std::panicking::try::h978244d04646189f
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:516:19
[INFO] [stdout]   39:     0x5619b0290987 - std::panic::catch_unwind::hdf436369d188fe86
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panic.rs:142:14
[INFO] [stdout]   40:     0x5619b0290987 - std::thread::Builder::spawn_unchecked_::{{closure}}::h87329cbdd33c79ec
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/thread/mod.rs:528:30
[INFO] [stdout]   41:     0x5619b0290987 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h401abbe67897d450
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5619b030ec15 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h5d7c8f150ab9c84c
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/alloc/src/boxed.rs:2015:9
[INFO] [stdout]   43:     0x5619b030ec15 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h570d5b005c242c15
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/alloc/src/boxed.rs:2015:9
[INFO] [stdout]   44:     0x5619b030ec15 - std::sys::unix::thread::Thread::new::thread_start::h36b0a20c0b2361ad
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys/unix/thread.rs:108:17
[INFO] [stdout]   45:     0x7f81151b5ac3 - <unknown>
[INFO] [stdout]   46:     0x7f8115246bf4 - __clone
[INFO] [stdout]   47:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- rust_by_example::_21_testing::_4_development_dependencies::tests::test_add stdout ----
[INFO] [stdout] thread 'rust_by_example::_21_testing::_4_development_dependencies::tests::test_add' 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:     0x5619b0307ff6 - std::backtrace_rs::backtrace::libunwind::trace::h261606ad26a499c1
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5
[INFO] [stdout]    1:     0x5619b0307ff6 - std::backtrace_rs::backtrace::trace_unsynchronized::hd183f0625477fb28
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x5619b0307ff6 - std::sys_common::backtrace::_print_fmt::hd7f8fef21b4eda67
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:68:5
[INFO] [stdout]    3:     0x5619b0307ff6 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h623d9b51f2f453f1
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:44:22
[INFO] [stdout]    4:     0x5619b0331250 - core::fmt::rt::Argument::fmt::h9f417ac76a86f368
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/fmt/rt.rs:142:9
[INFO] [stdout]    5:     0x5619b0331250 - core::fmt::write::hc9b6faf4ac2aeff7
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/fmt/mod.rs:1120:17
[INFO] [stdout]    6:     0x5619b0305a5f - std::io::Write::write_fmt::he04625a3a989fec3
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/io/mod.rs:1810:15
[INFO] [stdout]    7:     0x5619b0307dd4 - std::sys_common::backtrace::_print::hd5d66399c7df88a2
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:47:5
[INFO] [stdout]    8:     0x5619b0307dd4 - std::sys_common::backtrace::print::he81ed2da642d37e5
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:34:9
[INFO] [stdout]    9:     0x5619b0309b47 - std::panicking::default_hook::{{closure}}::h85773f4fa117163d
[INFO] [stdout]   10:     0x5619b030982d - std::panicking::default_hook::h6a1694a91d09b278
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:289:9
[INFO] [stdout]   11:     0x5619b02bff97 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h616ac37fa3cd6c8f
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/alloc/src/boxed.rs:2029:9
[INFO] [stdout]   12:     0x5619b02bff97 - test::test_main::{{closure}}::h00d84697cefdcbb6
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:138:21
[INFO] [stdout]   13:     0x5619b030a166 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hcb3fe3b9bb537ba8
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/alloc/src/boxed.rs:2029:9
[INFO] [stdout]   14:     0x5619b030a166 - std::panicking::rust_panic_with_hook::h0a7ad96e90f7145b
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:783:13
[INFO] [stdout]   15:     0x5619b0309eb2 - std::panicking::begin_panic_handler::{{closure}}::h7919090525c6485e
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:657:13
[INFO] [stdout]   16:     0x5619b03084f6 - std::sys_common::backtrace::__rust_end_short_backtrace::hf3289479464f7dfe
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:171:18
[INFO] [stdout]   17:     0x5619b0309c10 - rust_begin_unwind
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:645:5
[INFO] [stdout]   18:     0x5619b0285cd5 - core::panicking::panic_fmt::hcc9f77c5c132af55
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/panicking.rs:72:14
[INFO] [stdout]   19:     0x5619b028b373 - learn_rust::rust_by_example::_21_testing::_4_development_dependencies::tests::test_add::haacaaa1258d29517
[INFO] [stdout]                                at /opt/rustwide/workdir/src/rust_by_example/_21_testing/_4_development_dependencies.rs:12:9
[INFO] [stdout]   20:     0x5619b028b247 - learn_rust::rust_by_example::_21_testing::_4_development_dependencies::tests::test_add::{{closure}}::heeeb23fd3197f85e
[INFO] [stdout]                                at /opt/rustwide/workdir/src/rust_by_example/_21_testing/_4_development_dependencies.rs:11:18
[INFO] [stdout]   21:     0x5619b0288dd6 - core::ops::function::FnOnce::call_once::h36bdf1fc864f842b
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x5619b02c586f - core::ops::function::FnOnce::call_once::hd64d26f405258157
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x5619b02c586f - test::__rust_begin_short_backtrace::he21b0b7a6d731bf9
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:627:18
[INFO] [stdout]   24:     0x5619b02c45f1 - test::run_test_in_process::{{closure}}::hf5c73986d7bdfde2
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:650:60
[INFO] [stdout]   25:     0x5619b02c45f1 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h330011ad032aadc0
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   26:     0x5619b02c45f1 - std::panicking::try::do_call::he61b0a958b795a41
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:552:40
[INFO] [stdout]   27:     0x5619b02c45f1 - std::panicking::try::h7309da130f906eb7
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:516:19
[INFO] [stdout]   28:     0x5619b02c45f1 - std::panic::catch_unwind::hc5c3a06fdaf0a92a
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panic.rs:142:14
[INFO] [stdout]   29:     0x5619b02c45f1 - test::run_test_in_process::h7e7b7c71c3324e0f
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:650:27
[INFO] [stdout]   30:     0x5619b02c45f1 - test::run_test::{{closure}}::h1f509f28f5cf20b1
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:573:43
[INFO] [stdout]   31:     0x5619b028b926 - test::run_test::{{closure}}::h1754218abf443f6d
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:601:41
[INFO] [stdout]   32:     0x5619b028b926 - std::sys_common::backtrace::__rust_begin_short_backtrace::h2ee174b9d5954948
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:155:18
[INFO] [stdout]   33:     0x5619b0290987 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hf60bee9c1a17ef09
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/thread/mod.rs:529:17
[INFO] [stdout]   34:     0x5619b0290987 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h33d0dddec5216160
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   35:     0x5619b0290987 - std::panicking::try::do_call::h144b3048b546f835
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:552:40
[INFO] [stdout]   36:     0x5619b0290987 - std::panicking::try::h978244d04646189f
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:516:19
[INFO] [stdout]   37:     0x5619b0290987 - std::panic::catch_unwind::hdf436369d188fe86
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panic.rs:142:14
[INFO] [stdout]   38:     0x5619b0290987 - std::thread::Builder::spawn_unchecked_::{{closure}}::h87329cbdd33c79ec
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/thread/mod.rs:528:30
[INFO] [stdout]   39:     0x5619b0290987 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h401abbe67897d450
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x5619b030ec15 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h5d7c8f150ab9c84c
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/alloc/src/boxed.rs:2015:9
[INFO] [stdout]   41:     0x5619b030ec15 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h570d5b005c242c15
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/alloc/src/boxed.rs:2015:9
[INFO] [stdout]   42:     0x5619b030ec15 - std::sys::unix::thread::Thread::new::thread_start::h36b0a20c0b2361ad
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys/unix/thread.rs:108:17
[INFO] [stdout]   43:     0x7f81151b5ac3 - <unknown>
[INFO] [stdout]   44:     0x7f8115246bf4 - __clone
[INFO] [stdout]   45:                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.01s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--bin learn-rust`
[INFO] running `Command { std: "docker" "inspect" "08117b15895e696c1e0802c5abe77ea328d747d2ee359f043736a86666e12894", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "08117b15895e696c1e0802c5abe77ea328d747d2ee359f043736a86666e12894", kill_on_drop: false }`
[INFO] [stdout] 08117b15895e696c1e0802c5abe77ea328d747d2ee359f043736a86666e12894
