[INFO] cloning repository https://github.com/Ryan-Git/learn-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Ryan-Git/learn-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRyan-Git%2Flearn-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRyan-Git%2Flearn-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] f57e9ba8bc8c765e7db76e3e85e13bb9764da7b7
[INFO] checking Ryan-Git/learn-rust/f57e9ba8bc8c765e7db76e3e85e13bb9764da7b7 against master#f5e2df741b4a9820a7579f0c8eccc951706a8782 for pr-147984
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRyan-Git%2Flearn-rust" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Ryan-Git/learn-rust
[INFO] finished tweaking git repo https://github.com/Ryan-Git/learn-rust
[INFO] tweaked toml for git repo https://github.com/Ryan-Git/learn-rust written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Ryan-Git/learn-rust on toolchain f5e2df741b4a9820a7579f0c8eccc951706a8782
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f5e2df741b4a9820a7579f0c8eccc951706a8782" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Ryan-Git/learn-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" "+f5e2df741b4a9820a7579f0c8eccc951706a8782" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+f5e2df741b4a9820a7579f0c8eccc951706a8782" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] fd8e115860c84d0602f7925bc0979e9c086cef84c8d2f9d969a20c6566889cec
[INFO] running `Command { std: "docker" "start" "-a" "fd8e115860c84d0602f7925bc0979e9c086cef84c8d2f9d969a20c6566889cec", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "fd8e115860c84d0602f7925bc0979e9c086cef84c8d2f9d969a20c6566889cec", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fd8e115860c84d0602f7925bc0979e9c086cef84c8d2f9d969a20c6566889cec", kill_on_drop: false }`
[INFO] [stdout] fd8e115860c84d0602f7925bc0979e9c086cef84c8d2f9d969a20c6566889cec
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+f5e2df741b4a9820a7579f0c8eccc951706a8782" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ad10808bcf92bd937bf707cb8c78dfd780204b3a3d14a1d493465d8925a2604a
[INFO] running `Command { std: "docker" "start" "-a" "ad10808bcf92bd937bf707cb8c78dfd780204b3a3d14a1d493465d8925a2604a", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]     Checking learn-rust v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Cons` and `Nil`
[INFO] [stdout]   --> src/ch15_smart_pointers/ch15_4_rc.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 | use self::List::{Cons, Nil};
[INFO] [stdout]    |                  ^^^^  ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Cons` and `Nil`
[INFO] [stdout]   --> src/ch15_smart_pointers/ch15_5_ref_cell.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 41 | use self::List::{Cons, Nil};
[INFO] [stdout]    |                  ^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/ch16_concurrency/ch16_1_threads.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::mpsc`
[INFO] [stdout]  --> src/ch16_concurrency/ch16_2_message_passing.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::mpsc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/ch16_concurrency/ch16_2_message_passing.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/ch16_concurrency/ch16_2_message_passing.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `Mutex`
[INFO] [stdout]  --> src/ch16_concurrency/ch16_3_shared_state.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::{Mutex, Arc};
[INFO] [stdout]   |                 ^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/ch16_concurrency/ch16_3_shared_state.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/ch16_concurrency/ch16_3_shared_state.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> src/ch19_advanced_feature/ch19_4_advanced_types.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ch17_oop/mod.rs:40:29
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub components: Vec<Box<Draw>>,
[INFO] [stdout]    |                             ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub components: Vec<Box<dyn Draw>>,
[INFO] [stdout]    |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ch17_oop/mod.rs:140:23
[INFO] [stdout]     |
[INFO] [stdout] 140 |     state: Option<Box<State>>,
[INFO] [stdout]     |                       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 140 |     state: Option<Box<dyn State>>,
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:33:27
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn distance<N, E>(graph: &GGraph<N, E>, start: &N, end: &N) -> u32 { 1 }
[INFO] [stdout]    |                           ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn distance<N, E>(graph: &dyn GGraph<N, E>, start: &N, end: &N) -> u32 { 1 }
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ch17_oop/mod.rs:180:47
[INFO] [stdout]     |
[INFO] [stdout] 180 |     fn request_review(self: Box<Self>) -> Box<State>;
[INFO] [stdout]     |                                               ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 180 |     fn request_review(self: Box<Self>) -> Box<dyn State>;
[INFO] [stdout]     |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ch17_oop/mod.rs:181:40
[INFO] [stdout]     |
[INFO] [stdout] 181 |     fn approve(self: Box<Self>) -> Box<State>;
[INFO] [stdout]     |                                        ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 181 |     fn approve(self: Box<Self>) -> Box<dyn State>;
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ch17_oop/mod.rs:182:39
[INFO] [stdout]     |
[INFO] [stdout] 182 |     fn reject(self: Box<Self>) -> Box<State>;
[INFO] [stdout]     |                                       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 182 |     fn reject(self: Box<Self>) -> Box<dyn State>;
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/ch16_concurrency/ch16_3_shared_state.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/ch18_pattern_match.rs:105:19
[INFO] [stdout]     |
[INFO] [stdout] 105 |                 1 ... 5 => println!("one through five"),
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/ch18_pattern_match.rs:112:21
[INFO] [stdout]     |
[INFO] [stdout] 112 |                 'a' ... 'j' => println!("early ASCII letter"),
[INFO] [stdout]     |                     ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/ch18_pattern_match.rs:113:21
[INFO] [stdout]     |
[INFO] [stdout] 113 |                 'k' ... 'z' => println!("late ASCII letter"),
[INFO] [stdout]     |                     ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/ch18_pattern_match.rs:222:44
[INFO] [stdout]     |
[INFO] [stdout] 222 |                 Message::Hello { id: id @ 3...7 } => {
[INFO] [stdout]     |                                            ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/ch18_pattern_match.rs:225:40
[INFO] [stdout]     |
[INFO] [stdout] 225 |                 Message::Hello { id: 10...12 } => {
[INFO] [stdout]     |                                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> src/ch19_advanced_feature/ch19_4_advanced_types.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ch17_oop/mod.rs:198:47
[INFO] [stdout]     |
[INFO] [stdout] 198 |     fn request_review(self: Box<Self>) -> Box<State> {
[INFO] [stdout]     |                                               ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 198 |     fn request_review(self: Box<Self>) -> Box<dyn State> {
[INFO] [stdout]     |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ch17_oop/mod.rs:204:40
[INFO] [stdout]     |
[INFO] [stdout] 204 |     fn approve(self: Box<Self>) -> Box<State> {
[INFO] [stdout]     |                                        ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 204 |     fn approve(self: Box<Self>) -> Box<dyn State> {
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ch17_oop/mod.rs:208:39
[INFO] [stdout]     |
[INFO] [stdout] 208 |     fn reject(self: Box<Self>) -> Box<State> {
[INFO] [stdout]     |                                       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 208 |     fn reject(self: Box<Self>) -> Box<dyn State> {
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ch17_oop/mod.rs:218:47
[INFO] [stdout]     |
[INFO] [stdout] 218 |     fn request_review(self: Box<Self>) -> Box<State> {
[INFO] [stdout]     |                                               ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 218 |     fn request_review(self: Box<Self>) -> Box<dyn State> {
[INFO] [stdout]     |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ch17_oop/mod.rs:221:40
[INFO] [stdout]     |
[INFO] [stdout] 221 |     fn approve(self: Box<Self>) -> Box<State> {
[INFO] [stdout]     |                                        ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 221 |     fn approve(self: Box<Self>) -> Box<dyn State> {
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ch17_oop/mod.rs:228:39
[INFO] [stdout]     |
[INFO] [stdout] 228 |     fn reject(self: Box<Self>) -> Box<State> {
[INFO] [stdout]     |                                       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 228 |     fn reject(self: Box<Self>) -> Box<dyn State> {
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ch17_oop/mod.rs:236:47
[INFO] [stdout]     |
[INFO] [stdout] 236 |     fn request_review(self: Box<Self>) -> Box<State> {
[INFO] [stdout]     |                                               ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 236 |     fn request_review(self: Box<Self>) -> Box<dyn State> {
[INFO] [stdout]     |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ch17_oop/mod.rs:240:40
[INFO] [stdout]     |
[INFO] [stdout] 240 |     fn approve(self: Box<Self>) -> Box<State> {
[INFO] [stdout]     |                                        ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 240 |     fn approve(self: Box<Self>) -> Box<dyn State> {
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ch17_oop/mod.rs:248:39
[INFO] [stdout]     |
[INFO] [stdout] 248 |     fn reject(self: Box<Self>) -> Box<State> {
[INFO] [stdout]     |                                       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 248 |     fn reject(self: Box<Self>) -> Box<dyn State> {
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ch17_oop/mod.rs:40:29
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub components: Vec<Box<Draw>>,
[INFO] [stdout]    |                             ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub components: Vec<Box<dyn Draw>>,
[INFO] [stdout]    |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ch17_oop/mod.rs:140:23
[INFO] [stdout]     |
[INFO] [stdout] 140 |     state: Option<Box<State>>,
[INFO] [stdout]     |                       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 140 |     state: Option<Box<dyn State>>,
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:35:21
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn traverse(graph: &AGraph<Node=usize, Edge=(usize, usize)>) {}
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn traverse(graph: &dyn AGraph<Node=usize, Edge=(usize, usize)>) {}
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/ch19_advanced_feature/ch19_4_advanced_types.rs:2:18
[INFO] [stdout]   |
[INFO] [stdout] 2 | type Thunk = Box<FnOnce() + Send + 'static>;
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 2 | type Thunk = Box<dyn FnOnce() + Send + 'static>;
[INFO] [stdout]   |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_5_advanced_func_closures.rs:25:29
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn returns_closure() -> Box<Fn(i32) -> i32> {
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn returns_closure() -> Box<dyn Fn(i32) -> i32> {
[INFO] [stdout]    |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:33:27
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn distance<N, E>(graph: &GGraph<N, E>, start: &N, end: &N) -> u32 { 1 }
[INFO] [stdout]    |                           ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn distance<N, E>(graph: &dyn GGraph<N, E>, start: &N, end: &N) -> u32 { 1 }
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ch17_oop/mod.rs:180:47
[INFO] [stdout]     |
[INFO] [stdout] 180 |     fn request_review(self: Box<Self>) -> Box<State>;
[INFO] [stdout]     |                                               ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 180 |     fn request_review(self: Box<Self>) -> Box<dyn State>;
[INFO] [stdout]     |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ch17_oop/mod.rs:181:40
[INFO] [stdout]     |
[INFO] [stdout] 181 |     fn approve(self: Box<Self>) -> Box<State>;
[INFO] [stdout]     |                                        ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 181 |     fn approve(self: Box<Self>) -> Box<dyn State>;
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ch17_oop/mod.rs:182:39
[INFO] [stdout]     |
[INFO] [stdout] 182 |     fn reject(self: Box<Self>) -> Box<State>;
[INFO] [stdout]     |                                       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 182 |     fn reject(self: Box<Self>) -> Box<dyn State>;
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ch17_oop/mod.rs:198:47
[INFO] [stdout]     |
[INFO] [stdout] 198 |     fn request_review(self: Box<Self>) -> Box<State> {
[INFO] [stdout]     |                                               ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 198 |     fn request_review(self: Box<Self>) -> Box<dyn State> {
[INFO] [stdout]     |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ch17_oop/mod.rs:204:40
[INFO] [stdout]     |
[INFO] [stdout] 204 |     fn approve(self: Box<Self>) -> Box<State> {
[INFO] [stdout]     |                                        ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 204 |     fn approve(self: Box<Self>) -> Box<dyn State> {
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ch17_oop/mod.rs:208:39
[INFO] [stdout]     |
[INFO] [stdout] 208 |     fn reject(self: Box<Self>) -> Box<State> {
[INFO] [stdout]     |                                       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 208 |     fn reject(self: Box<Self>) -> Box<dyn State> {
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ch17_oop/mod.rs:218:47
[INFO] [stdout]     |
[INFO] [stdout] 218 |     fn request_review(self: Box<Self>) -> Box<State> {
[INFO] [stdout]     |                                               ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 218 |     fn request_review(self: Box<Self>) -> Box<dyn State> {
[INFO] [stdout]     |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ch17_oop/mod.rs:221:40
[INFO] [stdout]     |
[INFO] [stdout] 221 |     fn approve(self: Box<Self>) -> Box<State> {
[INFO] [stdout]     |                                        ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 221 |     fn approve(self: Box<Self>) -> Box<dyn State> {
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ch17_oop/mod.rs:228:39
[INFO] [stdout]     |
[INFO] [stdout] 228 |     fn reject(self: Box<Self>) -> Box<State> {
[INFO] [stdout]     |                                       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 228 |     fn reject(self: Box<Self>) -> Box<dyn State> {
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ch17_oop/mod.rs:236:47
[INFO] [stdout]     |
[INFO] [stdout] 236 |     fn request_review(self: Box<Self>) -> Box<State> {
[INFO] [stdout]     |                                               ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 236 |     fn request_review(self: Box<Self>) -> Box<dyn State> {
[INFO] [stdout]     |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ch17_oop/mod.rs:240:40
[INFO] [stdout]     |
[INFO] [stdout] 240 |     fn approve(self: Box<Self>) -> Box<State> {
[INFO] [stdout]     |                                        ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 240 |     fn approve(self: Box<Self>) -> Box<dyn State> {
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ch17_oop/mod.rs:248:39
[INFO] [stdout]     |
[INFO] [stdout] 248 |     fn reject(self: Box<Self>) -> Box<State> {
[INFO] [stdout]     |                                       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 248 |     fn reject(self: Box<Self>) -> Box<dyn State> {
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:35:21
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn traverse(graph: &AGraph<Node=usize, Edge=(usize, usize)>) {}
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn traverse(graph: &dyn AGraph<Node=usize, Edge=(usize, usize)>) {}
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/ch19_advanced_feature/ch19_4_advanced_types.rs:2:18
[INFO] [stdout]   |
[INFO] [stdout] 2 | type Thunk = Box<FnOnce() + Send + 'static>;
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 2 | type Thunk = Box<dyn FnOnce() + Send + 'static>;
[INFO] [stdout]   |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_5_advanced_func_closures.rs:25:29
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn returns_closure() -> Box<Fn(i32) -> i32> {
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn returns_closure() -> Box<dyn Fn(i32) -> i32> {
[INFO] [stdout]    |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ip_type`
[INFO] [stdout]   --> src/ch6_enums.rs:53:10
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn route(ip_type: IpAddrKind) {}
[INFO] [stdout]    |          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ip_type`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/ch10_generic_trait_lifetime.rs:113:58
[INFO] [stdout]     |
[INFO] [stdout] 113 | fn some_function<T: Display + Clone, U: Clone + Display>(t: T, u: U) -> i32 {
[INFO] [stdout]     |                                                          ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]    --> src/ch10_generic_trait_lifetime.rs:113:64
[INFO] [stdout]     |
[INFO] [stdout] 113 | fn some_function<T: Display + Clone, U: Clone + Display>(t: T, u: U) -> i32 {
[INFO] [stdout]     |                                                                ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/ch10_generic_trait_lifetime.rs:117:25
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn some_function2<T, U>(t: T, u: U) -> i32
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]    --> src/ch10_generic_trait_lifetime.rs:117:31
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn some_function2<T, U>(t: T, u: U) -> i32
[INFO] [stdout]     |                               ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c1`
[INFO] [stdout]   --> src/ch14_cargo_crates.rs:37:16
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn mix(c1: PrimaryColor, c2: PrimaryColor) -> SecondaryColor {
[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/ch14_cargo_crates.rs:37:34
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn mix(c1: PrimaryColor, c2: PrimaryColor) -> SecondaryColor {
[INFO] [stdout]    |                                  ^^ help: if this is intentional, prefix it with an underscore: `_c2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `post`
[INFO] [stdout]    --> src/ch17_oop/mod.rs:184:27
[INFO] [stdout]     |
[INFO] [stdout] 184 |     fn content<'a>(&self, post: &'a Post) -> &'a str {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_post`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `content`
[INFO] [stdout]    --> src/ch17_oop/mod.rs:188:24
[INFO] [stdout]     |
[INFO] [stdout] 188 |     fn add_text(&self, content: &mut String, text: &str) {}
[INFO] [stdout]     |                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `text`
[INFO] [stdout]    --> src/ch17_oop/mod.rs:188:46
[INFO] [stdout]     |
[INFO] [stdout] 188 |     fn add_text(&self, content: &mut String, text: &str) {}
[INFO] [stdout]     |                                              ^^^^ help: if this is intentional, prefix it with an underscore: `_text`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/ch18_pattern_match.rs:245:8
[INFO] [stdout]     |
[INFO] [stdout] 245 | fn foo(x: i32) {
[INFO] [stdout]     |        ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `graph`
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:19:37
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn gDistance<N, E, G: GGraph<N, E>>(graph: &G, start: &N, end: &N) -> u32 { 1 }
[INFO] [stdout]    |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_graph`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:19:48
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn gDistance<N, E, G: GGraph<N, E>>(graph: &G, start: &N, end: &N) -> u32 { 1 }
[INFO] [stdout]    |                                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end`
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:19:59
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn gDistance<N, E, G: GGraph<N, E>>(graph: &G, start: &N, end: &N) -> u32 { 1 }
[INFO] [stdout]    |                                                           ^^^ help: if this is intentional, prefix it with an underscore: `_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `graph`
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:28:25
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn aDistance<G: AGraph>(graph: &G, start: &G::Node, end: &G::Node) -> u32 {
[INFO] [stdout]    |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_graph`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:28:36
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn aDistance<G: AGraph>(graph: &G, start: &G::Node, end: &G::Node) -> u32 {
[INFO] [stdout]    |                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end`
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:28:53
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn aDistance<G: AGraph>(graph: &G, start: &G::Node, end: &G::Node) -> u32 {
[INFO] [stdout]    |                                                     ^^^ help: if this is intentional, prefix it with an underscore: `_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `graph`
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:33:19
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn distance<N, E>(graph: &GGraph<N, E>, start: &N, end: &N) -> u32 { 1 }
[INFO] [stdout]    |                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_graph`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:33:41
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn distance<N, E>(graph: &GGraph<N, E>, start: &N, end: &N) -> u32 { 1 }
[INFO] [stdout]    |                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end`
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:33:52
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn distance<N, E>(graph: &GGraph<N, E>, start: &N, end: &N) -> u32 { 1 }
[INFO] [stdout]    |                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `graph`
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn traverse(graph: &AGraph<Node=usize, Edge=(usize, usize)>) {}
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_graph`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_4_advanced_types.rs:18:15
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn generic<T>(t: T){}
[INFO] [stdout]    |               ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_4_advanced_types.rs:19:23
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn generic2<T: Sized>(t: T) {}
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_4_advanced_types.rs:20:24
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn generic3<T: ?Sized>(t: &T) {}
[INFO] [stdout]    |                        ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `takes_ownership` is never used
[INFO] [stdout]    --> src/ch4_ownership.rs:105:4
[INFO] [stdout]     |
[INFO] [stdout] 105 | fn takes_ownership(some_string: String) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `makes_copy` is never used
[INFO] [stdout]    --> src/ch4_ownership.rs:111:4
[INFO] [stdout]     |
[INFO] [stdout] 111 | fn makes_copy(some_integer: i32) {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gives_ownership` is never used
[INFO] [stdout]    --> src/ch4_ownership.rs:116:4
[INFO] [stdout]     |
[INFO] [stdout] 116 | fn gives_ownership() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `takes_and_gives_back` is never used
[INFO] [stdout]    --> src/ch4_ownership.rs:129:4
[INFO] [stdout]     |
[INFO] [stdout] 129 | fn takes_and_gives_back(a_string: String) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_length` is never used
[INFO] [stdout]    --> src/ch4_ownership.rs:136:4
[INFO] [stdout]     |
[INFO] [stdout] 136 | fn calculate_length(s: &String) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `change` is never used
[INFO] [stdout]    --> src/ch4_ownership.rs:142:4
[INFO] [stdout]     |
[INFO] [stdout] 142 | fn change(some_string: &mut String) {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Rectangle` is never constructed
[INFO] [stdout]  --> src/ch5_rectangle.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | struct Rectangle {
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `area`, `can_hold`, and `square` are never used
[INFO] [stdout]   --> src/ch5_rectangle.rs:8:8
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl Rectangle {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout]  8 |     fn area(&self) -> u32 {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     fn can_hold(&self, other: &Rectangle) -> bool {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     fn square(size: u32) -> Rectangle {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `area_rec` is never used
[INFO] [stdout]   --> src/ch5_rectangle.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn area_rec(rec: &Rectangle) -> u32 {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `User` is never constructed
[INFO] [stdout]  --> src/ch5_structs.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | struct User {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Color` is never constructed
[INFO] [stdout]  --> src/ch5_structs.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct Color(i32, i32, i32);
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]   --> src/ch5_structs.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct Point(i32, i32, i32);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_user` is never used
[INFO] [stdout]   --> src/ch5_structs.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn build_user(email: String, username: String) -> User {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `IpAddrKind` is never used
[INFO] [stdout]  --> src/ch6_enums.rs:1:6
[INFO] [stdout]   |
[INFO] [stdout] 1 | enum IpAddrKind {
[INFO] [stdout]   |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UsState` is never used
[INFO] [stdout]  --> src/ch6_enums.rs:7:6
[INFO] [stdout]   |
[INFO] [stdout] 7 | enum UsState {
[INFO] [stdout]   |      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Coin` is never used
[INFO] [stdout]   --> src/ch6_enums.rs:13:6
[INFO] [stdout]    |
[INFO] [stdout] 13 | enum Coin {
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `value_in_cents` is never used
[INFO] [stdout]   --> src/ch6_enums.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn value_in_cents(coin: Coin) -> u32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `route` is never used
[INFO] [stdout]   --> src/ch6_enums.rs:53:4
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn route(ip_type: IpAddrKind) {}
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `nested_modules` is never used
[INFO] [stdout]   --> src/ch7_modules.rs:21:20
[INFO] [stdout]    |
[INFO] [stdout] 21 |             pub fn nested_modules() {}
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_username_from_file` is never used
[INFO] [stdout]   --> src/ch9_error.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn read_username_from_file() -> Result<String, io::Error> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_username_from_file2` is never used
[INFO] [stdout]   --> src/ch9_error.rs:60:4
[INFO] [stdout]    |
[INFO] [stdout] 60 | fn read_username_from_file2() -> Result<String, io::Error> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_username_from_file3` is never used
[INFO] [stdout]   --> src/ch9_error.rs:67:4
[INFO] [stdout]    |
[INFO] [stdout] 67 | fn read_username_from_file3() -> Result<String, io::Error> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest` is never used
[INFO] [stdout]   --> src/ch10_generic_trait_lifetime.rs:75:4
[INFO] [stdout]    |
[INFO] [stdout] 75 | fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest_with_an_announcement` is never used
[INFO] [stdout]   --> src/ch10_generic_trait_lifetime.rs:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | fn longest_with_an_announcement<'a, T>(x: &'a str, y: &'a str, ann: T) -> &'a str
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ImportantExcerpt` is never constructed
[INFO] [stdout]   --> src/ch10_generic_trait_lifetime.rs:94:8
[INFO] [stdout]    |
[INFO] [stdout] 94 | struct ImportantExcerpt<'a> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `level` and `announce_and_return_part` are never used
[INFO] [stdout]    --> src/ch10_generic_trait_lifetime.rs:99:8
[INFO] [stdout]     |
[INFO] [stdout]  98 | impl<'a> ImportantExcerpt<'a> {
[INFO] [stdout]     | ----------------------------- methods in this implementation
[INFO] [stdout]  99 |     fn level(&self) -> i32 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     fn announce_and_return_part(&self, announcement: &str) -> &str {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify` is never used
[INFO] [stdout]    --> src/ch10_generic_trait_lifetime.rs:109:4
[INFO] [stdout]     |
[INFO] [stdout] 109 | fn notify<T: Summarizable + Display>(item: T) {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `some_function` is never used
[INFO] [stdout]    --> src/ch10_generic_trait_lifetime.rs:113:4
[INFO] [stdout]     |
[INFO] [stdout] 113 | fn some_function<T: Display + Clone, U: Clone + Display>(t: T, u: U) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `some_function2` is never used
[INFO] [stdout]    --> src/ch10_generic_trait_lifetime.rs:117:4
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn some_function2<T, U>(t: T, u: U) -> i32
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `largest` is never used
[INFO] [stdout]    --> src/ch10_generic_trait_lifetime.rs:123:4
[INFO] [stdout]     |
[INFO] [stdout] 123 | fn largest(list: &[i32]) -> i32 {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `largest2` is never used
[INFO] [stdout]    --> src/ch10_generic_trait_lifetime.rs:135:4
[INFO] [stdout]     |
[INFO] [stdout] 135 | fn largest2<T: PartialOrd>(list: &[T]) -> &T {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]    --> src/ch10_generic_trait_lifetime.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | struct Point<T> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `x` is never used
[INFO] [stdout]    --> src/ch10_generic_trait_lifetime.rs:153:8
[INFO] [stdout]     |
[INFO] [stdout] 152 | impl<T> Point<T> {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] 153 |     fn x(&self) -> &T {
[INFO] [stdout]     |        ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point2` is never constructed
[INFO] [stdout]    --> src/ch10_generic_trait_lifetime.rs:158:8
[INFO] [stdout]     |
[INFO] [stdout] 158 | struct Point2<T, U> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `mixup` is never used
[INFO] [stdout]    --> src/ch10_generic_trait_lifetime.rs:164:8
[INFO] [stdout]     |
[INFO] [stdout] 163 | impl<T, U> Point2<T, U> {
[INFO] [stdout]     | ----------------------- method in this implementation
[INFO] [stdout] 164 |     fn mixup<V, W>(self, other: Point2<V, W>) -> Point2<T, W> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Option` is never used
[INFO] [stdout]    --> src/ch10_generic_trait_lifetime.rs:172:6
[INFO] [stdout]     |
[INFO] [stdout] 172 | enum Option<T> {
[INFO] [stdout]     |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Summarizable` is never used
[INFO] [stdout]    --> src/ch10_generic_trait_lifetime.rs:177:7
[INFO] [stdout]     |
[INFO] [stdout] 177 | trait Summarizable {
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NewsArticle` is never constructed
[INFO] [stdout]    --> src/ch10_generic_trait_lifetime.rs:185:8
[INFO] [stdout]     |
[INFO] [stdout] 185 | struct NewsArticle {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tweet` is never constructed
[INFO] [stdout]    --> src/ch10_generic_trait_lifetime.rs:198:8
[INFO] [stdout]     |
[INFO] [stdout] 198 | struct Tweet {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_two` is never used
[INFO] [stdout]   --> src/ch11_test.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn add_two(a: i32) -> i32 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Guess` is never constructed
[INFO] [stdout]   --> src/ch11_test.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | struct Guess {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ch11_test.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl Guess {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] 29 |     pub fn new(value: u32) -> Guess {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Rectangle` is never constructed
[INFO] [stdout]   --> src/ch11_test.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct Rectangle {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `can_hold` is never used
[INFO] [stdout]   --> src/ch11_test.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl Rectangle {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] 47 |     pub fn can_hold(&self, other: &Rectangle) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Counter` is never constructed
[INFO] [stdout]    --> src/ch13_fp.rs:127:8
[INFO] [stdout]     |
[INFO] [stdout] 127 | struct Counter {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/ch13_fp.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 131 | impl Counter {
[INFO] [stdout]     | ------------ associated function in this implementation
[INFO] [stdout] 132 |     fn new() -> Counter {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Shoe` is never constructed
[INFO] [stdout]    --> src/ch13_fp.rs:152:8
[INFO] [stdout]     |
[INFO] [stdout] 152 | struct Shoe {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shoes_in_my_size` is never used
[INFO] [stdout]    --> src/ch13_fp.rs:157:4
[INFO] [stdout]     |
[INFO] [stdout] 157 | fn shoes_in_my_size(shoes: Vec<Shoe>, shoe_size: i32) -> Vec<Shoe> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cacher` is never constructed
[INFO] [stdout]    --> src/ch13_fp.rs:177:8
[INFO] [stdout]     |
[INFO] [stdout] 177 | struct Cacher<T, P, R>
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `value` are never used
[INFO] [stdout]    --> src/ch13_fp.rs:193:8
[INFO] [stdout]     |
[INFO] [stdout] 187 | / impl<T, P, R> Cacher<T, P, R>
[INFO] [stdout] 188 | |     where
[INFO] [stdout] 189 | |         T: Fn(P) -> R,
[INFO] [stdout] 190 | |         P: std::hash::Hash + Eq + Copy,
[INFO] [stdout] 191 | |         R: Copy
[INFO] [stdout]     | |_______________- associated items in this implementation
[INFO] [stdout] 192 |   {
[INFO] [stdout] 193 |       fn new(calculation: T) -> Cacher<T, P, R> {
[INFO] [stdout]     |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |       fn value(&mut self, arg: P) -> R {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `List` is never used
[INFO] [stdout]  --> src/ch15_smart_pointers/ch15_1_box.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | enum List<T> {
[INFO] [stdout]   |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Mp3` is never constructed
[INFO] [stdout]   --> src/ch15_smart_pointers/ch15_1_box.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | struct Mp3 {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CustomSmartPointer` is never constructed
[INFO] [stdout]   --> src/ch15_smart_pointers/ch15_1_box.rs:72:8
[INFO] [stdout]    |
[INFO] [stdout] 72 | struct CustomSmartPointer {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `List` is never used
[INFO] [stdout]  --> src/ch15_smart_pointers/ch15_4_rc.rs:6:6
[INFO] [stdout]   |
[INFO] [stdout] 6 | enum List<T> {
[INFO] [stdout]   |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `a_fn_that_immutably_borrows` is never used
[INFO] [stdout]  --> src/ch15_smart_pointers/ch15_5_ref_cell.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn a_fn_that_immutably_borrows(a: &i32){
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `a_fn_that_mutably_borrows` is never used
[INFO] [stdout]   --> src/ch15_smart_pointers/ch15_5_ref_cell.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn a_fn_that_mutably_borrows(b: &mut i32){
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `demo` is never used
[INFO] [stdout]   --> src/ch15_smart_pointers/ch15_5_ref_cell.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn demo(r: &RefCell<i32>){
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `List` is never used
[INFO] [stdout]   --> src/ch15_smart_pointers/ch15_5_ref_cell.rs:36:6
[INFO] [stdout]    |
[INFO] [stdout] 36 | enum List {
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `List` is never used
[INFO] [stdout]  --> src/ch15_smart_pointers/ch15_6_ref_cycle.rs:2:6
[INFO] [stdout]   |
[INFO] [stdout] 2 | enum List {
[INFO] [stdout]   |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `tail` is never used
[INFO] [stdout]  --> src/ch15_smart_pointers/ch15_6_ref_cycle.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | impl List {
[INFO] [stdout]   | --------- method in this implementation
[INFO] [stdout] 8 |     fn tail(&self) -> Option<&RefCell<Rc<List>>> {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]   --> src/ch15_smart_pointers/ch15_6_ref_cycle.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | struct Node {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AveragedCollection` is never constructed
[INFO] [stdout]  --> src/ch17_oop/mod.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct AveragedCollection {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add`, `remove`, `average`, and `update_average` are never used
[INFO] [stdout]   --> src/ch17_oop/mod.rs:8:12
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl AveragedCollection {
[INFO] [stdout]    | ----------------------- methods in this implementation
[INFO] [stdout]  8 |     pub fn add(&mut self, value: i32) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub fn remove(&mut self) -> Option<i32> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn average(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     fn update_average(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Draw` is never used
[INFO] [stdout]   --> src/ch17_oop/mod.rs:35:11
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub trait Draw {
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Screen` is never constructed
[INFO] [stdout]   --> src/ch17_oop/mod.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct Screen {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `run` is never used
[INFO] [stdout]   --> src/ch17_oop/mod.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | impl Screen {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 44 |     pub fn run(&self) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Button` is never constructed
[INFO] [stdout]   --> src/ch17_oop/mod.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct Button {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SelectBox` is never constructed
[INFO] [stdout]   --> src/ch17_oop/mod.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | struct SelectBox {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Post` is never constructed
[INFO] [stdout]    --> src/ch17_oop/mod.rs:139:12
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub struct Post {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_text`, `content`, `request_review`, `approve`, and `reject` are never used
[INFO] [stdout]    --> src/ch17_oop/mod.rs:145:12
[INFO] [stdout]     |
[INFO] [stdout] 144 | impl Post {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 145 |     pub fn new() -> Post {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn add_text(&mut self, text: &str) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub fn content(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn request_review(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub fn approve(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn reject(&mut self) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `State` is never used
[INFO] [stdout]    --> src/ch17_oop/mod.rs:179:7
[INFO] [stdout]     |
[INFO] [stdout] 179 | trait State {
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Draft` is never constructed
[INFO] [stdout]    --> src/ch17_oop/mod.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 | struct Draft {}
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PendingReview` is never constructed
[INFO] [stdout]    --> src/ch17_oop/mod.rs:213:8
[INFO] [stdout]     |
[INFO] [stdout] 213 | struct PendingReview {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Published` is never constructed
[INFO] [stdout]    --> src/ch17_oop/mod.rs:233:8
[INFO] [stdout]     |
[INFO] [stdout] 233 | struct Published {}
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Either` is never used
[INFO] [stdout]   --> src/ch17_oop/encoding_states_as_type.rs:22:6
[INFO] [stdout]    |
[INFO] [stdout] 22 | enum Either<L, R> {
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Post` is never constructed
[INFO] [stdout]   --> src/ch17_oop/encoding_states_as_type.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | struct Post {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DraftPost` is never constructed
[INFO] [stdout]   --> src/ch17_oop/encoding_states_as_type.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | struct DraftPost {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `content` are never used
[INFO] [stdout]   --> src/ch17_oop/encoding_states_as_type.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl Post {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 36 |     fn new() -> DraftPost {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     fn content(&self) -> &str {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_text` and `request_review` are never used
[INFO] [stdout]   --> src/ch17_oop/encoding_states_as_type.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl DraftPost {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] 48 |     fn add_text(&mut self, text: &str) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     fn request_review(self) -> PendingReviewPost {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PendingReviewPost` is never constructed
[INFO] [stdout]   --> src/ch17_oop/encoding_states_as_type.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | struct PendingReviewPost {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `approve` and `reject` are never used
[INFO] [stdout]   --> src/ch17_oop/encoding_states_as_type.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | impl PendingReviewPost {
[INFO] [stdout]    | ---------------------- methods in this implementation
[INFO] [stdout] 66 |     fn approve(self) -> Either<PendingReviewPost, Post> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     fn reject(self) -> DraftPost {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Message` is never used
[INFO] [stdout]    --> src/ch18_pattern_match.rs:236:6
[INFO] [stdout]     |
[INFO] [stdout] 236 | enum Message {
[INFO] [stdout]     |      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]    --> src/ch18_pattern_match.rs:240:8
[INFO] [stdout]     |
[INFO] [stdout] 240 | struct Point {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `foo` is never used
[INFO] [stdout]    --> src/ch18_pattern_match.rs:245:4
[INFO] [stdout]     |
[INFO] [stdout] 245 | fn foo(x: i32) {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_coordinates` is never used
[INFO] [stdout]    --> src/ch18_pattern_match.rs:250:4
[INFO] [stdout]     |
[INFO] [stdout] 250 | fn print_coordinates(&(x, y): &(i32, i32)) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dangerous` is never used
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_1_unsafe.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 | unsafe fn dangerous() {}
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `split_at_mut` is never used
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_1_unsafe.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn split_at_mut(slice: &mut [i32], mid: usize) -> (&mut [i32], &mut [i32]) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `HELLO_WORLD` is never used
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_1_unsafe.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | static HELLO_WORLD: &str = "Hello, world!";
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `COUNTER` is never used
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_1_unsafe.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 78 | static mut COUNTER: u32 = 0;
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Foo` is never used
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_1_unsafe.rs:93:14
[INFO] [stdout]    |
[INFO] [stdout] 93 | unsafe trait Foo {}
[INFO] [stdout]    |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Context` is never constructed
[INFO] [stdout]  --> src/ch19_advanced_feature/ch19_2_advanced_lifetime.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | struct Context<'s>(&'s str);
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Parser` is never constructed
[INFO] [stdout]  --> src/ch19_advanced_feature/ch19_2_advanced_lifetime.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Parser<'c, 's: 'c> {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `parse` is never used
[INFO] [stdout]  --> src/ch19_advanced_feature/ch19_2_advanced_lifetime.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | impl<'c, 's> Parser<'c, 's> {
[INFO] [stdout]   | --------------------------- method in this implementation
[INFO] [stdout] 9 |     fn parse(&self) -> Result<(), &'s str> {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_context` is never used
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_2_advanced_lifetime.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn parse_context(context: Context) -> Result<(), &str> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Ref` is never constructed
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_2_advanced_lifetime.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct Ref<'a, T: 'a>(&'a T);
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Foo` is never used
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_2_advanced_lifetime.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | trait Foo {}
[INFO] [stdout]    |       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Bar` is never constructed
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_2_advanced_lifetime.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | struct Bar<'a> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Foo` is never used
[INFO] [stdout]  --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:2:7
[INFO] [stdout]   |
[INFO] [stdout] 2 | trait Foo {
[INFO] [stdout]   |       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Bar` is never used
[INFO] [stdout]  --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | trait Bar<T> {
[INFO] [stdout]   |       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GGraph` is never used
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | trait GGraph<Node, Edge> {
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gDistance` is never used
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn gDistance<N, E, G: GGraph<N, E>>(graph: &G, start: &N, end: &N) -> u32 { 1 }
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AGraph` is never used
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | trait AGraph {
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `aDistance` is never used
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn aDistance<G: AGraph>(graph: &G, start: &G::Node, end: &G::Node) -> u32 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distance` is never used
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:33:4
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn distance<N, E>(graph: &GGraph<N, E>, start: &N, end: &N) -> u32 { 1 }
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `traverse` is never used
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:35:4
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn traverse(graph: &AGraph<Node=usize, Edge=(usize, usize)>) {}
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | struct Point {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Millimeters` is never constructed
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:64:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | struct Millimeters(u32);
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Meters` is never constructed
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | struct Meters(u32);
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Foo2` is never used
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:94:7
[INFO] [stdout]    |
[INFO] [stdout] 94 | trait Foo2 {
[INFO] [stdout]    |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Bar2` is never used
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:98:7
[INFO] [stdout]    |
[INFO] [stdout] 98 | trait Bar2 {
[INFO] [stdout]    |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Baz` is never constructed
[INFO] [stdout]    --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:102:8
[INFO] [stdout]     |
[INFO] [stdout] 102 | struct Baz;
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `f` is never used
[INFO] [stdout]    --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | impl Baz {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] 117 |     fn f(&self) {
[INFO] [stdout]     |        ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `OutlinePrint` is never used
[INFO] [stdout]    --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:125:7
[INFO] [stdout]     |
[INFO] [stdout] 125 | trait OutlinePrint: Display {
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Wrapper` is never constructed
[INFO] [stdout]    --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:139:8
[INFO] [stdout]     |
[INFO] [stdout] 139 | struct Wrapper(Vec<String>);
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Kilometers` is never used
[INFO] [stdout]  --> src/ch19_advanced_feature/ch19_4_advanced_types.rs:1:6
[INFO] [stdout]   |
[INFO] [stdout] 1 | type Kilometers = i32;
[INFO] [stdout]   |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Thunk` is never used
[INFO] [stdout]  --> src/ch19_advanced_feature/ch19_4_advanced_types.rs:2:6
[INFO] [stdout]   |
[INFO] [stdout] 2 | type Thunk = Box<FnOnce() + Send + 'static>;
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bar` is never used
[INFO] [stdout]  --> src/ch19_advanced_feature/ch19_4_advanced_types.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn bar() -> ! {
[INFO] [stdout]   |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generic` is never used
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_4_advanced_types.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn generic<T>(t: T){}
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generic2` is never used
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_4_advanced_types.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn generic2<T: Sized>(t: T) {}
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generic3` is never used
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_4_advanced_types.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn generic3<T: ?Sized>(t: &T) {}
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_one` is never used
[INFO] [stdout]  --> src/ch19_advanced_feature/ch19_5_advanced_func_closures.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn add_one(x: i32) -> i32 { x + 1 }
[INFO] [stdout]   |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `do_twice` is never used
[INFO] [stdout]  --> src/ch19_advanced_feature/ch19_5_advanced_func_closures.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn do_twice(f: fn(i32) -> i32, arg: i32) -> i32 {
[INFO] [stdout]   |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `returns_closure` is never used
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_5_advanced_func_closures.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn returns_closure() -> Box<Fn(i32) -> i32> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_2_advanced_lifetime.rs:14:27
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn parse_context(context: Context) -> Result<(), &str> {
[INFO] [stdout]    |                           ^^^^^^^                ^^^^ the same lifetime is elided here
[INFO] [stdout]    |                           |
[INFO] [stdout]    |                           the lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn parse_context(context: Context<'_>) -> Result<(), &str> {
[INFO] [stdout]    |                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gDistance` should have a snake case name
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn gDistance<N, E, G: GGraph<N, E>>(graph: &G, start: &N, end: &N) -> u32 { 1 }
[INFO] [stdout]    |    ^^^^^^^^^ help: convert the identifier to snake case: `g_distance`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `aDistance` should have a snake case name
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn aDistance<G: AGraph>(graph: &G, start: &G::Node, end: &G::Node) -> u32 {
[INFO] [stdout]    |    ^^^^^^^^^ help: convert the identifier to snake case: `a_distance`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_2_advanced_lifetime.rs:37:48
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let obj = Box::new(Bar { x: &num }) as Box<Foo>;
[INFO] [stdout]    |                                                ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let obj = Box::new(Bar { x: &num }) as Box<dyn Foo>;
[INFO] [stdout]    |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s2`
[INFO] [stdout]   --> src/ch4_ownership.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |         let s2 = s1;
[INFO] [stdout]    |             ^^ help: if this is intentional, prefix it with an underscore: `_s2`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s1`
[INFO] [stdout]   --> src/ch4_ownership.rs:46:13
[INFO] [stdout]    |
[INFO] [stdout] 46 |         let s1 = gives_ownership();         // gives_ownership moves its return
[INFO] [stdout]    |             ^^ help: if this is intentional, prefix it with an underscore: `_s1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s3`
[INFO] [stdout]   --> src/ch4_ownership.rs:51:13
[INFO] [stdout]    |
[INFO] [stdout] 51 |         let s3 = takes_and_gives_back(s2);  // s2 is moved into
[INFO] [stdout]    |             ^^ help: if this is intentional, prefix it with an underscore: `_s3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r1`
[INFO] [stdout]   --> src/ch4_ownership.rs:78:17
[INFO] [stdout]    |
[INFO] [stdout] 78 |             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/ch4_ownership.rs:82:17
[INFO] [stdout]    |
[INFO] [stdout] 82 |             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: `r1`
[INFO] [stdout]   --> src/ch4_ownership.rs:86:17
[INFO] [stdout]    |
[INFO] [stdout] 86 |             let r1 = &s; // no problem
[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/ch4_ownership.rs:87:17
[INFO] [stdout]    |
[INFO] [stdout] 87 |             let r2 = &s; // no problem
[INFO] [stdout]    |                 ^^ help: if this is intentional, prefix it with an underscore: `_r2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user2`
[INFO] [stdout]   --> src/ch5_structs.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let user2 = User {
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_user2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `black`
[INFO] [stdout]   --> src/ch5_structs.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let black = Color(0, 0, 0);
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_black`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `origin`
[INFO] [stdout]   --> src/ch5_structs.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |     let origin = Point(0, 0, 0);
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ip_type`
[INFO] [stdout]   --> src/ch6_enums.rs:53:10
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn route(ip_type: IpAddrKind) {}
[INFO] [stdout]    |          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ip_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/ch8_collections.rs:31:13
[INFO] [stdout]    |
[INFO] [stdout] 31 |         let mut v = vec![1, 2, 3, 4, 5];
[INFO] [stdout]    |             ----^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/ch8_collections.rs:11:13
[INFO] [stdout]    |
[INFO] [stdout] 11 |         let v: Vec<i32> = Vec::new();
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/ch8_collections.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |         let v = vec![1, 2, 3];
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `third`
[INFO] [stdout]   --> src/ch8_collections.rs:25:13
[INFO] [stdout]    |
[INFO] [stdout] 25 |         let third: &i32 = &v[2];
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_third`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `third`
[INFO] [stdout]   --> src/ch8_collections.rs:26:13
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let third: Option<&i32> = v.get(2);
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_third`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first`
[INFO] [stdout]   --> src/ch8_collections.rs:33:13
[INFO] [stdout]    |
[INFO] [stdout] 33 |         let first = &v[0];
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_first`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row`
[INFO] [stdout]   --> src/ch8_collections.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let row = vec![
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/ch8_collections.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let s = String::from("initial contents");
[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/ch8_collections.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let s = "initial contents".to_string();
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s3`
[INFO] [stdout]   --> src/ch8_collections.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 67 |     let s3 = s1 + &s2; // Note that s1 has been moved here and can no longer be used
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_s3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/ch8_collections.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 |     let s = format!("{}-{}-{}", s1, s2, s3);
[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/ch8_collections.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 76 |     let s = &hello[0..4];
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `score`
[INFO] [stdout]    --> src/ch8_collections.rs:100:17
[INFO] [stdout]     |
[INFO] [stdout] 100 |             let score = scores.get(&team_name);
[INFO] [stdout]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_score`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scores`
[INFO] [stdout]    --> src/ch8_collections.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let scores: HashMap<_, _> = teams.iter().zip(initial_scores.iter()).collect();
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_scores`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/ch10_generic_trait_lifetime.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |         let i = ImportantExcerpt { part: first_sentence };
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/ch10_generic_trait_lifetime.rs:113:58
[INFO] [stdout]     |
[INFO] [stdout] 113 | fn some_function<T: Display + Clone, U: Clone + Display>(t: T, u: U) -> i32 {
[INFO] [stdout]     |                                                          ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]    --> src/ch10_generic_trait_lifetime.rs:113:64
[INFO] [stdout]     |
[INFO] [stdout] 113 | fn some_function<T: Display + Clone, U: Clone + Display>(t: T, u: U) -> i32 {
[INFO] [stdout]     |                                                                ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/ch10_generic_trait_lifetime.rs:117:25
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn some_function2<T, U>(t: T, u: U) -> i32
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]    --> src/ch10_generic_trait_lifetime.rs:117:31
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn some_function2<T, U>(t: T, u: U) -> i32
[INFO] [stdout]     |                               ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v1`
[INFO] [stdout]    --> src/ch13_fp.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |     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: `c1`
[INFO] [stdout]   --> src/ch14_cargo_crates.rs:37:16
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn mix(c1: PrimaryColor, c2: PrimaryColor) -> SecondaryColor {
[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/ch14_cargo_crates.rs:37:34
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn mix(c1: PrimaryColor, c2: PrimaryColor) -> SecondaryColor {
[INFO] [stdout]    |                                  ^^ help: if this is intentional, prefix it with an underscore: `_c2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `list`
[INFO] [stdout]   --> src/ch15_smart_pointers/ch15_1_box.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let list = Cons(1,
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `audio`
[INFO] [stdout]   --> src/ch15_smart_pointers/ch15_1_box.rs:66:21
[INFO] [stdout]    |
[INFO] [stdout] 66 |     fn compress_mp3(audio: &[u8]) -> Vec<u8> { vec![1, 3] }
[INFO] [stdout]    |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_audio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]   --> src/ch15_smart_pointers/ch15_1_box.rs:84:9
[INFO] [stdout]    |
[INFO] [stdout] 84 |     let c = CustomSmartPointer { data: String::from("some data") };
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/ch15_smart_pointers/ch15_4_rc.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let b = Cons(3, a.clone());
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]   --> src/ch15_smart_pointers/ch15_4_rc.rs:24:13
[INFO] [stdout]    |
[INFO] [stdout] 24 |         let c = Cons(4, a.clone());
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r1`
[INFO] [stdout]   --> src/ch15_smart_pointers/ch15_5_ref_cell.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let r1 = s.borrow_mut();
[INFO] [stdout]    |             ^^ help: if this is intentional, prefix it with an underscore: `_r1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `post`
[INFO] [stdout]    --> src/ch17_oop/mod.rs:184:27
[INFO] [stdout]     |
[INFO] [stdout] 184 |     fn content<'a>(&self, post: &'a Post) -> &'a str {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_post`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `content`
[INFO] [stdout]    --> src/ch17_oop/mod.rs:188:24
[INFO] [stdout]     |
[INFO] [stdout] 188 |     fn add_text(&self, content: &mut String, text: &str) {}
[INFO] [stdout]     |                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `text`
[INFO] [stdout]    --> src/ch17_oop/mod.rs:188:46
[INFO] [stdout]     |
[INFO] [stdout] 188 |     fn add_text(&self, content: &mut String, text: &str) {}
[INFO] [stdout]     |                                              ^^^^ help: if this is intentional, prefix it with an underscore: `_text`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/ch18_pattern_match.rs:52:13
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let x = 5;//let PATTERN = EXPRESSION;
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/ch18_pattern_match.rs:53:14
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let (x, y, z) = (1, 2, 3);
[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/ch18_pattern_match.rs:53:17
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let (x, y, z) = (1, 2, 3);
[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/ch18_pattern_match.rs:53:20
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let (x, y, z) = (1, 2, 3);
[INFO] [stdout]    |                    ^ help: if this is intentional, prefix it with an underscore: `_z`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sum_of_squares`
[INFO] [stdout]    --> src/ch18_pattern_match.rs:141:17
[INFO] [stdout]     |
[INFO] [stdout] 141 |             let sum_of_squares: i32 = points
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sum_of_squares`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `feet`
[INFO] [stdout]    --> src/ch18_pattern_match.rs:146:19
[INFO] [stdout]     |
[INFO] [stdout] 146 |             let ((feet, inches), Point {x, y}) = ((3, 10), Point { x: 3, y: -10 });
[INFO] [stdout]     |                   ^^^^ help: if this is intentional, prefix it with an underscore: `_feet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inches`
[INFO] [stdout]    --> src/ch18_pattern_match.rs:146:25
[INFO] [stdout]     |
[INFO] [stdout] 146 |             let ((feet, inches), Point {x, y}) = ((3, 10), Point { x: 3, y: -10 });
[INFO] [stdout]     |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_inches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/ch18_pattern_match.rs:146:41
[INFO] [stdout]     |
[INFO] [stdout] 146 |             let ((feet, inches), Point {x, y}) = ((3, 10), Point { x: 3, y: -10 });
[INFO] [stdout]     |                                         ^ help: try ignoring the field: `x: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/ch18_pattern_match.rs:146:44
[INFO] [stdout]     |
[INFO] [stdout] 146 |             let ((feet, inches), Point {x, y}) = ((3, 10), Point { x: 3, y: -10 });
[INFO] [stdout]     |                                            ^ help: try ignoring the field: `y: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/ch18_pattern_match.rs:160:17
[INFO] [stdout]     |
[INFO] [stdout] 160 |             let y = 10;
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/ch18_pattern_match.rs:245:8
[INFO] [stdout]     |
[INFO] [stdout] 245 | fn foo(x: i32) {
[INFO] [stdout]     |        ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_1_unsafe.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let r = address as *const i32;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj`
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_2_advanced_lifetime.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let obj = Box::new(Bar { x: &num }) as Box<Foo>;
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_obj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `graph`
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:19:37
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn gDistance<N, E, G: GGraph<N, E>>(graph: &G, start: &N, end: &N) -> u32 { 1 }
[INFO] [stdout]    |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_graph`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:19:48
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn gDistance<N, E, G: GGraph<N, E>>(graph: &G, start: &N, end: &N) -> u32 { 1 }
[INFO] [stdout]    |                                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end`
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:19:59
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn gDistance<N, E, G: GGraph<N, E>>(graph: &G, start: &N, end: &N) -> u32 { 1 }
[INFO] [stdout]    |                                                           ^^^ help: if this is intentional, prefix it with an underscore: `_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `graph`
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:28:25
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn aDistance<G: AGraph>(graph: &G, start: &G::Node, end: &G::Node) -> u32 {
[INFO] [stdout]    |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_graph`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:28:36
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn aDistance<G: AGraph>(graph: &G, start: &G::Node, end: &G::Node) -> u32 {
[INFO] [stdout]    |                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end`
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:28:53
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn aDistance<G: AGraph>(graph: &G, start: &G::Node, end: &G::Node) -> u32 {
[INFO] [stdout]    |                                                     ^^^ help: if this is intentional, prefix it with an underscore: `_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `graph`
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:33:19
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn distance<N, E>(graph: &GGraph<N, E>, start: &N, end: &N) -> u32 { 1 }
[INFO] [stdout]    |                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_graph`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:33:41
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn distance<N, E>(graph: &GGraph<N, E>, start: &N, end: &N) -> u32 { 1 }
[INFO] [stdout]    |                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end`
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:33:52
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn distance<N, E>(graph: &GGraph<N, E>, start: &N, end: &N) -> u32 { 1 }
[INFO] [stdout]    |                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `graph`
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn traverse(graph: &AGraph<Node=usize, Edge=(usize, usize)>) {}
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_graph`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_4_advanced_types.rs:18:15
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn generic<T>(t: T){}
[INFO] [stdout]    |               ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_4_advanced_types.rs:19:23
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn generic2<T: Sized>(t: T) {}
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_4_advanced_types.rs:20:24
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn generic3<T: ?Sized>(t: &T) {}
[INFO] [stdout]    |                        ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `list_of_strings`
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_5_advanced_func_closures.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let list_of_strings: Vec<String> = list_of_numbers
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_list_of_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `list_of_strings`
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_5_advanced_func_closures.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let list_of_strings: Vec<String> = list_of_numbers
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_list_of_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `makes_copy` is never used
[INFO] [stdout]    --> src/ch4_ownership.rs:111:4
[INFO] [stdout]     |
[INFO] [stdout] 111 | fn makes_copy(some_integer: i32) {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `username`, `sign_in_count`, and `active` are never read
[INFO] [stdout]  --> src/ch5_structs.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | struct User {
[INFO] [stdout]   |        ---- fields in this struct
[INFO] [stdout] 2 |     username: String,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 3 |     email: String,
[INFO] [stdout] 4 |     sign_in_count: u64,
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 5 |     active: bool,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]  --> src/ch5_structs.rs:9:14
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct Color(i32, i32, i32);
[INFO] [stdout]   |        ----- ^^^  ^^^  ^^^
[INFO] [stdout]   |        |
[INFO] [stdout]   |        fields in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider removing these fields
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]   --> src/ch5_structs.rs:11:14
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct Point(i32, i32, i32);
[INFO] [stdout]    |        ----- ^^^  ^^^  ^^^
[INFO] [stdout]    |        |
[INFO] [stdout]    |        fields in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing these fields
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_user` is never used
[INFO] [stdout]   --> src/ch5_structs.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn build_user(email: String, username: String) -> User {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, `2`, and `3` are never read
[INFO] [stdout]  --> src/ch6_enums.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 |     V4(u8, u8, u8, u8),
[INFO] [stdout]   |     -- ^^  ^^  ^^  ^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     fields in this variant
[INFO] [stdout]   |
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]   |
[INFO] [stdout] 2 -     V4(u8, u8, u8, u8),
[INFO] [stdout] 2 +     V4((), (), (), ()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/ch6_enums.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 |     V6(String),
[INFO] [stdout]   |     -- ^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 3 -     V6(String),
[INFO] [stdout] 3 +     V6(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UsState` is never used
[INFO] [stdout]  --> src/ch6_enums.rs:7:6
[INFO] [stdout]   |
[INFO] [stdout] 7 | enum UsState {
[INFO] [stdout]   |      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Coin` is never used
[INFO] [stdout]   --> src/ch6_enums.rs:13:6
[INFO] [stdout]    |
[INFO] [stdout] 13 | enum Coin {
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `value_in_cents` is never used
[INFO] [stdout]   --> src/ch6_enums.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn value_in_cents(coin: Coin) -> u32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `nested_modules` is never used
[INFO] [stdout]   --> src/ch7_modules.rs:21:20
[INFO] [stdout]    |
[INFO] [stdout] 21 |             pub fn nested_modules() {}
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/ch8_collections.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 |         Int(i32),
[INFO] [stdout]   |         --- ^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         field in this variant
[INFO] [stdout]   |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 5 -         Int(i32),
[INFO] [stdout] 5 +         Int(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/ch8_collections.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 |         Float(f64),
[INFO] [stdout]   |         ----- ^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         field in this variant
[INFO] [stdout]   |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 6 -         Float(f64),
[INFO] [stdout] 6 +         Float(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/ch8_collections.rs:7:14
[INFO] [stdout]   |
[INFO] [stdout] 7 |         Text(String),
[INFO] [stdout]   |         ---- ^^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         field in this variant
[INFO] [stdout]   |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 7 -         Text(String),
[INFO] [stdout] 7 +         Text(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_username_from_file` is never used
[INFO] [stdout]   --> src/ch9_error.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn read_username_from_file() -> Result<String, io::Error> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_username_from_file2` is never used
[INFO] [stdout]   --> src/ch9_error.rs:60:4
[INFO] [stdout]    |
[INFO] [stdout] 60 | fn read_username_from_file2() -> Result<String, io::Error> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_username_from_file3` is never used
[INFO] [stdout]   --> src/ch9_error.rs:67:4
[INFO] [stdout]    |
[INFO] [stdout] 67 | fn read_username_from_file3() -> Result<String, io::Error> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest_with_an_announcement` is never used
[INFO] [stdout]   --> src/ch10_generic_trait_lifetime.rs:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | fn longest_with_an_announcement<'a, T>(x: &'a str, y: &'a str, ann: T) -> &'a str
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `part` is never read
[INFO] [stdout]   --> src/ch10_generic_trait_lifetime.rs:95:5
[INFO] [stdout]    |
[INFO] [stdout] 94 | struct ImportantExcerpt<'a> {
[INFO] [stdout]    |        ---------------- field in this struct
[INFO] [stdout] 95 |     part: &'a str,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `level` and `announce_and_return_part` are never used
[INFO] [stdout]    --> src/ch10_generic_trait_lifetime.rs:99:8
[INFO] [stdout]     |
[INFO] [stdout]  98 | impl<'a> ImportantExcerpt<'a> {
[INFO] [stdout]     | ----------------------------- methods in this implementation
[INFO] [stdout]  99 |     fn level(&self) -> i32 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     fn announce_and_return_part(&self, announcement: &str) -> &str {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify` is never used
[INFO] [stdout]    --> src/ch10_generic_trait_lifetime.rs:109:4
[INFO] [stdout]     |
[INFO] [stdout] 109 | fn notify<T: Summarizable + Display>(item: T) {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `some_function` is never used
[INFO] [stdout]    --> src/ch10_generic_trait_lifetime.rs:113:4
[INFO] [stdout]     |
[INFO] [stdout] 113 | fn some_function<T: Display + Clone, U: Clone + Display>(t: T, u: U) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `some_function2` is never used
[INFO] [stdout]    --> src/ch10_generic_trait_lifetime.rs:117:4
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn some_function2<T, U>(t: T, u: U) -> i32
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]    --> src/ch10_generic_trait_lifetime.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | struct Point<T> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `x` is never used
[INFO] [stdout]    --> src/ch10_generic_trait_lifetime.rs:153:8
[INFO] [stdout]     |
[INFO] [stdout] 152 | impl<T> Point<T> {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] 153 |     fn x(&self) -> &T {
[INFO] [stdout]     |        ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point2` is never constructed
[INFO] [stdout]    --> src/ch10_generic_trait_lifetime.rs:158:8
[INFO] [stdout]     |
[INFO] [stdout] 158 | struct Point2<T, U> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `mixup` is never used
[INFO] [stdout]    --> src/ch10_generic_trait_lifetime.rs:164:8
[INFO] [stdout]     |
[INFO] [stdout] 163 | impl<T, U> Point2<T, U> {
[INFO] [stdout]     | ----------------------- method in this implementation
[INFO] [stdout] 164 |     fn mixup<V, W>(self, other: Point2<V, W>) -> Point2<T, W> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Option` is never used
[INFO] [stdout]    --> src/ch10_generic_trait_lifetime.rs:172:6
[INFO] [stdout]     |
[INFO] [stdout] 172 | enum Option<T> {
[INFO] [stdout]     |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NewsArticle` is never constructed
[INFO] [stdout]    --> src/ch10_generic_trait_lifetime.rs:185:8
[INFO] [stdout]     |
[INFO] [stdout] 185 | struct NewsArticle {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `reply` and `retweet` are never read
[INFO] [stdout]    --> src/ch10_generic_trait_lifetime.rs:201:9
[INFO] [stdout]     |
[INFO] [stdout] 198 | struct Tweet {
[INFO] [stdout]     |        ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub reply: bool,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 202 |     pub retweet: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `value` is never read
[INFO] [stdout]   --> src/ch11_test.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | struct Guess {
[INFO] [stdout]    |        ----- field in this struct
[INFO] [stdout] 25 |     value: u32,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `1` is never read
[INFO] [stdout]  --> src/ch15_smart_pointers/ch15_1_box.rs:9:13
[INFO] [stdout]   |
[INFO] [stdout] 9 |     Cons(T, Box<List<T>>),
[INFO] [stdout]   |     ----    ^^^^^^^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 9 -     Cons(T, Box<List<T>>),
[INFO] [stdout] 9 +     Cons(T, ()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `artist` and `title` are never read
[INFO] [stdout]   --> src/ch15_smart_pointers/ch15_1_box.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | struct Mp3 {
[INFO] [stdout]    |        --- fields in this struct
[INFO] [stdout] 25 |     audio: Vec<u8>,
[INFO] [stdout] 26 |     artist: Option<String>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 27 |     title: Option<String>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data` is never read
[INFO] [stdout]   --> src/ch15_smart_pointers/ch15_1_box.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | struct CustomSmartPointer {
[INFO] [stdout]    |        ------------------ field in this struct
[INFO] [stdout] 73 |     data: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `1` is never read
[INFO] [stdout]  --> src/ch15_smart_pointers/ch15_4_rc.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Cons(T, Rc<List<T>>),
[INFO] [stdout]   |     ----    ^^^^^^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 7 -     Cons(T, Rc<List<T>>),
[INFO] [stdout] 7 +     Cons(T, ()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/ch15_smart_pointers/ch15_5_ref_cell.rs:37:10
[INFO] [stdout]    |
[INFO] [stdout] 37 |     Cons(Rc<RefCell<i32>>, Rc<List>),
[INFO] [stdout]    |     ---- ^^^^^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `List` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 37 -     Cons(Rc<RefCell<i32>>, Rc<List>),
[INFO] [stdout] 37 +     Cons((), ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/ch15_smart_pointers/ch15_6_ref_cycle.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 |     Cons(i32, RefCell<Rc<List>>),
[INFO] [stdout]   |     ---- ^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `List` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 3 -     Cons(i32, RefCell<Rc<List>>),
[INFO] [stdout] 3 +     Cons((), RefCell<Rc<List>>),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `value` and `children` are never read
[INFO] [stdout]   --> src/ch15_smart_pointers/ch15_6_ref_cycle.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 47 | struct Node {
[INFO] [stdout]    |        ---- fields in this struct
[INFO] [stdout] 48 |     value: i32,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 49 |     parent: RefCell<Weak<Node>>,
[INFO] [stdout] 50 |     children: RefCell<Vec<Rc<Node>>>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Node` 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 `AveragedCollection` is never constructed
[INFO] [stdout]  --> src/ch17_oop/mod.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct AveragedCollection {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add`, `remove`, `average`, and `update_average` are never used
[INFO] [stdout]   --> src/ch17_oop/mod.rs:8:12
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl AveragedCollection {
[INFO] [stdout]    | ----------------------- methods in this implementation
[INFO] [stdout]  8 |     pub fn add(&mut self, value: i32) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub fn remove(&mut self) -> Option<i32> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn average(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     fn update_average(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `width`, `height`, and `label` are never read
[INFO] [stdout]   --> src/ch17_oop/mod.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct Button {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 53 |     pub width: u32,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 54 |     pub height: u32,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 55 |     pub label: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Button` 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 `width`, `height`, and `options` are never read
[INFO] [stdout]   --> src/ch17_oop/mod.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 65 | struct SelectBox {
[INFO] [stdout]    |        --------- fields in this struct
[INFO] [stdout] 66 |     width: u32,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 67 |     height: u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 68 |     options: Vec<String>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SelectBox` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reject` is never used
[INFO] [stdout]   --> src/ch17_oop/encoding_states_as_type.rs:81:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | impl PendingReviewPost {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 81 |     fn reject(self) -> DraftPost {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `foo` is never used
[INFO] [stdout]    --> src/ch18_pattern_match.rs:245:4
[INFO] [stdout]     |
[INFO] [stdout] 245 | fn foo(x: i32) {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Foo` is never used
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_1_unsafe.rs:93:14
[INFO] [stdout]    |
[INFO] [stdout] 93 | unsafe trait Foo {}
[INFO] [stdout]    |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Context` is never constructed
[INFO] [stdout]  --> src/ch19_advanced_feature/ch19_2_advanced_lifetime.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | struct Context<'s>(&'s str);
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Parser` is never constructed
[INFO] [stdout]  --> src/ch19_advanced_feature/ch19_2_advanced_lifetime.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Parser<'c, 's: 'c> {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `parse` is never used
[INFO] [stdout]  --> src/ch19_advanced_feature/ch19_2_advanced_lifetime.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | impl<'c, 's> Parser<'c, 's> {
[INFO] [stdout]   | --------------------------- method in this implementation
[INFO] [stdout] 9 |     fn parse(&self) -> Result<(), &'s str> {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_context` is never used
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_2_advanced_lifetime.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn parse_context(context: Context) -> Result<(), &str> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Ref` is never constructed
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_2_advanced_lifetime.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct Ref<'a, T: 'a>(&'a T);
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `x` is never read
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_2_advanced_lifetime.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | struct Bar<'a> {
[INFO] [stdout]    |        --- field in this struct
[INFO] [stdout] 25 |     x: &'a i32,
[INFO] [stdout]    |     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Foo` is never used
[INFO] [stdout]  --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:2:7
[INFO] [stdout]   |
[INFO] [stdout] 2 | trait Foo {
[INFO] [stdout]   |       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Bar` is never used
[INFO] [stdout]  --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | trait Bar<T> {
[INFO] [stdout]   |       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GGraph` is never used
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | trait GGraph<Node, Edge> {
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gDistance` is never used
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn gDistance<N, E, G: GGraph<N, E>>(graph: &G, start: &N, end: &N) -> u32 { 1 }
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AGraph` is never used
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | trait AGraph {
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `aDistance` is never used
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn aDistance<G: AGraph>(graph: &G, start: &G::Node, end: &G::Node) -> u32 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distance` is never used
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:33:4
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn distance<N, E>(graph: &GGraph<N, E>, start: &N, end: &N) -> u32 { 1 }
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `traverse` is never used
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:35:4
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn traverse(graph: &AGraph<Node=usize, Edge=(usize, usize)>) {}
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Millimeters` is never constructed
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:64:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | struct Millimeters(u32);
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Meters` is never constructed
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | struct Meters(u32);
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `OutlinePrint` is never used
[INFO] [stdout]    --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:125:7
[INFO] [stdout]     |
[INFO] [stdout] 125 | trait OutlinePrint: Display {
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Wrapper` is never constructed
[INFO] [stdout]    --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:139:8
[INFO] [stdout]     |
[INFO] [stdout] 139 | struct Wrapper(Vec<String>);
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Kilometers` is never used
[INFO] [stdout]  --> src/ch19_advanced_feature/ch19_4_advanced_types.rs:1:6
[INFO] [stdout]   |
[INFO] [stdout] 1 | type Kilometers = i32;
[INFO] [stdout]   |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Thunk` is never used
[INFO] [stdout]  --> src/ch19_advanced_feature/ch19_4_advanced_types.rs:2:6
[INFO] [stdout]   |
[INFO] [stdout] 2 | type Thunk = Box<FnOnce() + Send + 'static>;
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bar` is never used
[INFO] [stdout]  --> src/ch19_advanced_feature/ch19_4_advanced_types.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn bar() -> ! {
[INFO] [stdout]   |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generic` is never used
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_4_advanced_types.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn generic<T>(t: T){}
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generic2` is never used
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_4_advanced_types.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn generic2<T: Sized>(t: T) {}
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generic3` is never used
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_4_advanced_types.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn generic3<T: ?Sized>(t: &T) {}
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `returns_closure` is never used
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_5_advanced_func_closures.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn returns_closure() -> Box<Fn(i32) -> i32> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/ch16_concurrency/ch16_1_threads.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     handle.join();
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let _ = handle.join();
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/ch16_concurrency/ch16_1_threads.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     handle.join();
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let _ = handle.join();
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_1_unsafe.rs:89:33
[INFO] [stdout]    |
[INFO] [stdout] 89 |         println!("COUNTER: {}", COUNTER);
[INFO] [stdout]    |                                 ^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_2_advanced_lifetime.rs:14:27
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn parse_context(context: Context) -> Result<(), &str> {
[INFO] [stdout]    |                           ^^^^^^^                ^^^^ the same lifetime is elided here
[INFO] [stdout]    |                           |
[INFO] [stdout]    |                           the lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn parse_context(context: Context<'_>) -> Result<(), &str> {
[INFO] [stdout]    |                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gDistance` should have a snake case name
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn gDistance<N, E, G: GGraph<N, E>>(graph: &G, start: &N, end: &N) -> u32 { 1 }
[INFO] [stdout]    |    ^^^^^^^^^ help: convert the identifier to snake case: `g_distance`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `aDistance` should have a snake case name
[INFO] [stdout]   --> src/ch19_advanced_feature/ch19_3_advanced_traits.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn aDistance<G: AGraph>(graph: &G, start: &G::Node, end: &G::Node) -> u32 {
[INFO] [stdout]    |    ^^^^^^^^^ help: convert the identifier to snake case: `a_distance`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.36s
[INFO] running `Command { std: "docker" "inspect" "ad10808bcf92bd937bf707cb8c78dfd780204b3a3d14a1d493465d8925a2604a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ad10808bcf92bd937bf707cb8c78dfd780204b3a3d14a1d493465d8925a2604a", kill_on_drop: false }`
[INFO] [stdout] ad10808bcf92bd937bf707cb8c78dfd780204b3a3d14a1d493465d8925a2604a
