[INFO] cloning repository https://github.com/Milo-Shen/Rust-Course
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Milo-Shen/Rust-Course" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMilo-Shen%2FRust-Course", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMilo-Shen%2FRust-Course'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0143f8e6bb9911d9f98fb682886ca628d5679e41
[INFO] checking Milo-Shen/Rust-Course against master#507271bc119683008ec719ecee48814e8ac86c65 for pr-146440
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMilo-Shen%2FRust-Course" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Milo-Shen/Rust-Course
[INFO] finished tweaking git repo https://github.com/Milo-Shen/Rust-Course
[INFO] tweaked toml for git repo https://github.com/Milo-Shen/Rust-Course written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Milo-Shen/Rust-Course on toolchain 507271bc119683008ec719ecee48814e8ac86c65
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+507271bc119683008ec719ecee48814e8ac86c65" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Milo-Shen/Rust-Course 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" "+507271bc119683008ec719ecee48814e8ac86c65" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+507271bc119683008ec719ecee48814e8ac86c65" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2f41887e548f7a4352f2e31aea0206f1a80a77683391f87c5d77559929fddcc4
[INFO] running `Command { std: "docker" "start" "-a" "2f41887e548f7a4352f2e31aea0206f1a80a77683391f87c5d77559929fddcc4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2f41887e548f7a4352f2e31aea0206f1a80a77683391f87c5d77559929fddcc4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2f41887e548f7a4352f2e31aea0206f1a80a77683391f87c5d77559929fddcc4", kill_on_drop: false }`
[INFO] [stdout] 2f41887e548f7a4352f2e31aea0206f1a80a77683391f87c5d77559929fddcc4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+507271bc119683008ec719ecee48814e8ac86c65" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cf823dd0e07a5a1cf24900cdb2ed74550890e6fc54236656aa175e34628794e5
[INFO] running `Command { std: "docker" "start" "-a" "cf823dd0e07a5a1cf24900cdb2ed74550890e6fc54236656aa175e34628794e5", kill_on_drop: false }`
[INFO] [stderr]     Checking rust_course v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: field `content` is never read
[INFO] [stdout]    --> src/lib.rs:272:5
[INFO] [stdout]     |
[INFO] [stdout] 271 | pub struct DraftPost {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 272 |     content: 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 `fix_order` is never used
[INFO] [stdout]   --> src/front_of_house.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn fix_order() {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `seasonal_fruit` is never read
[INFO] [stdout]   --> src/lib.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub struct Breakfast {
[INFO] [stdout]    |                --------- field in this struct
[INFO] [stdout] 30 |         pub toast: String,
[INFO] [stdout] 31 |         seasonal_fruit: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Breakfast` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Appetizer` is never used
[INFO] [stdout]   --> src/lib.rs:36:14
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub enum Appetizer {
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `content` is never read
[INFO] [stdout]    --> src/lib.rs:272:5
[INFO] [stdout]     |
[INFO] [stdout] 271 | pub struct DraftPost {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 272 |     content: 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 `fix_order` is never used
[INFO] [stdout]   --> src/front_of_house.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn fix_order() {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `seasonal_fruit` is never read
[INFO] [stdout]   --> src/lib.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub struct Breakfast {
[INFO] [stdout]    |                --------- field in this struct
[INFO] [stdout] 30 |         pub toast: String,
[INFO] [stdout] 31 |         seasonal_fruit: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Breakfast` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Appetizer` is never used
[INFO] [stdout]   --> src/lib.rs:36:14
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub enum Appetizer {
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Result`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Result as IoResult`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io::Result as IoResult;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Write` and `self`
[INFO] [stdout]  --> src/main.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::io::{self, Write};
[INFO] [stdout]   |               ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_course::eat_at_restaurant`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use rust_course::eat_at_restaurant;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `write`
[INFO] [stdout]  --> src/advanced_trait.rs:3:16
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fmt::{write, Display, Formatter};
[INFO] [stdout]   |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::Output`
[INFO] [stdout]  --> src/advanced_trait.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::process::Output;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fs`
[INFO] [stdout]  --> src/example_grep.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::{fs, process};
[INFO] [stdout]   |           ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::E`
[INFO] [stdout]  --> src/iterator_5.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::f32::consts::E;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ref`
[INFO] [stdout]  --> src/memory_leak.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::{Ref, RefCell};
[INFO] [stdout]   |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]  --> src/result.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::JoinHandle`
[INFO] [stdout]  --> src/threads_1.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::thread::JoinHandle;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Result`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Result as IoResult`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io::Result as IoResult;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Write` and `self`
[INFO] [stdout]  --> src/main.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::io::{self, Write};
[INFO] [stdout]   |               ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_course::eat_at_restaurant`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use rust_course::eat_at_restaurant;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `write`
[INFO] [stdout]  --> src/advanced_trait.rs:3:16
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fmt::{write, Display, Formatter};
[INFO] [stdout]   |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::Output`
[INFO] [stdout]  --> src/advanced_trait.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::process::Output;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fs`
[INFO] [stdout]  --> src/example_grep.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::{fs, process};
[INFO] [stdout]   |           ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::E`
[INFO] [stdout]  --> src/iterator_5.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::f32::consts::E;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ref`
[INFO] [stdout]  --> src/memory_leak.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::{Ref, RefCell};
[INFO] [stdout]   |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]  --> src/result.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::JoinHandle`
[INFO] [stdout]  --> src/threads_1.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::thread::JoinHandle;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `borrow::BorrowMut`
[INFO] [stdout]  --> src/refcell.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{borrow::BorrowMut, cell::RefCell};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/advanced_function.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let v = Status::Value(3);
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `point_1`
[INFO] [stdout]   --> src/advanced_trait.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 90 |     let point_1 = Point { x: 1, y: 2 };
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_point_1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `point_2`
[INFO] [stdout]   --> src/advanced_trait.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 91 |     let point_2 = Point { x: 3, y: 4 };
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_point_2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/advanced_type.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let f: Box<dyn Fn() + Send + 'static> = Box::new(|| println!("hello world"));
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/advanced_type.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let f: Thunk = Box::new(|| println!("hello world"));
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/advanced_type.rs:26:25
[INFO] [stdout]    |
[INFO] [stdout] 26 |     fn _takes_long_type(f: Box<dyn Fn() + Send + 'static>) {}
[INFO] [stdout]    |                         ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/advanced_type.rs:35:24
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn takes_long_type(f: Thunk) {}
[INFO] [stdout]    |                        ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/advanced_type.rs:121:19
[INFO] [stdout]     |
[INFO] [stdout] 121 |     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/advanced_type.rs:127:28
[INFO] [stdout]     |
[INFO] [stdout] 127 |     fn _generic<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: `s`
[INFO] [stdout]   --> src/closure_1.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let s = example_closure("Hello Closure");
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/closure_2.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let mut string_1 = String::from("FnOnce");
[INFO] [stdout]    |         ----^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/closure_2.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |     let mut string_1 = String::from("FnOnce");
[INFO] [stdout]    |         ----^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/closure_2.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |     let x = vec![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: `equal_to_str`
[INFO] [stdout]   --> src/closure_2.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let equal_to_str = move |z: String| z == string_1;
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_equal_to_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/drop_trait.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let a = CustomSmartPointer {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/drop_trait.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let b = CustomSmartPointer {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]   --> src/drop_trait.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |     let d = CustomSmartPointer {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `myv4`
[INFO] [stdout]   --> src/enums.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let myv4 = IpAddKind::V4;
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_myv4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `home`
[INFO] [stdout]   --> src/enums.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |     let home = IpAddressKind::V4(127, 0, 0, 1);
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_home`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `home_another`
[INFO] [stdout]   --> src/enums.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let home_another = IpAddressKind::V4(127, 0, 0, 2);
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_home_another`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `some_number`
[INFO] [stdout]   --> src/enums.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let some_number = Some(5);
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_some_number`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `some_string`
[INFO] [stdout]   --> src/enums.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let some_string = Some("A String");
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_some_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `absent_number`
[INFO] [stdout]   --> src/enums.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let absent_number: Option<i32> = None;
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_absent_number`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ip_kind`
[INFO] [stdout]   --> src/enums.rs:16:14
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn route(ip_kind: IpAddKind) {}
[INFO] [stdout]    |              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ip_kind`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/functions.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let x = 32;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `empty_result`
[INFO] [stdout]   --> src/functions.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let empty_result = empty_function();
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_empty_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/generics.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let mut another_point = point.reference();
[INFO] [stdout]    |         ----^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/hashmap.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let mut map: HashMap<i32, &String> = HashMap::new();
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inserted_yellow`
[INFO] [stdout]   --> src/hashmap.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let inserted_yellow = scores.entry(String::from("Yellow"));
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_inserted_yellow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inserted_blue`
[INFO] [stdout]   --> src/hashmap.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |     let inserted_blue = scores.entry(String::from("Blue")).or_insert(50);
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_inserted_blue`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `str`
[INFO] [stdout]    --> src/hashmap.rs:101:13
[INFO] [stdout]     |
[INFO] [stdout] 101 |         let str = String::from("temporary value");
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/iterator_1.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |     let mut v4 = vec!["1".to_string(), "2".to_string(), "3".to_string()];
[INFO] [stdout]    |         ----^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v2_iter_first`
[INFO] [stdout]   --> src/iterator_1.rs:61:9
[INFO] [stdout]    |
[INFO] [stdout] 61 |     let v2_iter_first = v2_iter.next().unwrap();
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_v2_iter_first`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/learning_trait.rs:197:9
[INFO] [stdout]     |
[INFO] [stdout] 197 |     let b = &a;
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/learning_trait.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 |         b: U,
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/learning_trait.rs:119:48
[INFO] [stdout]     |
[INFO] [stdout] 119 |     pub fn notify_bound_with_where<T, U>(a: T, b: U) -> String
[INFO] [stdout]     |                                                ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]   --> src/lifecycle_1.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let r: i32;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/lifecycle_1.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |         let x = 5;
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lifecycle_2.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let mut result: &str = "string_2: borrowed value does not live long enough";
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `string_1`
[INFO] [stdout]   --> src/lifecycle_2.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let string_1 = String::from("Hello World");
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_string_1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `string_2`
[INFO] [stdout]   --> src/lifecycle_2.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let string_2 = String::from("Jack");
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_string_2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]  --> src/lifecycle_3.rs:8:34
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn longest_1<'a>(x: &'a str, y: &str) -> &'a str {
[INFO] [stdout]   |                                  ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/lifecycle_3.rs:15:34
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn longest_2<'a>(x: &'a str, y: &str) -> &'a str {
[INFO] [stdout]    |                                  ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]   --> src/lifecycle_3.rs:16:13
[INFO] [stdout]    |
[INFO] [stdout] 16 |         let result = String::from("悬垂引用");
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/lifecycle_3.rs:24:18
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn longest_3(x: &str, y: &str) -> String {
[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/lifecycle_3.rs:24:27
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn longest_3(x: &str, y: &str) -> String {
[INFO] [stdout]    |                           ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/lifecycle_4.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let s: &'static str = "I have a static lifetime";
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/ownership.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let mut x = String::from("hello");
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/ownership.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let y = {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `another_str`
[INFO] [stdout]   --> src/ownership.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let another_str = name.clone();
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_another_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/ownership.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let s = String::from("hello");
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s2`
[INFO] [stdout]   --> src/ownership.rs:69:9
[INFO] [stdout]    |
[INFO] [stdout] 69 |     let s2 = s1;
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_s2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/ownership.rs:77:9
[INFO] [stdout]    |
[INFO] [stdout] 77 |     let y = x;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s2`
[INFO] [stdout]   --> src/ownership.rs:86:9
[INFO] [stdout]    |
[INFO] [stdout] 86 |     let s2 = s1;
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_s2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/ownership.rs:104:9
[INFO] [stdout]     |
[INFO] [stdout] 104 |     let n = x; // Copy x的值(即3)到变量n，n现在拥有一个3，但x仍然拥有自己的3
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tup`
[INFO] [stdout]    --> src/ownership.rs:203:9
[INFO] [stdout]     |
[INFO] [stdout] 203 |     let tup = (5, String::from("hello"));
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_tup`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/ownership.rs:225:10
[INFO] [stdout]     |
[INFO] [stdout] 225 |     let (x, _) = tup;
[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/ownership.rs:229:10
[INFO] [stdout]     |
[INFO] [stdout] 229 |     let (x, y) = tup.clone();
[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/ownership.rs:229:13
[INFO] [stdout]     |
[INFO] [stdout] 229 |     let (x, y) = tup.clone();
[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/ownership.rs:233:10
[INFO] [stdout]     |
[INFO] [stdout] 233 |     let (x, ref y) = tup;
[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/ownership.rs:233:13
[INFO] [stdout]     |
[INFO] [stdout] 233 |     let (x, ref y) = tup;
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `str`
[INFO] [stdout]    --> src/ownership.rs:238:10
[INFO] [stdout]     |
[INFO] [stdout] 238 |     let [str, _] = my_vec;
[INFO] [stdout]     |          ^^^ help: if this is intentional, prefix it with an underscore: `_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_a`
[INFO] [stdout]    --> src/ownership.rs:255:9
[INFO] [stdout]     |
[INFO] [stdout] 255 |     let app_a = app.a;
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_app_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/ownership.rs:277:9
[INFO] [stdout]     |
[INFO] [stdout] 277 |     let c = b; // Copy引用
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/ownership.rs:284:9
[INFO] [stdout]     |
[INFO] [stdout] 284 |     let c = b.clone(); // c 的类型是 &Person
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/ownership.rs:295:9
[INFO] [stdout]     |
[INFO] [stdout] 295 |     let c = b.clone(); // c的类型是Person，而不是 &Person
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/ownership.rs:261:15
[INFO] [stdout]     |
[INFO] [stdout] 261 |     fn test_1(a: App) {}
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/ownership.rs:266:15
[INFO] [stdout]     |
[INFO] [stdout] 266 |     fn test_2(a: &App) {}
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arr`
[INFO] [stdout]   --> src/panic.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let arr = vec![1, 2, 3];
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_arr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]   --> src/pattern_matching_2.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 |     if let x = 50 {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]    = help: consider replacing the `if let` with a `let`
[INFO] [stdout]    = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::Borrow`
[INFO] [stdout]    --> src/refcell.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 |     use std::borrow::Borrow;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]   --> src/raw_pointer.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     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 import: `borrow::BorrowMut`
[INFO] [stdout]  --> src/refcell.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{borrow::BorrowMut, cell::RefCell};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/rc.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let a = Cons(1, Rc::clone(&list));
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/rc.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |     let b = Cons(2, Rc::clone(&list));
[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/rc.rs:52:13
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let c = Cons(3, Rc::clone(&list));
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]   --> src/rc.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |     let c = &mut val;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `some_clone`
[INFO] [stdout]   --> src/rc.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 82 |     let some_clone = some_val.clone();
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_some_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `another_clone`
[INFO] [stdout]   --> src/rc.rs:83:9
[INFO] [stdout]    |
[INFO] [stdout] 83 |     let another_clone = Rc::clone(&val);
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_another_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/advanced_function.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let v = Status::Value(3);
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/refcell.rs:97:9
[INFO] [stdout]    |
[INFO] [stdout] 97 |     let x = 5;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `point_1`
[INFO] [stdout]   --> src/advanced_trait.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 90 |     let point_1 = Point { x: 1, y: 2 };
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_point_1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `point_2`
[INFO] [stdout]   --> src/advanced_trait.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 91 |     let point_2 = Point { x: 3, y: 4 };
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_point_2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/result.rs:18:20
[INFO] [stdout]    |
[INFO] [stdout] 18 |         Result::Ok(data) => println!("open file success"),
[INFO] [stdout]    |                    ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/result.rs:19:21
[INFO] [stdout]    |
[INFO] [stdout] 19 |         Result::Err(err) => println!("open file failed"),
[INFO] [stdout]    |                     ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]   --> src/result.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |     let file = match f {
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/result.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let f = File::open("./assets/Jack.txt").unwrap_or_else(|error| {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/result.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |     let f = File::open("./assets/hello.txt").unwrap();
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/advanced_type.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let f: Box<dyn Fn() + Send + 'static> = Box::new(|| println!("hello world"));
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/advanced_type.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let f: Thunk = Box::new(|| println!("hello world"));
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/advanced_type.rs:26:25
[INFO] [stdout]    |
[INFO] [stdout] 26 |     fn _takes_long_type(f: Box<dyn Fn() + Send + 'static>) {}
[INFO] [stdout]    |                         ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/advanced_type.rs:35:24
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn takes_long_type(f: Thunk) {}
[INFO] [stdout]    |                        ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `unbox_str`
[INFO] [stdout]   --> src/smart_pointer_box.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 88 |     let unbox_str = *box_str;
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_unbox_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/advanced_type.rs:121:19
[INFO] [stdout]     |
[INFO] [stdout] 121 |     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/advanced_type.rs:127:28
[INFO] [stdout]     |
[INFO] [stdout] 127 |     fn _generic<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: `s`
[INFO] [stdout]   --> src/closure_1.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let s = example_closure("Hello Closure");
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/string.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let mut s = "Hello String".to_string();
[INFO] [stdout]   |         ----^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/string.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let mut s = String::from("Hello String");
[INFO] [stdout]   |         ----^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/string.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 85 |     let mut string_1: String = " I am a string ".to_string();
[INFO] [stdout]    |         ----^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]  --> src/string.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let mut s = "Hello String".to_string();
[INFO] [stdout]   |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]  --> src/string.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let mut s = String::from("Hello String");
[INFO] [stdout]   |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/string.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let s = String::from("Hello World");
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/closure_2.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let mut string_1 = String::from("FnOnce");
[INFO] [stdout]    |         ----^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/closure_2.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |     let mut string_1 = String::from("FnOnce");
[INFO] [stdout]    |         ----^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/closure_2.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |     let x = vec![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: `equal_to_str`
[INFO] [stdout]   --> src/closure_2.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let equal_to_str = move |z: String| z == string_1;
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_equal_to_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/structs.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let mut jason = User { age: 65, ..jack };
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/structs.rs:103:9
[INFO] [stdout]     |
[INFO] [stdout] 103 |     let mut another_react = &mut rect;
[INFO] [stdout]     |         ----^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `black`
[INFO] [stdout]   --> src/structs.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let black: Color = 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: `yellow`
[INFO] [stdout]   --> src/structs.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let yellow: Color = Color(1, 1, 1);
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_yellow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `point`
[INFO] [stdout]   --> src/structs.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let point: Point = Point(1.0, 1.0, 1.0);
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_point`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `another_react` is assigned to, but never used
[INFO] [stdout]    --> src/structs.rs:104:9
[INFO] [stdout]     |
[INFO] [stdout] 104 |     let mut another_react = another_react.copy();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_another_react` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `another_react` is never read
[INFO] [stdout]    --> src/structs.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 105 |     another_react.width = 10000;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/drop_trait.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let a = CustomSmartPointer {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/drop_trait.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let b = CustomSmartPointer {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]   --> src/drop_trait.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |     let d = CustomSmartPointer {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `myv4`
[INFO] [stdout]   --> src/enums.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let myv4 = IpAddKind::V4;
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_myv4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `home`
[INFO] [stdout]   --> src/enums.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |     let home = IpAddressKind::V4(127, 0, 0, 1);
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_home`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `home_another`
[INFO] [stdout]   --> src/enums.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let home_another = IpAddressKind::V4(127, 0, 0, 2);
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_home_another`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `some_number`
[INFO] [stdout]   --> src/enums.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let some_number = Some(5);
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_some_number`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `some_string`
[INFO] [stdout]   --> src/enums.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let some_string = Some("A String");
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_some_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `absent_number`
[INFO] [stdout]   --> src/enums.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let absent_number: Option<i32> = None;
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_absent_number`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ip_kind`
[INFO] [stdout]   --> src/enums.rs:16:14
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn route(ip_kind: IpAddKind) {}
[INFO] [stdout]    |              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ip_kind`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]   --> src/unsafe_rust.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |     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: `a`
[INFO] [stdout]    --> src/unsafe_rust.rs:141:10
[INFO] [stdout]     |
[INFO] [stdout] 141 |     let (a, b) = r.split_at_mut(3);
[INFO] [stdout]     |          ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/unsafe_rust.rs:141:13
[INFO] [stdout]     |
[INFO] [stdout] 141 |     let (a, b) = r.split_at_mut(3);
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/functions.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let x = 32;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `empty_result`
[INFO] [stdout]   --> src/functions.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let empty_result = empty_function();
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_empty_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/variables.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let mut array_c = [1, 2];
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/generics.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let mut another_point = point.reference();
[INFO] [stdout]    |         ----^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]  --> src/vector.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     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_slice`
[INFO] [stdout]   --> src/vector.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let v_slice = &v[..];
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_v_slice`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v_slice_1`
[INFO] [stdout]   --> src/vector.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let v_slice_1: &[i32] = &v;
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_v_slice_1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fix_order` is never used
[INFO] [stdout]   --> src/front_of_house.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn fix_order() {
[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 `add_to_wait_list` is never used
[INFO] [stdout]  --> src/front_of_house/hosting.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub fn add_to_wait_list() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `private_function` is never used
[INFO] [stdout]  --> src/front_of_house/hosting.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn private_function() {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_house` is never used
[INFO] [stdout]   --> src/front_of_house/hosting.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn print_house() {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hello` is never used
[INFO] [stdout]   --> src/front_of_house/hosting.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn hello() {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_advanced_function` is never used
[INFO] [stdout]  --> src/advanced_function.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_advanced_function() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_advanced_trait` is never used
[INFO] [stdout]  --> src/advanced_trait.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn learning_advanced_trait() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `fly` is never used
[INFO] [stdout]    --> src/advanced_trait.rs:205:12
[INFO] [stdout]     |
[INFO] [stdout] 204 |     impl Human {
[INFO] [stdout]     |     ---------- method in this implementation
[INFO] [stdout] 205 |         fn fly(&self) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `baby_name` is never used
[INFO] [stdout]    --> src/advanced_trait.rs:236:12
[INFO] [stdout]     |
[INFO] [stdout] 235 |     impl Dog {
[INFO] [stdout]     |     -------- associated function in this implementation
[INFO] [stdout] 236 |         fn baby_name() -> String {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/hashmap.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let mut map: HashMap<i32, &String> = HashMap::new();
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_advanced_type` is never used
[INFO] [stdout]  --> src/advanced_type.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn learning_advanced_type() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_closure` is never used
[INFO] [stdout]  --> src/closure_1.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn learning_closure() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cache` is never constructed
[INFO] [stdout]   --> src/closure_1.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | struct Cache<T>
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `value`, and `hash_value` are never used
[INFO] [stdout]   --> src/closure_1.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | / impl<T> Cache<T>
[INFO] [stdout] 38 | | where
[INFO] [stdout] 39 | |     T: Fn(u32) -> u32,
[INFO] [stdout]    | |______________________- associated items in this implementation
[INFO] [stdout] 40 |   {
[INFO] [stdout] 41 |       fn new(calculation: T) -> Cache<T> {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |       fn value(&mut self, arg: u32) -> u32 {
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |       fn hash_value(&mut self, arg: u32) -> u32 {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_workout` is never used
[INFO] [stdout]   --> src/closure_1.rs:79:4
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn generate_workout(intensity: u32, random_number: u32) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inserted_yellow`
[INFO] [stdout]   --> src/hashmap.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let inserted_yellow = scores.entry(String::from("Yellow"));
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_inserted_yellow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_closure` is never used
[INFO] [stdout]  --> src/closure_2.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_closure() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_control_flow` is never used
[INFO] [stdout]  --> src/control_flow.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_control_flow() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_deref_trait` is never used
[INFO] [stdout]  --> src/deref_trait_1.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn learning_deref_trait() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inserted_blue`
[INFO] [stdout]   --> src/hashmap.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |     let inserted_blue = scores.entry(String::from("Blue")).or_insert(50);
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_inserted_blue`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `str`
[INFO] [stdout]    --> src/hashmap.rs:101:13
[INFO] [stdout]     |
[INFO] [stdout] 101 |         let str = String::from("temporary value");
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/deref_trait_1.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 32 |     impl<T> MyBox<T> {
[INFO] [stdout]    |     ---------------- associated function in this implementation
[INFO] [stdout] 33 |         fn new(x: T) -> MyBox<T> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_deref_trait` is never used
[INFO] [stdout]  --> src/deref_trait_2.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn learning_deref_trait() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/deref_trait_2.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 |     impl<T> MyBox<T> {
[INFO] [stdout]    |     ---------------- associated function in this implementation
[INFO] [stdout] 19 |         fn new(x: T) -> MyBox<T> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_drop_trait` is never used
[INFO] [stdout]  --> src/drop_trait.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_drop_trait() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_eliminate` is never used
[INFO] [stdout]  --> src/eliminate_duplicate_code.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_eliminate() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_enums` is never used
[INFO] [stdout]  --> src/enums.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_enums() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_grep_example` is never used
[INFO] [stdout]  --> src/example_grep.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn learning_grep_example() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `my_grep` is never used
[INFO] [stdout]   --> src/example_grep.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn my_grep() {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `another_function` is never used
[INFO] [stdout]  --> src/functions.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn another_function(x: i32) {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `empty_function` is never used
[INFO] [stdout]  --> src/functions.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn empty_function() {}
[INFO] [stdout]   |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `plus_five` is never used
[INFO] [stdout]  --> src/functions.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn plus_five(x: i32) -> i32 {
[INFO] [stdout]   |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `plus_six` is never used
[INFO] [stdout]   --> src/functions.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn plus_six(x: i32) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_functions` is never used
[INFO] [stdout]   --> src/functions.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn learning_functions() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_generics` is never used
[INFO] [stdout]  --> src/generics.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_generics() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `reference` and `mix_up` are never used
[INFO] [stdout]   --> src/generics.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 37 |     impl<T, U> Point<T, U> {
[INFO] [stdout]    |     ---------------------- methods in this implementation
[INFO] [stdout] 38 |         fn reference(&mut self) -> &mut Point<T, U> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |         fn mix_up<V, W>(self, other: Point<V, W>) -> Point<T, W> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `specific` is never used
[INFO] [stdout]   --> src/generics.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 51 |     impl Point<i32, i32> {
[INFO] [stdout]    |     -------------------- method in this implementation
[INFO] [stdout] 52 |         fn specific(&self) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_hashmap` is never used
[INFO] [stdout]  --> src/hashmap.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn learning_hashmap() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_iterator` is never used
[INFO] [stdout]  --> src/iterator_1.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_iterator() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_iterator` is never used
[INFO] [stdout]  --> src/iterator_2.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_iterator() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_iterator` is never used
[INFO] [stdout]  --> src/iterator_3.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_iterator() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_iterator` is never used
[INFO] [stdout]  --> src/iterator_4.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_iterator() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/iterator_4.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 11 |     impl Counter {
[INFO] [stdout]    |     ------------ associated function in this implementation
[INFO] [stdout] 12 |         // 该函数是一个关联函数
[INFO] [stdout] 13 |         fn new() -> Counter {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_iterator` is never used
[INFO] [stdout]  --> src/iterator_5.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn learning_iterator() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `new_iterator` are never used
[INFO] [stdout]   --> src/iterator_5.rs:17:16
[INFO] [stdout]    |
[INFO] [stdout] 14 |     impl Config {
[INFO] [stdout]    |     ----------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 17 |         pub fn new(args: &[String]) -> Result<Config, &'static str> {
[INFO] [stdout]    |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |         pub fn new_iterator(mut args: std::env::Args) -> Result<Config, &'static str> {
[INFO] [stdout]    |                ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_iterator` is never used
[INFO] [stdout]  --> src/iterator_6.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_iterator() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_macros` is never used
[INFO] [stdout]  --> src/learn_macro.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_macros() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_pub_use` is never used
[INFO] [stdout]  --> src/learning_pub_use.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn learning_pub_use() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_tests` is never used
[INFO] [stdout]  --> src/learning_test.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_tests() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_two` is never used
[INFO] [stdout]   --> src/learning_test.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn add_two(a: i32) -> i32 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `internal_adder` is never used
[INFO] [stdout]   --> src/learning_test.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn internal_adder(a: i32, b: i32) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Summary` is never used
[INFO] [stdout]  --> src/learning_trait.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | trait Summary {
[INFO] [stdout]   |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NewsArticle` is never constructed
[INFO] [stdout]   --> src/learning_trait.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | struct NewsArticle {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tweet` is never constructed
[INFO] [stdout]   --> src/learning_trait.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | struct Tweet {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_trait` is never used
[INFO] [stdout]   --> src/learning_trait.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub fn learning_trait() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/learning_trait.rs:210:12
[INFO] [stdout]     |
[INFO] [stdout] 209 |     impl<T> Pair<T> {
[INFO] [stdout]     |     --------------- associated function in this implementation
[INFO] [stdout] 210 |         fn new(x: T, y: T) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `cmp_display` is never used
[INFO] [stdout]    --> src/learning_trait.rs:216:12
[INFO] [stdout]     |
[INFO] [stdout] 215 |     impl<T: Display + PartialOrd> Pair<T> {
[INFO] [stdout]     |     ------------------------------------- method in this implementation
[INFO] [stdout] 216 |         fn cmp_display(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/iterator_1.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |     let mut v4 = vec!["1".to_string(), "2".to_string(), "3".to_string()];
[INFO] [stdout]    |         ----^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_lifecycle` is never used
[INFO] [stdout]  --> src/lifecycle_1.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_lifecycle() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v2_iter_first`
[INFO] [stdout]   --> src/iterator_1.rs:61:9
[INFO] [stdout]    |
[INFO] [stdout] 61 |     let v2_iter_first = v2_iter.next().unwrap();
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_v2_iter_first`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_lifecycle` is never used
[INFO] [stdout]  --> src/lifecycle_2.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_lifecycle() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_lifecycle` is never used
[INFO] [stdout]  --> src/lifecycle_3.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_lifecycle() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_lifecycle` is never used
[INFO] [stdout]  --> src/lifecycle_4.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn learning_lifecycle() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `level` and `announce` are never used
[INFO] [stdout]   --> src/lifecycle_4.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 23 |     impl<'a> ImportantExcerpt<'a> {
[INFO] [stdout]    |     ----------------------------- methods in this implementation
[INFO] [stdout] 24 |         // 因为这边返回值不是引用，所以无需为返回值申明生命周期
[INFO] [stdout] 25 |         fn level(&self) -> i32 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |         fn announce(&self, announcement: &str) -> &str {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_match` is never used
[INFO] [stdout]  --> src/match_syntax.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_match() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `List` is never used
[INFO] [stdout]  --> src/memory_leak.rs:6:6
[INFO] [stdout]   |
[INFO] [stdout] 6 | enum List {
[INFO] [stdout]   |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `tail` is never used
[INFO] [stdout]   --> src/memory_leak.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl List {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 14 |     fn tail(&self) -> Option<&RefCell<Rc<List>>> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_memory_leak` is never used
[INFO] [stdout]   --> src/memory_leak.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn learning_memory_leak() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_oop` is never used
[INFO] [stdout]  --> src/oop_1.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn learning_oop() {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Draw` is never used
[INFO] [stdout]  --> src/oop_2.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub trait Draw {
[INFO] [stdout]   |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Clone` is never used
[INFO] [stdout]  --> src/oop_2.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub trait Clone {
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Screen` is never constructed
[INFO] [stdout]  --> src/oop_2.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct Screen {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `run` is never used
[INFO] [stdout]   --> src/oop_2.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Screen {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 21 |     pub fn run(&self) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Button` is never constructed
[INFO] [stdout]   --> src/oop_2.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct Button {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SelectBox` is never constructed
[INFO] [stdout]   --> src/oop_2.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | struct SelectBox {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_oop` is never used
[INFO] [stdout]   --> src/oop_2.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn learning_oop() {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_oop` is never used
[INFO] [stdout]  --> src/oop_3.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_oop() {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `take_ownership` is never used
[INFO] [stdout]  --> src/ownership.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn take_ownership(x: String) {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `take_ownership_vec` is never used
[INFO] [stdout]  --> src/ownership.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn take_ownership_vec<T: Debug>(x: Vec<T>) {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_length` is never used
[INFO] [stdout]   --> src/ownership.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn calculate_length(x: String) -> (String, usize) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_ownership` is never used
[INFO] [stdout]   --> src/ownership.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn learning_ownership() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_panic` is never used
[INFO] [stdout]  --> src/panic.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_panic() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `value` are never used
[INFO] [stdout]   --> src/panic.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 |     impl Guess {
[INFO] [stdout]    |     ---------- associated items in this implementation
[INFO] [stdout] 19 |         fn new(value: i32) -> Guess {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |         fn value(&self) -> i32 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_pattern_matching` is never used
[INFO] [stdout]  --> src/pattern_matching_1.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_pattern_matching() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_pattern_matching` is never used
[INFO] [stdout]  --> src/pattern_matching_2.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_pattern_matching() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_pattern_matching` is never used
[INFO] [stdout]  --> src/pattern_matching_3.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_pattern_matching() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_rc` is never used
[INFO] [stdout]  --> src/rc.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn learning_rc() {
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Messenger` is never used
[INFO] [stdout]  --> src/refcell.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub trait Messenger {
[INFO] [stdout]   |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LimitTracker` is never constructed
[INFO] [stdout]  --> src/refcell.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct LimitTracker<'a, T: 'a + Messenger> {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `set_value` are never used
[INFO] [stdout]   --> src/refcell.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | / impl<'a, T> LimitTracker<'a, T>
[INFO] [stdout] 17 | | where
[INFO] [stdout] 18 | |     T: Messenger,
[INFO] [stdout]    | |_________________- associated items in this implementation
[INFO] [stdout] 19 |   {
[INFO] [stdout] 20 |       pub fn new(messenger: &T, max: usize) -> LimitTracker<T> {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |       pub fn set_value(&mut self, value: usize) {
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `List` is never used
[INFO] [stdout]   --> src/refcell.rs:45:6
[INFO] [stdout]    |
[INFO] [stdout] 45 | enum List {
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_ref_cell` is never used
[INFO] [stdout]   --> src/refcell.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn learning_ref_cell() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_length_1` is never used
[INFO] [stdout]  --> src/reference.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn calculate_length_1(x: &String) -> usize {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mut_calculate_length` is never used
[INFO] [stdout]  --> src/reference.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn mut_calculate_length(x: &mut String) -> usize {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_reference` is never used
[INFO] [stdout]   --> src/reference.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn learning_reference() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_result` is never used
[INFO] [stdout]  --> src/result.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn learning_result() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `first_world` is never used
[INFO] [stdout]  --> src/slices.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn first_world(x: &str) -> &str {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_slice` is never used
[INFO] [stdout]   --> src/slices.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn learning_slice() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_smart_pointer` is never used
[INFO] [stdout]  --> src/smart_pointer_begin.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_smart_pointer() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `take_ownership` is never used
[INFO] [stdout]  --> src/smart_pointer_box.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn take_ownership(x: Box<i32>) {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_smart_pointer` is never used
[INFO] [stdout]  --> src/smart_pointer_box.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn learning_smart_pointer() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_string` is never used
[INFO] [stdout]  --> src/string.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_string() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_struct` is never used
[INFO] [stdout]  --> src/structs.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_struct() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `area`, `copy`, and `print` are never used
[INFO] [stdout]   --> src/structs.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 77 |     impl Rectangle {
[INFO] [stdout]    |     -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 83 |         fn area(&self) -> u32 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |         fn copy(&self) -> Rectangle {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 95 |         fn print(x: &str) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_threads` is never used
[INFO] [stdout]  --> src/threads_1.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn learning_threads() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_threads` is never used
[INFO] [stdout]  --> src/threads_2.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn learning_threads() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_threads` is never used
[INFO] [stdout]  --> src/threads_3.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn learning_threads() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_threads` is never used
[INFO] [stdout]  --> src/threads_4.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_threads() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `HELLO_WORLD` is never used
[INFO] [stdout]   --> src/unsafe_rust.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | static HELLO_WORLD: &str = "Hello World";
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `RATIO` is never used
[INFO] [stdout]   --> src/unsafe_rust.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | static RATIO: f64 = 3.14;
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PI` is never used
[INFO] [stdout]   --> src/unsafe_rust.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | static mut PI: f64 = 3.14;
[INFO] [stdout]    |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_unsafe_rust` is never used
[INFO] [stdout]   --> src/unsafe_rust.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn learning_unsafe_rust() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VERSION` is never used
[INFO] [stdout]  --> src/variables.rs:1:7
[INFO] [stdout]   |
[INFO] [stdout] 1 | const VERSION: &str = "1.0.0";
[INFO] [stdout]   |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_variables` is never used
[INFO] [stdout]  --> src/variables.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn learning_variables() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_vector` is never used
[INFO] [stdout]  --> src/vector.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_vector() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.deref()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/deref_trait_1.rs:60:22
[INFO] [stdout]    |
[INFO] [stdout] 60 |     assert_eq!(5, *(y.deref()));
[INFO] [stdout]    |                      ^^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `i32` does not implement `Deref`, so calling `deref` on `&i32` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/lifecycle_3.rs:79:50
[INFO] [stdout]    |
[INFO] [stdout] 79 |         fn first_world_rule_1<'a>(s: &'a str) -> &str;
[INFO] [stdout]    |                                       --         ^^^^ the same lifetime is elided here
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       the lifetime is named 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: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 79 |         fn first_world_rule_1<'a>(s: &'a str) -> &'a str;
[INFO] [stdout]    |                                                   ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: path statement drops value
[INFO] [stdout]   --> src/ownership.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     x; // 发生Move
[INFO] [stdout]    |     ^^ help: use `drop` to clarify the intent: `drop(x);`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(path_statements)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/learning_trait.rs:197:9
[INFO] [stdout]     |
[INFO] [stdout] 197 |     let b = &a;
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/learning_trait.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 |         b: U,
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/learning_trait.rs:119:48
[INFO] [stdout]     |
[INFO] [stdout] 119 |     pub fn notify_bound_with_where<T, U>(a: T, b: U) -> String
[INFO] [stdout]     |                                                ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/ownership.rs:284:14
[INFO] [stdout]     |
[INFO] [stdout] 284 |     let c = b.clone(); // c 的类型是 &Person
[INFO] [stdout]     |              ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Person` does not implement `Clone`, so calling `clone` on `&Person` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 284 -     let c = b.clone(); // c 的类型是 &Person
[INFO] [stdout] 284 +     let c = b; // c 的类型是 &Person
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to clone `Person`, implement `Clone` for it
[INFO] [stdout]     |
[INFO] [stdout] 281 +     #[derive(Clone)]
[INFO] [stdout] 282 |     struct Person;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]   --> src/lifecycle_1.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let r: i32;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/lifecycle_1.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |         let x = 5;
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lifecycle_2.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let mut result: &str = "string_2: borrowed value does not live long enough";
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/refcell.rs:20:27
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn new(messenger: &T, max: usize) -> LimitTracker<T> {
[INFO] [stdout]    |                           ^^                 ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                           |
[INFO] [stdout]    |                           the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn new(messenger: &T, max: usize) -> LimitTracker<'_, T> {
[INFO] [stdout]    |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `string_1`
[INFO] [stdout]   --> src/lifecycle_2.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let string_1 = String::from("Hello World");
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_string_1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `string_2`
[INFO] [stdout]   --> src/lifecycle_2.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let string_2 = String::from("Jack");
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_string_2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/unsafe_rust.rs:186:31
[INFO] [stdout]     |
[INFO] [stdout] 186 |         println!("COUNT: {}", COUNTER);
[INFO] [stdout]     |                               ^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[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: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]  --> src/lifecycle_3.rs:8:34
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn longest_1<'a>(x: &'a str, y: &str) -> &'a str {
[INFO] [stdout]   |                                  ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/lifecycle_3.rs:15:34
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn longest_2<'a>(x: &'a str, y: &str) -> &'a str {
[INFO] [stdout]    |                                  ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]   --> src/lifecycle_3.rs:16:13
[INFO] [stdout]    |
[INFO] [stdout] 16 |         let result = String::from("悬垂引用");
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/lifecycle_3.rs:24:18
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn longest_3(x: &str, y: &str) -> String {
[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/lifecycle_3.rs:24:27
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn longest_3(x: &str, y: &str) -> String {
[INFO] [stdout]    |                           ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/lifecycle_4.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let s: &'static str = "I have a static lifetime";
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/ownership.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let mut x = String::from("hello");
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/ownership.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let y = {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `another_str`
[INFO] [stdout]   --> src/ownership.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let another_str = name.clone();
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_another_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/ownership.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let s = String::from("hello");
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s2`
[INFO] [stdout]   --> src/ownership.rs:69:9
[INFO] [stdout]    |
[INFO] [stdout] 69 |     let s2 = s1;
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_s2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/ownership.rs:77:9
[INFO] [stdout]    |
[INFO] [stdout] 77 |     let y = x;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s2`
[INFO] [stdout]   --> src/ownership.rs:86:9
[INFO] [stdout]    |
[INFO] [stdout] 86 |     let s2 = s1;
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_s2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/ownership.rs:104:9
[INFO] [stdout]     |
[INFO] [stdout] 104 |     let n = x; // Copy x的值(即3)到变量n，n现在拥有一个3，但x仍然拥有自己的3
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tup`
[INFO] [stdout]    --> src/ownership.rs:203:9
[INFO] [stdout]     |
[INFO] [stdout] 203 |     let tup = (5, String::from("hello"));
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_tup`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/ownership.rs:225:10
[INFO] [stdout]     |
[INFO] [stdout] 225 |     let (x, _) = tup;
[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/ownership.rs:229:10
[INFO] [stdout]     |
[INFO] [stdout] 229 |     let (x, y) = tup.clone();
[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/ownership.rs:229:13
[INFO] [stdout]     |
[INFO] [stdout] 229 |     let (x, y) = tup.clone();
[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/ownership.rs:233:10
[INFO] [stdout]     |
[INFO] [stdout] 233 |     let (x, ref y) = tup;
[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/ownership.rs:233:13
[INFO] [stdout]     |
[INFO] [stdout] 233 |     let (x, ref y) = tup;
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `str`
[INFO] [stdout]    --> src/ownership.rs:238:10
[INFO] [stdout]     |
[INFO] [stdout] 238 |     let [str, _] = my_vec;
[INFO] [stdout]     |          ^^^ help: if this is intentional, prefix it with an underscore: `_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_a`
[INFO] [stdout]    --> src/ownership.rs:255:9
[INFO] [stdout]     |
[INFO] [stdout] 255 |     let app_a = app.a;
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_app_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/ownership.rs:277:9
[INFO] [stdout]     |
[INFO] [stdout] 277 |     let c = b; // Copy引用
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/ownership.rs:284:9
[INFO] [stdout]     |
[INFO] [stdout] 284 |     let c = b.clone(); // c 的类型是 &Person
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/ownership.rs:295:9
[INFO] [stdout]     |
[INFO] [stdout] 295 |     let c = b.clone(); // c的类型是Person，而不是 &Person
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/ownership.rs:261:15
[INFO] [stdout]     |
[INFO] [stdout] 261 |     fn test_1(a: App) {}
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/ownership.rs:266:15
[INFO] [stdout]     |
[INFO] [stdout] 266 |     fn test_2(a: &App) {}
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arr`
[INFO] [stdout]   --> src/panic.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let arr = vec![1, 2, 3];
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_arr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]   --> src/pattern_matching_2.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 |     if let x = 50 {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]    = help: consider replacing the `if let` with a `let`
[INFO] [stdout]    = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]   --> src/raw_pointer.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     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: `a`
[INFO] [stdout]   --> src/rc.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let a = Cons(1, Rc::clone(&list));
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/rc.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |     let b = Cons(2, Rc::clone(&list));
[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/rc.rs:52:13
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let c = Cons(3, Rc::clone(&list));
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]   --> src/rc.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |     let c = &mut val;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `some_clone`
[INFO] [stdout]   --> src/rc.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 82 |     let some_clone = some_val.clone();
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_some_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `another_clone`
[INFO] [stdout]   --> src/rc.rs:83:9
[INFO] [stdout]    |
[INFO] [stdout] 83 |     let another_clone = Rc::clone(&val);
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_another_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/refcell.rs:97:9
[INFO] [stdout]    |
[INFO] [stdout] 97 |     let x = 5;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/result.rs:18:20
[INFO] [stdout]    |
[INFO] [stdout] 18 |         Result::Ok(data) => println!("open file success"),
[INFO] [stdout]    |                    ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/result.rs:19:21
[INFO] [stdout]    |
[INFO] [stdout] 19 |         Result::Err(err) => println!("open file failed"),
[INFO] [stdout]    |                     ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]   --> src/result.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |     let file = match f {
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/result.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let f = File::open("./assets/Jack.txt").unwrap_or_else(|error| {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/result.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |     let f = File::open("./assets/hello.txt").unwrap();
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `unbox_str`
[INFO] [stdout]   --> src/smart_pointer_box.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 88 |     let unbox_str = *box_str;
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_unbox_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/string.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let mut s = "Hello String".to_string();
[INFO] [stdout]   |         ----^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/string.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let mut s = String::from("Hello String");
[INFO] [stdout]   |         ----^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/string.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 85 |     let mut string_1: String = " I am a string ".to_string();
[INFO] [stdout]    |         ----^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]  --> src/string.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let mut s = "Hello String".to_string();
[INFO] [stdout]   |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]  --> src/string.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let mut s = String::from("Hello String");
[INFO] [stdout]   |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/string.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let s = String::from("Hello World");
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/structs.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let mut jason = User { age: 65, ..jack };
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/structs.rs:103:9
[INFO] [stdout]     |
[INFO] [stdout] 103 |     let mut another_react = &mut rect;
[INFO] [stdout]     |         ----^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `black`
[INFO] [stdout]   --> src/structs.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let black: Color = 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: `yellow`
[INFO] [stdout]   --> src/structs.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let yellow: Color = Color(1, 1, 1);
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_yellow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `point`
[INFO] [stdout]   --> src/structs.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let point: Point = Point(1.0, 1.0, 1.0);
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_point`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `another_react` is assigned to, but never used
[INFO] [stdout]    --> src/structs.rs:104:9
[INFO] [stdout]     |
[INFO] [stdout] 104 |     let mut another_react = another_react.copy();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_another_react` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `another_react` is never read
[INFO] [stdout]    --> src/structs.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 105 |     another_react.width = 10000;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]   --> src/unsafe_rust.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |     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: `a`
[INFO] [stdout]    --> src/unsafe_rust.rs:141:10
[INFO] [stdout]     |
[INFO] [stdout] 141 |     let (a, b) = r.split_at_mut(3);
[INFO] [stdout]     |          ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/unsafe_rust.rs:141:13
[INFO] [stdout]     |
[INFO] [stdout] 141 |     let (a, b) = r.split_at_mut(3);
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/variables.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let mut array_c = [1, 2];
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]  --> src/vector.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     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_slice`
[INFO] [stdout]   --> src/vector.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let v_slice = &v[..];
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_v_slice`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v_slice_1`
[INFO] [stdout]   --> src/vector.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let v_slice_1: &[i32] = &v;
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_v_slice_1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fix_order` is never used
[INFO] [stdout]   --> src/front_of_house.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn fix_order() {
[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 `add_to_wait_list` is never used
[INFO] [stdout]  --> src/front_of_house/hosting.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub fn add_to_wait_list() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `private_function` is never used
[INFO] [stdout]  --> src/front_of_house/hosting.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn private_function() {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_house` is never used
[INFO] [stdout]   --> src/front_of_house/hosting.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn print_house() {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hello` is never used
[INFO] [stdout]   --> src/front_of_house/hosting.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn hello() {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_advanced_function` is never used
[INFO] [stdout]  --> src/advanced_function.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_advanced_function() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_advanced_trait` is never used
[INFO] [stdout]  --> src/advanced_trait.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn learning_advanced_trait() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `fly` is never used
[INFO] [stdout]    --> src/advanced_trait.rs:205:12
[INFO] [stdout]     |
[INFO] [stdout] 204 |     impl Human {
[INFO] [stdout]     |     ---------- method in this implementation
[INFO] [stdout] 205 |         fn fly(&self) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `baby_name` is never used
[INFO] [stdout]    --> src/advanced_trait.rs:236:12
[INFO] [stdout]     |
[INFO] [stdout] 235 |     impl Dog {
[INFO] [stdout]     |     -------- associated function in this implementation
[INFO] [stdout] 236 |         fn baby_name() -> String {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_advanced_type` is never used
[INFO] [stdout]  --> src/advanced_type.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn learning_advanced_type() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_closure` is never used
[INFO] [stdout]  --> src/closure_1.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn learning_closure() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cache` is never constructed
[INFO] [stdout]   --> src/closure_1.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | struct Cache<T>
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `value`, and `hash_value` are never used
[INFO] [stdout]   --> src/closure_1.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | / impl<T> Cache<T>
[INFO] [stdout] 38 | | where
[INFO] [stdout] 39 | |     T: Fn(u32) -> u32,
[INFO] [stdout]    | |______________________- associated items in this implementation
[INFO] [stdout] 40 |   {
[INFO] [stdout] 41 |       fn new(calculation: T) -> Cache<T> {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |       fn value(&mut self, arg: u32) -> u32 {
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |       fn hash_value(&mut self, arg: u32) -> u32 {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_workout` is never used
[INFO] [stdout]   --> src/closure_1.rs:79:4
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn generate_workout(intensity: u32, random_number: u32) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_closure` is never used
[INFO] [stdout]  --> src/closure_2.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_closure() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_control_flow` is never used
[INFO] [stdout]  --> src/control_flow.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_control_flow() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_deref_trait` is never used
[INFO] [stdout]  --> src/deref_trait_1.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn learning_deref_trait() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/deref_trait_1.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 32 |     impl<T> MyBox<T> {
[INFO] [stdout]    |     ---------------- associated function in this implementation
[INFO] [stdout] 33 |         fn new(x: T) -> MyBox<T> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_deref_trait` is never used
[INFO] [stdout]  --> src/deref_trait_2.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn learning_deref_trait() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/deref_trait_2.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 |     impl<T> MyBox<T> {
[INFO] [stdout]    |     ---------------- associated function in this implementation
[INFO] [stdout] 19 |         fn new(x: T) -> MyBox<T> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_drop_trait` is never used
[INFO] [stdout]  --> src/drop_trait.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_drop_trait() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_eliminate` is never used
[INFO] [stdout]  --> src/eliminate_duplicate_code.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_eliminate() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_enums` is never used
[INFO] [stdout]  --> src/enums.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_enums() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_grep_example` is never used
[INFO] [stdout]  --> src/example_grep.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn learning_grep_example() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `my_grep` is never used
[INFO] [stdout]   --> src/example_grep.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn my_grep() {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `another_function` is never used
[INFO] [stdout]  --> src/functions.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn another_function(x: i32) {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `empty_function` is never used
[INFO] [stdout]  --> src/functions.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn empty_function() {}
[INFO] [stdout]   |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `plus_five` is never used
[INFO] [stdout]  --> src/functions.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn plus_five(x: i32) -> i32 {
[INFO] [stdout]   |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `plus_six` is never used
[INFO] [stdout]   --> src/functions.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn plus_six(x: i32) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_functions` is never used
[INFO] [stdout]   --> src/functions.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn learning_functions() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_generics` is never used
[INFO] [stdout]  --> src/generics.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_generics() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `reference` and `mix_up` are never used
[INFO] [stdout]   --> src/generics.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 37 |     impl<T, U> Point<T, U> {
[INFO] [stdout]    |     ---------------------- methods in this implementation
[INFO] [stdout] 38 |         fn reference(&mut self) -> &mut Point<T, U> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |         fn mix_up<V, W>(self, other: Point<V, W>) -> Point<T, W> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `specific` is never used
[INFO] [stdout]   --> src/generics.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 51 |     impl Point<i32, i32> {
[INFO] [stdout]    |     -------------------- method in this implementation
[INFO] [stdout] 52 |         fn specific(&self) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_hashmap` is never used
[INFO] [stdout]  --> src/hashmap.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn learning_hashmap() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_iterator` is never used
[INFO] [stdout]  --> src/iterator_1.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_iterator() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_iterator` is never used
[INFO] [stdout]  --> src/iterator_2.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_iterator() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_iterator` is never used
[INFO] [stdout]  --> src/iterator_3.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_iterator() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_iterator` is never used
[INFO] [stdout]  --> src/iterator_4.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_iterator() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/iterator_4.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 11 |     impl Counter {
[INFO] [stdout]    |     ------------ associated function in this implementation
[INFO] [stdout] 12 |         // 该函数是一个关联函数
[INFO] [stdout] 13 |         fn new() -> Counter {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_iterator` is never used
[INFO] [stdout]  --> src/iterator_5.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn learning_iterator() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `new_iterator` are never used
[INFO] [stdout]   --> src/iterator_5.rs:17:16
[INFO] [stdout]    |
[INFO] [stdout] 14 |     impl Config {
[INFO] [stdout]    |     ----------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 17 |         pub fn new(args: &[String]) -> Result<Config, &'static str> {
[INFO] [stdout]    |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |         pub fn new_iterator(mut args: std::env::Args) -> Result<Config, &'static str> {
[INFO] [stdout]    |                ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_iterator` is never used
[INFO] [stdout]  --> src/iterator_6.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_iterator() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_macros` is never used
[INFO] [stdout]  --> src/learn_macro.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_macros() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_pub_use` is never used
[INFO] [stdout]  --> src/learning_pub_use.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn learning_pub_use() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_tests` is never used
[INFO] [stdout]  --> src/learning_test.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_tests() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_two` is never used
[INFO] [stdout]   --> src/learning_test.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn add_two(a: i32) -> i32 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Summary` is never used
[INFO] [stdout]  --> src/learning_trait.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | trait Summary {
[INFO] [stdout]   |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NewsArticle` is never constructed
[INFO] [stdout]   --> src/learning_trait.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | struct NewsArticle {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tweet` is never constructed
[INFO] [stdout]   --> src/learning_trait.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | struct Tweet {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_trait` is never used
[INFO] [stdout]   --> src/learning_trait.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub fn learning_trait() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/learning_trait.rs:210:12
[INFO] [stdout]     |
[INFO] [stdout] 209 |     impl<T> Pair<T> {
[INFO] [stdout]     |     --------------- associated function in this implementation
[INFO] [stdout] 210 |         fn new(x: T, y: T) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `cmp_display` is never used
[INFO] [stdout]    --> src/learning_trait.rs:216:12
[INFO] [stdout]     |
[INFO] [stdout] 215 |     impl<T: Display + PartialOrd> Pair<T> {
[INFO] [stdout]     |     ------------------------------------- method in this implementation
[INFO] [stdout] 216 |         fn cmp_display(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_lifecycle` is never used
[INFO] [stdout]  --> src/lifecycle_1.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_lifecycle() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_lifecycle` is never used
[INFO] [stdout]  --> src/lifecycle_2.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_lifecycle() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_lifecycle` is never used
[INFO] [stdout]  --> src/lifecycle_3.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_lifecycle() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_lifecycle` is never used
[INFO] [stdout]  --> src/lifecycle_4.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn learning_lifecycle() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `level` and `announce` are never used
[INFO] [stdout]   --> src/lifecycle_4.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 23 |     impl<'a> ImportantExcerpt<'a> {
[INFO] [stdout]    |     ----------------------------- methods in this implementation
[INFO] [stdout] 24 |         // 因为这边返回值不是引用，所以无需为返回值申明生命周期
[INFO] [stdout] 25 |         fn level(&self) -> i32 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |         fn announce(&self, announcement: &str) -> &str {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_match` is never used
[INFO] [stdout]  --> src/match_syntax.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_match() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `List` is never used
[INFO] [stdout]  --> src/memory_leak.rs:6:6
[INFO] [stdout]   |
[INFO] [stdout] 6 | enum List {
[INFO] [stdout]   |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `tail` is never used
[INFO] [stdout]   --> src/memory_leak.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl List {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 14 |     fn tail(&self) -> Option<&RefCell<Rc<List>>> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_memory_leak` is never used
[INFO] [stdout]   --> src/memory_leak.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn learning_memory_leak() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_oop` is never used
[INFO] [stdout]  --> src/oop_1.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn learning_oop() {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Draw` is never used
[INFO] [stdout]  --> src/oop_2.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub trait Draw {
[INFO] [stdout]   |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Clone` is never used
[INFO] [stdout]  --> src/oop_2.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub trait Clone {
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Screen` is never constructed
[INFO] [stdout]  --> src/oop_2.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct Screen {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `run` is never used
[INFO] [stdout]   --> src/oop_2.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Screen {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 21 |     pub fn run(&self) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Button` is never constructed
[INFO] [stdout]   --> src/oop_2.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct Button {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SelectBox` is never constructed
[INFO] [stdout]   --> src/oop_2.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | struct SelectBox {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_oop` is never used
[INFO] [stdout]   --> src/oop_2.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn learning_oop() {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_oop` is never used
[INFO] [stdout]  --> src/oop_3.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_oop() {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `take_ownership` is never used
[INFO] [stdout]  --> src/ownership.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn take_ownership(x: String) {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `take_ownership_vec` is never used
[INFO] [stdout]  --> src/ownership.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn take_ownership_vec<T: Debug>(x: Vec<T>) {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_length` is never used
[INFO] [stdout]   --> src/ownership.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn calculate_length(x: String) -> (String, usize) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_ownership` is never used
[INFO] [stdout]   --> src/ownership.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn learning_ownership() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_panic` is never used
[INFO] [stdout]  --> src/panic.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_panic() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `value` are never used
[INFO] [stdout]   --> src/panic.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 |     impl Guess {
[INFO] [stdout]    |     ---------- associated items in this implementation
[INFO] [stdout] 19 |         fn new(value: i32) -> Guess {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |         fn value(&self) -> i32 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_pattern_matching` is never used
[INFO] [stdout]  --> src/pattern_matching_1.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_pattern_matching() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_pattern_matching` is never used
[INFO] [stdout]  --> src/pattern_matching_2.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_pattern_matching() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_pattern_matching` is never used
[INFO] [stdout]  --> src/pattern_matching_3.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_pattern_matching() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_rc` is never used
[INFO] [stdout]  --> src/rc.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn learning_rc() {
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `List` is never used
[INFO] [stdout]   --> src/refcell.rs:45:6
[INFO] [stdout]    |
[INFO] [stdout] 45 | enum List {
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_ref_cell` is never used
[INFO] [stdout]   --> src/refcell.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn learning_ref_cell() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_length_1` is never used
[INFO] [stdout]  --> src/reference.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn calculate_length_1(x: &String) -> usize {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mut_calculate_length` is never used
[INFO] [stdout]  --> src/reference.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn mut_calculate_length(x: &mut String) -> usize {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_reference` is never used
[INFO] [stdout]   --> src/reference.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn learning_reference() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_result` is never used
[INFO] [stdout]  --> src/result.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn learning_result() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `first_world` is never used
[INFO] [stdout]  --> src/slices.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn first_world(x: &str) -> &str {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_slice` is never used
[INFO] [stdout]   --> src/slices.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn learning_slice() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_smart_pointer` is never used
[INFO] [stdout]  --> src/smart_pointer_begin.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_smart_pointer() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `take_ownership` is never used
[INFO] [stdout]  --> src/smart_pointer_box.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn take_ownership(x: Box<i32>) {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_smart_pointer` is never used
[INFO] [stdout]  --> src/smart_pointer_box.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn learning_smart_pointer() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_string` is never used
[INFO] [stdout]  --> src/string.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_string() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_struct` is never used
[INFO] [stdout]  --> src/structs.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_struct() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `area`, `copy`, and `print` are never used
[INFO] [stdout]   --> src/structs.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 77 |     impl Rectangle {
[INFO] [stdout]    |     -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 83 |         fn area(&self) -> u32 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |         fn copy(&self) -> Rectangle {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 95 |         fn print(x: &str) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_threads` is never used
[INFO] [stdout]  --> src/threads_1.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn learning_threads() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_threads` is never used
[INFO] [stdout]  --> src/threads_2.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn learning_threads() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_threads` is never used
[INFO] [stdout]  --> src/threads_3.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn learning_threads() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_threads` is never used
[INFO] [stdout]  --> src/threads_4.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_threads() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `HELLO_WORLD` is never used
[INFO] [stdout]   --> src/unsafe_rust.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | static HELLO_WORLD: &str = "Hello World";
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `RATIO` is never used
[INFO] [stdout]   --> src/unsafe_rust.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | static RATIO: f64 = 3.14;
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PI` is never used
[INFO] [stdout]   --> src/unsafe_rust.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | static mut PI: f64 = 3.14;
[INFO] [stdout]    |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_unsafe_rust` is never used
[INFO] [stdout]   --> src/unsafe_rust.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn learning_unsafe_rust() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VERSION` is never used
[INFO] [stdout]  --> src/variables.rs:1:7
[INFO] [stdout]   |
[INFO] [stdout] 1 | const VERSION: &str = "1.0.0";
[INFO] [stdout]   |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_variables` is never used
[INFO] [stdout]  --> src/variables.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn learning_variables() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learning_vector` is never used
[INFO] [stdout]  --> src/vector.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn learning_vector() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.deref()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/deref_trait_1.rs:60:22
[INFO] [stdout]    |
[INFO] [stdout] 60 |     assert_eq!(5, *(y.deref()));
[INFO] [stdout]    |                      ^^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `i32` does not implement `Deref`, so calling `deref` on `&i32` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/lifecycle_3.rs:79:50
[INFO] [stdout]    |
[INFO] [stdout] 79 |         fn first_world_rule_1<'a>(s: &'a str) -> &str;
[INFO] [stdout]    |                                       --         ^^^^ the same lifetime is elided here
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       the lifetime is named 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: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 79 |         fn first_world_rule_1<'a>(s: &'a str) -> &'a str;
[INFO] [stdout]    |                                                   ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: path statement drops value
[INFO] [stdout]   --> src/ownership.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     x; // 发生Move
[INFO] [stdout]    |     ^^ help: use `drop` to clarify the intent: `drop(x);`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(path_statements)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/ownership.rs:284:14
[INFO] [stdout]     |
[INFO] [stdout] 284 |     let c = b.clone(); // c 的类型是 &Person
[INFO] [stdout]     |              ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Person` does not implement `Clone`, so calling `clone` on `&Person` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 284 -     let c = b.clone(); // c 的类型是 &Person
[INFO] [stdout] 284 +     let c = b; // c 的类型是 &Person
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to clone `Person`, implement `Clone` for it
[INFO] [stdout]     |
[INFO] [stdout] 281 +     #[derive(Clone)]
[INFO] [stdout] 282 |     struct Person;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/refcell.rs:20:27
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn new(messenger: &T, max: usize) -> LimitTracker<T> {
[INFO] [stdout]    |                           ^^                 ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                           |
[INFO] [stdout]    |                           the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn new(messenger: &T, max: usize) -> LimitTracker<'_, T> {
[INFO] [stdout]    |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/unsafe_rust.rs:186:31
[INFO] [stdout]     |
[INFO] [stdout] 186 |         println!("COUNT: {}", COUNTER);
[INFO] [stdout]     |                               ^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[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: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.77s
[INFO] running `Command { std: "docker" "inspect" "cf823dd0e07a5a1cf24900cdb2ed74550890e6fc54236656aa175e34628794e5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cf823dd0e07a5a1cf24900cdb2ed74550890e6fc54236656aa175e34628794e5", kill_on_drop: false }`
[INFO] [stdout] cf823dd0e07a5a1cf24900cdb2ed74550890e6fc54236656aa175e34628794e5
