[INFO] cloning repository https://github.com/linmingjie1/rust-learning
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/linmingjie1/rust-learning" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flinmingjie1%2Frust-learning", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flinmingjie1%2Frust-learning'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 3a7d5ae92c777a47745d4a58310c5f2941666978
[INFO] checking linmingjie1/rust-learning against master#b2f1ccf524a3a4cf9c34545167cc23b659cf1cbd for pr-155499
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flinmingjie1%2Frust-learning" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-2-tc1/source/.cargo/config.toml
[INFO] removed /workspace/builds/worker-2-tc1/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/linmingjie1/rust-learning
[INFO] finished tweaking git repo https://github.com/linmingjie1/rust-learning
[INFO] tweaked toml for git repo https://github.com/linmingjie1/rust-learning written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/linmingjie1/rust-learning on toolchain b2f1ccf524a3a4cf9c34545167cc23b659cf1cbd
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b2f1ccf524a3a4cf9c34545167cc23b659cf1cbd" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/linmingjie1/rust-learning 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" "+b2f1ccf524a3a4cf9c34545167cc23b659cf1cbd" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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" "+b2f1ccf524a3a4cf9c34545167cc23b659cf1cbd" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 217c88cdfa18373a94225510277437d5defaaddd4a3136a1af89076d102c82a8
[INFO] running `Command { std: "docker" "start" "-a" "217c88cdfa18373a94225510277437d5defaaddd4a3136a1af89076d102c82a8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "217c88cdfa18373a94225510277437d5defaaddd4a3136a1af89076d102c82a8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "217c88cdfa18373a94225510277437d5defaaddd4a3136a1af89076d102c82a8", kill_on_drop: false }`
[INFO] [stdout] 217c88cdfa18373a94225510277437d5defaaddd4a3136a1af89076d102c82a8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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" "+b2f1ccf524a3a4cf9c34545167cc23b659cf1cbd" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c23d26eb4d8d98eb8f8be5d79cab9948ccc4531af8b466ec4643256a2a809af9
[INFO] running `Command { std: "docker" "start" "-a" "c23d26eb4d8d98eb8f8be5d79cab9948ccc4531af8b466ec4643256a2a809af9", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling unicode-ident v1.0.23
[INFO] [stderr]     Checking chacha20 v0.10.0
[INFO] [stderr]     Checking hello_macro v0.1.0 (/opt/rustwide/workdir/hello_macro)
[INFO] [stderr]     Checking quote v1.0.44
[INFO] [stderr]     Checking syn v2.0.115
[INFO] [stderr]     Checking getrandom v0.4.1
[INFO] [stderr]     Checking rand v0.10.0
[INFO] [stderr]     Checking hello_macro_derive v0.1.0 (/opt/rustwide/workdir/hello_macro_derive)
[INFO] [stderr]     Checking rust-tutorial v0.1.0 (/opt/rustwide/workdir/tutorial)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> tutorial/src/modules/vector.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let mut v = vec![1, 2, 3, 4, 5];
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row`
[INFO] [stdout]   --> tutorial/src/modules/vector.rs:68:9
[INFO] [stdout]    |
[INFO] [stdout] 68 |     let row = vec![
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_row`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> tutorial/src/modules/string.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |     let s = data.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]   --> tutorial/src/modules/string.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let s = "initial contents".to_string();
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> tutorial/src/modules/string.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let data = s.as_str(); // 将 String 转换为 &str
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> tutorial/src/modules/string.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let a: char = 'A';     // 4 字节
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `zh`
[INFO] [stdout]   --> tutorial/src/modules/string.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |     let zh: char = '中';   // 4 字节
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_zh`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `emoji`
[INFO] [stdout]   --> tutorial/src/modules/string.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let emoji: char = '😀'; // 4 字节。在 Java 中，需两个 UTF-16 编码单元（代理对），字节数为 4 字节（2×2 字节）
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_emoji`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scores`
[INFO] [stdout]   --> tutorial/src/modules/hashmap.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let scores: HashMap<_, _> = teams.iter().zip(initial_scores.iter()).collect();
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_scores`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> tutorial/src/modules/panic_test.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |     let f = File::open(file_path).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]   --> tutorial/src/modules/panic_test.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let f = File::open(file_path).expect("Failed to open the file");
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `integer`
[INFO] [stdout]   --> tutorial/src/modules/generics.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let integer = Point { x: 1, y: 2 };
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_integer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `float`
[INFO] [stdout]   --> tutorial/src/modules/generics.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let float = Point { x: 1.0, y: 2.0 };
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> tutorial/src/modules/trait_test.rs:69:62
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn notify4<T: Summary + Display, U: Clone + Debug>(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: `b`
[INFO] [stdout]   --> tutorial/src/modules/trait_test.rs:73:28
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub fn notify5<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: `y`
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:31:29
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn longest2<'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: `x`
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:46:17
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn longest3<'a>(x: &'a str, y: &'a 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]   --> tutorial/src/modules/lifecycle.rs:46:29
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn longest3<'a>(x: &'a str, y: &'a str) -> String {
[INFO] [stdout]    |                             ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let i = ImportantExcerpt {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> tutorial/src/modules/lifecycle.rs:129:9
[INFO] [stdout]     |
[INFO] [stdout] 129 |     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]   --> tutorial/src/modules/vector.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let mut v = vec![1, 2, 3, 4, 5];
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row`
[INFO] [stdout]   --> tutorial/src/modules/vector.rs:68:9
[INFO] [stdout]    |
[INFO] [stdout] 68 |     let row = vec![
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_row`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `add_one_v1`
[INFO] [stdout]  --> tutorial/src/modules/closure.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let add_one_v1 = |x: i32| -> i32 { x + 1 };
[INFO] [stdout]   |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_add_one_v1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> tutorial/src/modules/string.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |     let s = data.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]   --> tutorial/src/modules/string.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let s = "initial contents".to_string();
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> tutorial/src/modules/string.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let data = s.as_str(); // 将 String 转换为 &str
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> tutorial/src/modules/string.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let a: char = 'A';     // 4 字节
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `zh`
[INFO] [stdout]   --> tutorial/src/modules/string.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |     let zh: char = '中';   // 4 字节
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_zh`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `emoji`
[INFO] [stdout]   --> tutorial/src/modules/string.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let emoji: char = '😀'; // 4 字节。在 Java 中，需两个 UTF-16 编码单元（代理对），字节数为 4 字节（2×2 字节）
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_emoji`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scores`
[INFO] [stdout]   --> tutorial/src/modules/hashmap.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let scores: HashMap<_, _> = teams.iter().zip(initial_scores.iter()).collect();
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_scores`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> tutorial/src/modules/panic_test.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |     let f = File::open(file_path).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]   --> tutorial/src/modules/panic_test.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let f = File::open(file_path).expect("Failed to open the file");
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `integer`
[INFO] [stdout]   --> tutorial/src/modules/generics.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let integer = Point { x: 1, y: 2 };
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_integer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `float`
[INFO] [stdout]   --> tutorial/src/modules/generics.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let float = Point { x: 1.0, y: 2.0 };
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c1`
[INFO] [stdout]   --> tutorial/src/modules/pub_use.rs:36:14
[INFO] [stdout]    |
[INFO] [stdout] 36 |   pub fn mix(c1: PrimaryColor, c2: PrimaryColor) -> SecondaryColor {
[INFO] [stdout]    |              ^^ help: if this is intentional, prefix it with an underscore: `_c1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c2`
[INFO] [stdout]   --> tutorial/src/modules/pub_use.rs:36:32
[INFO] [stdout]    |
[INFO] [stdout] 36 |   pub fn mix(c1: PrimaryColor, c2: PrimaryColor) -> SecondaryColor {
[INFO] [stdout]    |                                ^^ help: if this is intentional, prefix it with an underscore: `_c2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main` is never used
[INFO] [stdout]  --> tutorial/src/demo/guess.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn main() {
[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 `test2` is never used
[INFO] [stdout]   --> tutorial/src/modules/vector.rs:29:4
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn test2() {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `enum_vec` is never used
[INFO] [stdout]   --> tutorial/src/modules/vector.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn enum_vec() {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `example` is never used
[INFO] [stdout]   --> tutorial/src/modules/string.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn example() {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `example2` is never used
[INFO] [stdout]   --> tutorial/src/modules/string.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn example2() {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `demo` is never used
[INFO] [stdout]   --> tutorial/src/modules/hashmap.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn demo () {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update` is never used
[INFO] [stdout]   --> tutorial/src/modules/hashmap.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn update() {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update2` is never used
[INFO] [stdout]   --> tutorial/src/modules/hashmap.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn update2() {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test1` is never used
[INFO] [stdout]  --> tutorial/src/modules/panic_test.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn test1() {
[INFO] [stdout]   |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_username_from_file` is never used
[INFO] [stdout]   --> tutorial/src/modules/panic_test.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn read_username_from_file() -> Result<String, std::io::Error> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_username_from_file_short` is never used
[INFO] [stdout]   --> tutorial/src/modules/panic_test.rs:71:4
[INFO] [stdout]    |
[INFO] [stdout] 71 | fn read_username_from_file_short() -> Result<String, std::io::Error> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]  --> tutorial/src/modules/generics.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | struct Point<T> {
[INFO] [stdout]   |        ----- fields in this struct
[INFO] [stdout] 3 |     x: T,
[INFO] [stdout]   |     ^
[INFO] [stdout] 4 |     y: T,
[INFO] [stdout]   |     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `x` is never used
[INFO] [stdout]  --> tutorial/src/modules/generics.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | impl<T> Point<T> {
[INFO] [stdout]   | ---------------- method in this implementation
[INFO] [stdout] 8 |     fn x(&self) -> &T {
[INFO] [stdout]   |        ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `y` is never used
[INFO] [stdout]   --> tutorial/src/modules/generics.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Point<f32> {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 13 |     fn y(&self) -> f32 {
[INFO] [stdout]    |        ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Option` is never used
[INFO] [stdout]   --> tutorial/src/modules/generics.rs:19:6
[INFO] [stdout]    |
[INFO] [stdout] 19 | enum Option<T> {
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Result` is never used
[INFO] [stdout]   --> tutorial/src/modules/generics.rs:23:6
[INFO] [stdout]    |
[INFO] [stdout] 23 | enum Result<T, E> {
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `largest` is never used
[INFO] [stdout]   --> tutorial/src/modules/trait_test.rs:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | fn largest<T: PartialOrd + Copy>(list: &[T]) -> T {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest` is never used
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest_test` is never used
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn longest_test () {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest2` is never used
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:31:4
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn longest2<'a>(x: &'a str, y: &str) -> &'a str {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest3` is never used
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:46:4
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn longest3<'a>(x: &'a str, y: &'a str) -> String {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_struct` is never used
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn test_struct() {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_struct2` is never used
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:84:4
[INFO] [stdout]    |
[INFO] [stdout] 84 | fn test_struct2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `level` and `announce_and_return_part` are never used
[INFO] [stdout]    --> tutorial/src/modules/lifecycle.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | impl<'a> ImportantExcerpt<'a> {
[INFO] [stdout]     | ----------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 112 |     fn level(&self) -> i32 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     fn announce_and_return_part(&self, announcement: &str) -> &str {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `static_lifetime` is never used
[INFO] [stdout]    --> tutorial/src/modules/lifecycle.rs:128:4
[INFO] [stdout]     |
[INFO] [stdout] 128 | fn static_lifetime() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest_with_announcement` is never used
[INFO] [stdout]    --> tutorial/src/modules/lifecycle.rs:145:4
[INFO] [stdout]     |
[INFO] [stdout] 145 | fn longest_with_announcement<'a, T>(x: &'a str, y: &'a str, ann: T) -> &'a str
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Guess` is never constructed
[INFO] [stdout]   --> tutorial/src/modules/test.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct Guess {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> tutorial/src/modules/test.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl Guess {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] 23 |     pub fn new(value: i32) -> Guess {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> tutorial/src/modules/trait_test.rs:69:62
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn notify4<T: Summary + Display, U: Clone + Debug>(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: `b`
[INFO] [stdout]   --> tutorial/src/modules/trait_test.rs:73:28
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub fn notify5<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: `y`
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:31:29
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn longest2<'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: `x`
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:46:17
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn longest3<'a>(x: &'a str, y: &'a 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]   --> tutorial/src/modules/lifecycle.rs:46:29
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn longest3<'a>(x: &'a str, y: &'a str) -> String {
[INFO] [stdout]    |                             ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let i = ImportantExcerpt {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> tutorial/src/modules/lifecycle.rs:129:9
[INFO] [stdout]     |
[INFO] [stdout] 129 |     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: unused variable: `add_one_v1`
[INFO] [stdout]  --> tutorial/src/modules/closure.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let add_one_v1 = |x: i32| -> i32 { x + 1 };
[INFO] [stdout]   |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_add_one_v1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c1`
[INFO] [stdout]   --> tutorial/src/modules/pub_use.rs:36:14
[INFO] [stdout]    |
[INFO] [stdout] 36 |   pub fn mix(c1: PrimaryColor, c2: PrimaryColor) -> SecondaryColor {
[INFO] [stdout]    |              ^^ help: if this is intentional, prefix it with an underscore: `_c1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c2`
[INFO] [stdout]   --> tutorial/src/modules/pub_use.rs:36:32
[INFO] [stdout]    |
[INFO] [stdout] 36 |   pub fn mix(c1: PrimaryColor, c2: PrimaryColor) -> SecondaryColor {
[INFO] [stdout]    |                                ^^ help: if this is intentional, prefix it with an underscore: `_c2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main` is never used
[INFO] [stdout]  --> tutorial/src/demo/guess.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn main() {
[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 `test2` is never used
[INFO] [stdout]   --> tutorial/src/modules/vector.rs:29:4
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn test2() {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `enum_vec` is never used
[INFO] [stdout]   --> tutorial/src/modules/vector.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn enum_vec() {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `example` is never used
[INFO] [stdout]   --> tutorial/src/modules/string.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn example() {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `example2` is never used
[INFO] [stdout]   --> tutorial/src/modules/string.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn example2() {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `demo` is never used
[INFO] [stdout]   --> tutorial/src/modules/hashmap.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn demo () {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update` is never used
[INFO] [stdout]   --> tutorial/src/modules/hashmap.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn update() {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update2` is never used
[INFO] [stdout]   --> tutorial/src/modules/hashmap.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn update2() {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test1` is never used
[INFO] [stdout]  --> tutorial/src/modules/panic_test.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn test1() {
[INFO] [stdout]   |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_username_from_file` is never used
[INFO] [stdout]   --> tutorial/src/modules/panic_test.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn read_username_from_file() -> Result<String, std::io::Error> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_username_from_file_short` is never used
[INFO] [stdout]   --> tutorial/src/modules/panic_test.rs:71:4
[INFO] [stdout]    |
[INFO] [stdout] 71 | fn read_username_from_file_short() -> Result<String, std::io::Error> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]  --> tutorial/src/modules/generics.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | struct Point<T> {
[INFO] [stdout]   |        ----- fields in this struct
[INFO] [stdout] 3 |     x: T,
[INFO] [stdout]   |     ^
[INFO] [stdout] 4 |     y: T,
[INFO] [stdout]   |     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `x` is never used
[INFO] [stdout]  --> tutorial/src/modules/generics.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | impl<T> Point<T> {
[INFO] [stdout]   | ---------------- method in this implementation
[INFO] [stdout] 8 |     fn x(&self) -> &T {
[INFO] [stdout]   |        ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `y` is never used
[INFO] [stdout]   --> tutorial/src/modules/generics.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Point<f32> {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 13 |     fn y(&self) -> f32 {
[INFO] [stdout]    |        ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Option` is never used
[INFO] [stdout]   --> tutorial/src/modules/generics.rs:19:6
[INFO] [stdout]    |
[INFO] [stdout] 19 | enum Option<T> {
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Result` is never used
[INFO] [stdout]   --> tutorial/src/modules/generics.rs:23:6
[INFO] [stdout]    |
[INFO] [stdout] 23 | enum Result<T, E> {
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `largest` is never used
[INFO] [stdout]   --> tutorial/src/modules/trait_test.rs:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | fn largest<T: PartialOrd + Copy>(list: &[T]) -> T {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest` is never used
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest_test` is never used
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn longest_test () {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest2` is never used
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:31:4
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn longest2<'a>(x: &'a str, y: &str) -> &'a str {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest3` is never used
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:46:4
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn longest3<'a>(x: &'a str, y: &'a str) -> String {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_struct` is never used
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn test_struct() {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_struct2` is never used
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:84:4
[INFO] [stdout]    |
[INFO] [stdout] 84 | fn test_struct2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `level` and `announce_and_return_part` are never used
[INFO] [stdout]    --> tutorial/src/modules/lifecycle.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | impl<'a> ImportantExcerpt<'a> {
[INFO] [stdout]     | ----------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 112 |     fn level(&self) -> i32 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     fn announce_and_return_part(&self, announcement: &str) -> &str {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `static_lifetime` is never used
[INFO] [stdout]    --> tutorial/src/modules/lifecycle.rs:128:4
[INFO] [stdout]     |
[INFO] [stdout] 128 | fn static_lifetime() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest_with_announcement` is never used
[INFO] [stdout]    --> tutorial/src/modules/lifecycle.rs:145:4
[INFO] [stdout]     |
[INFO] [stdout] 145 | fn longest_with_announcement<'a, T>(x: &'a str, y: &'a str, ann: T) -> &'a str
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `value` is never read
[INFO] [stdout]   --> tutorial/src/modules/test.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct Guess {
[INFO] [stdout]    |        ----- field in this struct
[INFO] [stdout] 20 |     value: i32,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PrimaryColor` and `SecondaryColor`
[INFO] [stdout]  --> tutorial/src/modules/pub_use.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub use self::kinds::{PrimaryColor, SecondaryColor};
[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: `self::utils::mix`
[INFO] [stdout]  --> tutorial/src/modules/pub_use.rs:2:9
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub use self::utils::mix;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RefMut` and `Ref`
[INFO] [stdout]   --> tutorial/src/advances/refcell.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::cell::{Ref, RefCell, RefMut};
[INFO] [stdout]    |                 ^^^           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]   --> tutorial/src/advances/refcell.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::ops::Deref;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PrimaryColor` and `SecondaryColor`
[INFO] [stdout]  --> tutorial/src/modules/pub_use.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub use self::kinds::{PrimaryColor, SecondaryColor};
[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: `self::utils::mix`
[INFO] [stdout]  --> tutorial/src/modules/pub_use.rs:2:9
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub use self::utils::mix;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RefMut` and `Ref`
[INFO] [stdout]   --> tutorial/src/advances/refcell.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::cell::{Ref, RefCell, RefMut};
[INFO] [stdout]    |                 ^^^           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]   --> tutorial/src/advances/refcell.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::ops::Deref;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> tutorial/src/modules/vector.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let mut v = vec![1, 2, 3, 4, 5];
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row`
[INFO] [stdout]   --> tutorial/src/modules/vector.rs:68:9
[INFO] [stdout]    |
[INFO] [stdout] 68 |     let row = vec![
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_row`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> tutorial/src/modules/string.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |     let s = data.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]   --> tutorial/src/modules/string.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let s = "initial contents".to_string();
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> tutorial/src/modules/string.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let data = s.as_str(); // 将 String 转换为 &str
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> tutorial/src/modules/string.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let a: char = 'A';     // 4 字节
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `zh`
[INFO] [stdout]   --> tutorial/src/modules/string.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |     let zh: char = '中';   // 4 字节
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_zh`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `emoji`
[INFO] [stdout]   --> tutorial/src/modules/string.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let emoji: char = '😀'; // 4 字节。在 Java 中，需两个 UTF-16 编码单元（代理对），字节数为 4 字节（2×2 字节）
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_emoji`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scores`
[INFO] [stdout]   --> tutorial/src/modules/hashmap.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let scores: HashMap<_, _> = teams.iter().zip(initial_scores.iter()).collect();
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_scores`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> tutorial/src/modules/vector.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let mut v = vec![1, 2, 3, 4, 5];
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row`
[INFO] [stdout]   --> tutorial/src/modules/vector.rs:68:9
[INFO] [stdout]    |
[INFO] [stdout] 68 |     let row = vec![
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_row`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> tutorial/src/modules/string.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |     let s = data.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]   --> tutorial/src/modules/string.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let s = "initial contents".to_string();
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> tutorial/src/modules/string.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let data = s.as_str(); // 将 String 转换为 &str
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> tutorial/src/modules/string.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let a: char = 'A';     // 4 字节
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `zh`
[INFO] [stdout]   --> tutorial/src/modules/string.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |     let zh: char = '中';   // 4 字节
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_zh`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> tutorial/src/modules/panic_test.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |     let f = File::open(file_path).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]   --> tutorial/src/modules/panic_test.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let f = File::open(file_path).expect("Failed to open the file");
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `emoji`
[INFO] [stdout]   --> tutorial/src/modules/string.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let emoji: char = '😀'; // 4 字节。在 Java 中，需两个 UTF-16 编码单元（代理对），字节数为 4 字节（2×2 字节）
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_emoji`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scores`
[INFO] [stdout]   --> tutorial/src/modules/hashmap.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let scores: HashMap<_, _> = teams.iter().zip(initial_scores.iter()).collect();
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_scores`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `integer`
[INFO] [stdout]   --> tutorial/src/modules/generics.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let integer = Point { x: 1, y: 2 };
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_integer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `float`
[INFO] [stdout]   --> tutorial/src/modules/generics.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let float = Point { x: 1.0, y: 2.0 };
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> tutorial/src/modules/panic_test.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |     let f = File::open(file_path).unwrap();
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> tutorial/src/modules/trait_test.rs:69:62
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn notify4<T: Summary + Display, U: Clone + Debug>(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: `b`
[INFO] [stdout]   --> tutorial/src/modules/trait_test.rs:73:28
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub fn notify5<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: `f`
[INFO] [stdout]   --> tutorial/src/modules/panic_test.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let f = File::open(file_path).expect("Failed to open the file");
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:31:29
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn longest2<'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: `x`
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:46:17
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn longest3<'a>(x: &'a str, y: &'a 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]   --> tutorial/src/modules/lifecycle.rs:46:29
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn longest3<'a>(x: &'a str, y: &'a str) -> String {
[INFO] [stdout]    |                             ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let i = ImportantExcerpt {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `integer`
[INFO] [stdout]   --> tutorial/src/modules/generics.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let integer = Point { x: 1, y: 2 };
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_integer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `float`
[INFO] [stdout]   --> tutorial/src/modules/generics.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let float = Point { x: 1.0, y: 2.0 };
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> tutorial/src/modules/lifecycle.rs:129:9
[INFO] [stdout]     |
[INFO] [stdout] 129 |     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: unused variable: `add_one_v1`
[INFO] [stdout]  --> tutorial/src/modules/closure.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let add_one_v1 = |x: i32| -> i32 { x + 1 };
[INFO] [stdout]   |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_add_one_v1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> tutorial/src/modules/trait_test.rs:69:62
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn notify4<T: Summary + Display, U: Clone + Debug>(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: `b`
[INFO] [stdout]   --> tutorial/src/modules/trait_test.rs:73:28
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub fn notify5<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: `y`
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:31:29
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn longest2<'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: `x`
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:46:17
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn longest3<'a>(x: &'a str, y: &'a 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]   --> tutorial/src/modules/lifecycle.rs:46:29
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn longest3<'a>(x: &'a str, y: &'a str) -> String {
[INFO] [stdout]    |                             ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let i = ImportantExcerpt {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> tutorial/src/modules/lifecycle.rs:129:9
[INFO] [stdout]     |
[INFO] [stdout] 129 |     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: unused variable: `add_one_v1`
[INFO] [stdout]  --> tutorial/src/modules/closure.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let add_one_v1 = |x: i32| -> i32 { x + 1 };
[INFO] [stdout]   |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_add_one_v1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c1`
[INFO] [stdout]   --> tutorial/src/modules/pub_use.rs:36:14
[INFO] [stdout]    |
[INFO] [stdout] 36 |   pub fn mix(c1: PrimaryColor, c2: PrimaryColor) -> SecondaryColor {
[INFO] [stdout]    |              ^^ help: if this is intentional, prefix it with an underscore: `_c1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c2`
[INFO] [stdout]   --> tutorial/src/modules/pub_use.rs:36:32
[INFO] [stdout]    |
[INFO] [stdout] 36 |   pub fn mix(c1: PrimaryColor, c2: PrimaryColor) -> SecondaryColor {
[INFO] [stdout]    |                                ^^ help: if this is intentional, prefix it with an underscore: `_c2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c1`
[INFO] [stdout]   --> tutorial/src/modules/pub_use.rs:36:14
[INFO] [stdout]    |
[INFO] [stdout] 36 |   pub fn mix(c1: PrimaryColor, c2: PrimaryColor) -> SecondaryColor {
[INFO] [stdout]    |              ^^ help: if this is intentional, prefix it with an underscore: `_c1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c2`
[INFO] [stdout]   --> tutorial/src/modules/pub_use.rs:36:32
[INFO] [stdout]    |
[INFO] [stdout] 36 |   pub fn mix(c1: PrimaryColor, c2: PrimaryColor) -> SecondaryColor {
[INFO] [stdout]    |                                ^^ help: if this is intentional, prefix it with an underscore: `_c2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]   --> tutorial/src/advances/drop.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     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: `b`
[INFO] [stdout]   --> tutorial/src/advances/rc_test.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let b = BoxCons(3, Box::new(a)); // 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]   --> tutorial/src/advances/rc_test.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |     let b = RcCons(3, Rc::clone(&a));
[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]   --> tutorial/src/advances/rc_test.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let c = RcCons(4, Rc::clone(&a));
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> tutorial/src/advances/refcell.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     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: `d`
[INFO] [stdout]   --> tutorial/src/advances/drop.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     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: `b`
[INFO] [stdout]   --> tutorial/src/advances/rc_test.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let b = BoxCons(3, Box::new(a)); // 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]   --> tutorial/src/advances/rc_test.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |     let b = RcCons(3, Rc::clone(&a));
[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]   --> tutorial/src/advances/rc_test.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let c = RcCons(4, Rc::clone(&a));
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> tutorial/src/advances/refcell.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     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: `post`
[INFO] [stdout]   --> tutorial/src/advances/object_oriented.rs:53:31
[INFO] [stdout]    |
[INFO] [stdout] 53 |         fn content<'a>(&self, post: &'a Post) -> &'a str {
[INFO] [stdout]    |                               ^^^^ help: if this is intentional, prefix it with an underscore: `_post`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> tutorial/src/advances/pattern_matching.rs:83:17
[INFO] [stdout]    |
[INFO] [stdout] 83 |     if let Some(x) = a {}
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `post`
[INFO] [stdout]   --> tutorial/src/advances/object_oriented.rs:53:31
[INFO] [stdout]    |
[INFO] [stdout] 53 |         fn content<'a>(&self, post: &'a Post) -> &'a str {
[INFO] [stdout]    |                               ^^^^ help: if this is intentional, prefix it with an underscore: `_post`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `setting_value` is never read
[INFO] [stdout]    --> tutorial/src/advances/pattern_matching.rs:219:13
[INFO] [stdout]     |
[INFO] [stdout] 219 |             setting_value = new_setting_value;
[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: unnecessary `unsafe` block
[INFO] [stdout]   --> tutorial/src/advances/unsafe_rust.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 43 |     unsafe {
[INFO] [stdout]    |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]   --> tutorial/src/advances/unsafe_rust.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |     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: `x`
[INFO] [stdout]   --> tutorial/src/advances/pattern_matching.rs:83:17
[INFO] [stdout]    |
[INFO] [stdout] 83 |     if let Some(x) = a {}
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> tutorial/src/advances/advanced_type.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let f: Thunk = Box::new(|| println!("hello"));
[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]   --> tutorial/src/advances/advanced_type.rs:28:24
[INFO] [stdout]    |
[INFO] [stdout] 28 |     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: value assigned to `setting_value` is never read
[INFO] [stdout]    --> tutorial/src/advances/pattern_matching.rs:219:13
[INFO] [stdout]     |
[INFO] [stdout] 219 |             setting_value = new_setting_value;
[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: `t`
[INFO] [stdout]   --> tutorial/src/advances/advanced_type.rs:48:16
[INFO] [stdout]    |
[INFO] [stdout] 48 | fn generic1<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]   --> tutorial/src/advances/advanced_type.rs:49:23
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn generic2<T: Sized>(t: T) {}
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> tutorial/src/advances/unsafe_rust.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 43 |     unsafe {
[INFO] [stdout]    |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> tutorial/src/advances/advanced_type.rs:51:24
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn generic3<T: ?Sized>(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: `r`
[INFO] [stdout]   --> tutorial/src/advances/unsafe_rust.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |     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: `val`
[INFO] [stdout]   --> tutorial/src/advances/advanced_function.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let val = Status::Value(1);
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `list_of_statuses`
[INFO] [stdout]   --> tutorial/src/advances/advanced_function.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let list_of_statuses: Vec<Status> = (0u32..20).map(Status::Value).collect();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_list_of_statuses`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main` is never used
[INFO] [stdout]  --> tutorial/src/demo/guess.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn main() {
[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 `test` is never used
[INFO] [stdout]  --> tutorial/src/modules/vector.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn test() {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test2` is never used
[INFO] [stdout]   --> tutorial/src/modules/vector.rs:29:4
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn test2() {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `travel_vec` is never used
[INFO] [stdout]   --> tutorial/src/modules/vector.rs:45:4
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn travel_vec() {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `enum_vec` is never used
[INFO] [stdout]   --> tutorial/src/modules/vector.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn enum_vec() {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test` is never used
[INFO] [stdout]   --> tutorial/src/modules/string.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn test() {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `example` is never used
[INFO] [stdout]   --> tutorial/src/modules/string.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn example() {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `example2` is never used
[INFO] [stdout]   --> tutorial/src/modules/string.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn example2() {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `append_example` is never used
[INFO] [stdout]   --> tutorial/src/modules/string.rs:90:4
[INFO] [stdout]    |
[INFO] [stdout] 90 | fn append_example() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `for_example` is never used
[INFO] [stdout]    --> tutorial/src/modules/string.rs:116:4
[INFO] [stdout]     |
[INFO] [stdout] 116 | fn for_example() {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test` is never used
[INFO] [stdout]  --> tutorial/src/modules/hashmap.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn test() {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `demo` is never used
[INFO] [stdout]   --> tutorial/src/modules/hashmap.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn demo () {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update` is never used
[INFO] [stdout]   --> tutorial/src/modules/hashmap.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn update() {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update2` is never used
[INFO] [stdout]   --> tutorial/src/modules/hashmap.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn update2() {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test` is never used
[INFO] [stdout]  --> tutorial/src/modules/panic_test.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn test() {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test1` is never used
[INFO] [stdout]  --> tutorial/src/modules/panic_test.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn test1() {
[INFO] [stdout]   |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `result_example` is never used
[INFO] [stdout]   --> tutorial/src/modules/panic_test.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn result_example() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_username_from_file` is never used
[INFO] [stdout]   --> tutorial/src/modules/panic_test.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn read_username_from_file() -> Result<String, std::io::Error> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_username_from_file_short` is never used
[INFO] [stdout]   --> tutorial/src/modules/panic_test.rs:71:4
[INFO] [stdout]    |
[INFO] [stdout] 71 | fn read_username_from_file_short() -> Result<String, std::io::Error> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_username_from_file_short2` is never used
[INFO] [stdout]   --> tutorial/src/modules/panic_test.rs:80:4
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn read_username_from_file_short2() -> Result<String, std::io::Error> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Guess` is never constructed
[INFO] [stdout]   --> tutorial/src/modules/panic_test.rs:87:12
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub struct Guess {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `value` are never used
[INFO] [stdout]   --> tutorial/src/modules/panic_test.rs:91:12
[INFO] [stdout]    |
[INFO] [stdout] 90 | impl Guess {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 91 |     pub fn new(value: i32) -> Guess {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 97 |     pub fn value(&self) -> i32 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test` is never used
[INFO] [stdout]  --> tutorial/src/modules/code_extract.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn test() {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `largest` is never used
[INFO] [stdout]   --> tutorial/src/modules/code_extract.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn largest(list: &[i32]) -> i32 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `largest_demo` is never used
[INFO] [stdout]   --> tutorial/src/modules/code_extract.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn largest_demo (list: &[i32]) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]  --> tutorial/src/modules/generics.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | struct Point<T> {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `x` is never used
[INFO] [stdout]  --> tutorial/src/modules/generics.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | impl<T> Point<T> {
[INFO] [stdout]   | ---------------- method in this implementation
[INFO] [stdout] 8 |     fn x(&self) -> &T {
[INFO] [stdout]   |        ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `y` is never used
[INFO] [stdout]   --> tutorial/src/modules/generics.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Point<f32> {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 13 |     fn y(&self) -> f32 {
[INFO] [stdout]    |        ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Option` is never used
[INFO] [stdout]   --> tutorial/src/modules/generics.rs:19:6
[INFO] [stdout]    |
[INFO] [stdout] 19 | enum Option<T> {
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Result` is never used
[INFO] [stdout]   --> tutorial/src/modules/generics.rs:23:6
[INFO] [stdout]    |
[INFO] [stdout] 23 | enum Result<T, E> {
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test` is never used
[INFO] [stdout]   --> tutorial/src/modules/generics.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn test() {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Summary` is never used
[INFO] [stdout]  --> tutorial/src/modules/trait_test.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub trait Summary {
[INFO] [stdout]   |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NewArticle` is never constructed
[INFO] [stdout]   --> tutorial/src/modules/trait_test.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct NewArticle {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tweet` is never constructed
[INFO] [stdout]   --> tutorial/src/modules/trait_test.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct Tweet {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test` is never used
[INFO] [stdout]   --> tutorial/src/modules/trait_test.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn test() {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify` is never used
[INFO] [stdout]   --> tutorial/src/modules/trait_test.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn notify(item: &impl Summary) {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify1` is never used
[INFO] [stdout]   --> tutorial/src/modules/trait_test.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn notify1(item: impl Summary + Display) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> tutorial/src/advances/advanced_type.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let f: Thunk = Box::new(|| println!("hello"));
[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]   --> tutorial/src/advances/advanced_type.rs:28:24
[INFO] [stdout]    |
[INFO] [stdout] 28 |     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: function `notify2` is never used
[INFO] [stdout]   --> tutorial/src/modules/trait_test.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn notify2<T: Summary>(item: T) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> tutorial/src/advances/advanced_type.rs:48:16
[INFO] [stdout]    |
[INFO] [stdout] 48 | fn generic1<T>(t: T) {}
[INFO] [stdout]    |                ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify3` is never used
[INFO] [stdout]   --> tutorial/src/modules/trait_test.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn notify3<T: Summary + Display>(item: T) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> tutorial/src/advances/advanced_type.rs:49:23
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn generic2<T: Sized>(t: T) {}
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify4` is never used
[INFO] [stdout]   --> tutorial/src/modules/trait_test.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn notify4<T: Summary + Display, U: Clone + Debug>(a: T, b: U) -> String {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify5` is never used
[INFO] [stdout]   --> tutorial/src/modules/trait_test.rs:73:8
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub fn notify5<T, U>(a: T, b: U) -> String
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> tutorial/src/advances/advanced_type.rs:51:24
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn generic3<T: ?Sized>(t: &T) {} // 表示 T 是一个动态大小类型
[INFO] [stdout]    |                        ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `largest` is never used
[INFO] [stdout]   --> tutorial/src/modules/trait_test.rs:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | fn largest<T: PartialOrd + Copy>(list: &[T]) -> T {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest` is never used
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest_test` is never used
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn longest_test () {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest2` is never used
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:31:4
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn longest2<'a>(x: &'a str, y: &str) -> &'a str {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest3` is never used
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:46:4
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn longest3<'a>(x: &'a str, y: &'a str) -> String {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test` is never used
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub fn test() {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ImportantExcerpt` is never constructed
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | struct ImportantExcerpt<'a> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_struct` is never used
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn test_struct() {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_struct2` is never used
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:84:4
[INFO] [stdout]    |
[INFO] [stdout] 84 | fn test_struct2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `level` and `announce_and_return_part` are never used
[INFO] [stdout]    --> tutorial/src/modules/lifecycle.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | impl<'a> ImportantExcerpt<'a> {
[INFO] [stdout]     | ----------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 112 |     fn level(&self) -> i32 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     fn announce_and_return_part(&self, announcement: &str) -> &str {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]   --> tutorial/src/advances/advanced_function.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let val = Status::Value(1);
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `list_of_statuses`
[INFO] [stdout]   --> tutorial/src/advances/advanced_function.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let list_of_statuses: Vec<Status> = (0u32..20).map(Status::Value).collect();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_list_of_statuses`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `static_lifetime` is never used
[INFO] [stdout]    --> tutorial/src/modules/lifecycle.rs:128:4
[INFO] [stdout]     |
[INFO] [stdout] 128 | fn static_lifetime() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest_with_announcement` is never used
[INFO] [stdout]    --> tutorial/src/modules/lifecycle.rs:145:4
[INFO] [stdout]     |
[INFO] [stdout] 145 | fn longest_with_announcement<'a, T>(x: &'a str, y: &'a str, ann: T) -> &'a str
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]  --> tutorial/src/modules/test.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn run() {}
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Rectangle` is never constructed
[INFO] [stdout]  --> tutorial/src/modules/test.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Rectangle {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `area` is never used
[INFO] [stdout]   --> tutorial/src/modules/test.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Rectangle {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] 10 |     pub fn area(&self) -> u32 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `greeting` is never used
[INFO] [stdout]   --> tutorial/src/modules/test.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn greeting(name: &str) -> String {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Guess` is never constructed
[INFO] [stdout]   --> tutorial/src/modules/test.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct Guess {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> tutorial/src/modules/test.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl Guess {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] 23 |     pub fn new(value: i32) -> Guess {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test` is never used
[INFO] [stdout]  --> tutorial/src/modules/closure.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn test() {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]   --> tutorial/src/modules/closure.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn run() {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cacher` is never constructed
[INFO] [stdout]   --> tutorial/src/modules/closure.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | struct Cacher<T>
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `value` are never used
[INFO] [stdout]   --> tutorial/src/modules/closure.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | / impl <T> Cacher<T>
[INFO] [stdout] 50 | | where
[INFO] [stdout] 51 | |     T: Fn(u32) -> u32,
[INFO] [stdout]    | |______________________- associated items in this implementation
[INFO] [stdout] 52 |   {
[INFO] [stdout] 53 |       fn new(calculation: T) -> Cacher<T> {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |       fn value(&mut self, arg: u32) -> u32 {
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `example_fn` is never used
[INFO] [stdout]    --> tutorial/src/modules/closure.rs:124:8
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub fn example_fn() {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `example_fn_mut` is never used
[INFO] [stdout]    --> tutorial/src/modules/closure.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub fn example_fn_mut() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `example_fn_once` is never used
[INFO] [stdout]    --> tutorial/src/modules/closure.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn example_fn_once() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_move` is never used
[INFO] [stdout]    --> tutorial/src/modules/closure.rs:166:4
[INFO] [stdout]     |
[INFO] [stdout] 166 | fn test_move() {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `example_self_parameter` is never used
[INFO] [stdout]    --> tutorial/src/modules/closure.rs:179:8
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub fn example_self_parameter() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `example_practical_usage` is never used
[INFO] [stdout]    --> tutorial/src/modules/closure.rs:222:8
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub fn example_practical_usage() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PrimaryColor` is never used
[INFO] [stdout]  --> tutorial/src/modules/pub_use.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 |   pub enum PrimaryColor {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SecondaryColor` is never used
[INFO] [stdout]   --> tutorial/src/modules/pub_use.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 |   pub enum SecondaryColor {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mix` is never used
[INFO] [stdout]   --> tutorial/src/modules/pub_use.rs:36:10
[INFO] [stdout]    |
[INFO] [stdout] 36 |   pub fn mix(c1: PrimaryColor, c2: PrimaryColor) -> SecondaryColor {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Config` is never constructed
[INFO] [stdout]  --> tutorial/src/practice/args.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct Config {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main` is never used
[INFO] [stdout]  --> tutorial/src/demo/guess.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn main() {
[INFO] [stdout]   |    ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> tutorial/src/practice/args.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Config {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 11 |     fn new(args: &[OsString]) -> Result<Config, &'static str> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]   --> tutorial/src/practice/args.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn run() {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `search` is never used
[INFO] [stdout]   --> tutorial/src/practice/args.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub fn search<'a>(query: &str, content: &'a str) -> Vec<&'a str> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test` is never used
[INFO] [stdout]  --> tutorial/src/modules/vector.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn test() {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `search_case_insensitive` is never used
[INFO] [stdout]   --> tutorial/src/practice/args.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub fn search_case_insensitive<'a>(query: &str, content: &'a str) -> Vec<&'a str> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test2` is never used
[INFO] [stdout]   --> tutorial/src/modules/vector.rs:29:4
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn test2() {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]  --> tutorial/src/advances/box_test.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn run() {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `travel_vec` is never used
[INFO] [stdout]   --> tutorial/src/modules/vector.rs:45:4
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn travel_vec() {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test` is never used
[INFO] [stdout]   --> tutorial/src/advances/box_test.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn test() {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RefList` is never used
[INFO] [stdout]   --> tutorial/src/advances/box_test.rs:34:6
[INFO] [stdout]    |
[INFO] [stdout] 34 | enum RefList<'a> {
[INFO] [stdout]    |      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `traverse` is never used
[INFO] [stdout]   --> tutorial/src/advances/box_test.rs:39:6
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl<'a> RefList<'a> {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] 39 |   fn traverse(&self) {
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BoxList` is never used
[INFO] [stdout]   --> tutorial/src/advances/box_test.rs:55:6
[INFO] [stdout]    |
[INFO] [stdout] 55 | enum BoxList {
[INFO] [stdout]    |      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `traverse` is never used
[INFO] [stdout]   --> tutorial/src/advances/box_test.rs:60:6
[INFO] [stdout]    |
[INFO] [stdout] 59 | impl BoxList {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] 60 |   fn traverse(&self) {
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]  --> tutorial/src/advances/deref.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn run() {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normal_deref` is never used
[INFO] [stdout]   --> tutorial/src/advances/deref.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn normal_deref() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `box_deref` is never used
[INFO] [stdout]   --> tutorial/src/advances/deref.rs:27:4
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn box_deref() {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MyBox` is never constructed
[INFO] [stdout]   --> tutorial/src/advances/deref.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | struct MyBox<T>(T); // 元组结构体
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> tutorial/src/advances/deref.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl<T> MyBox<T> {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 41 |     fn new(x: T) -> MyBox<T> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_custom_deref` is never used
[INFO] [stdout]   --> tutorial/src/advances/deref.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn test_custom_deref() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_deref_coercion` is never used
[INFO] [stdout]   --> tutorial/src/advances/deref.rs:66:4
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn test_deref_coercion() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hello` is never used
[INFO] [stdout]   --> tutorial/src/advances/deref.rs:76:4
[INFO] [stdout]    |
[INFO] [stdout] 76 | fn hello(name: &str) {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]  --> tutorial/src/advances/drop.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn run() {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CustomSmartPointer` is never constructed
[INFO] [stdout]   --> tutorial/src/advances/drop.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct CustomSmartPointer {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `enum_vec` is never used
[INFO] [stdout]   --> tutorial/src/modules/vector.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn enum_vec() {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_drop` is never used
[INFO] [stdout]   --> tutorial/src/advances/drop.rs:22:4
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn test_drop() {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]  --> tutorial/src/advances/rc_test.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn run() {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BoxList` is never used
[INFO] [stdout]   --> tutorial/src/advances/rc_test.rs:11:6
[INFO] [stdout]    |
[INFO] [stdout] 11 | enum BoxList {
[INFO] [stdout]    |      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test` is never used
[INFO] [stdout]   --> tutorial/src/modules/string.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn test() {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RcList` is never used
[INFO] [stdout]   --> tutorial/src/advances/rc_test.rs:15:6
[INFO] [stdout]    |
[INFO] [stdout] 15 | enum RcList {
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `example` is never used
[INFO] [stdout]   --> tutorial/src/modules/string.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn example() {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_rc` is never used
[INFO] [stdout]   --> tutorial/src/advances/rc_test.rs:24:4
[INFO] [stdout]    |
[INFO] [stdout] 24 | fn test_rc() {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `example2` is never used
[INFO] [stdout]   --> tutorial/src/modules/string.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn example2() {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> tutorial/src/advances/cycle_ref.rs:16:10
[INFO] [stdout]    |
[INFO] [stdout] 16 |     Cons(i32, RefCell<Rc<List>>),
[INFO] [stdout]    |     ---- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `List` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 16 -     Cons(i32, RefCell<Rc<List>>),
[INFO] [stdout] 16 +     Cons((), RefCell<Rc<List>>),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `append_example` is never used
[INFO] [stdout]   --> tutorial/src/modules/string.rs:90:4
[INFO] [stdout]    |
[INFO] [stdout] 90 | fn append_example() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `for_example` is never used
[INFO] [stdout]    --> tutorial/src/modules/string.rs:116:4
[INFO] [stdout]     |
[INFO] [stdout] 116 | fn for_example() {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `value` and `children` are never read
[INFO] [stdout]   --> tutorial/src/advances/cycle_ref.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 60 | struct Node {
[INFO] [stdout]    |        ---- fields in this struct
[INFO] [stdout] 61 |     value: i32,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 62 |     parent: RefCell<Weak<Node>>,
[INFO] [stdout] 63 |     children: RefCell<Vec<Rc<Node>>>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]   --> tutorial/src/advances/thread.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn run() {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test` is never used
[INFO] [stdout]  --> tutorial/src/modules/hashmap.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn test() {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `thread_test` is never used
[INFO] [stdout]   --> tutorial/src/advances/thread.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn thread_test() {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `demo` is never used
[INFO] [stdout]   --> tutorial/src/modules/hashmap.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn demo () {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `move_test` is never used
[INFO] [stdout]   --> tutorial/src/advances/thread.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn move_test() {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]  --> tutorial/src/advances/thread_msg.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn run() {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update` is never used
[INFO] [stdout]   --> tutorial/src/modules/hashmap.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn update() {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_channel` is never used
[INFO] [stdout]   --> tutorial/src/advances/thread_msg.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn test_channel() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_channel1` is never used
[INFO] [stdout]   --> tutorial/src/advances/thread_msg.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn test_channel1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_clone_sender` is never used
[INFO] [stdout]   --> tutorial/src/advances/thread_msg.rs:45:4
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn test_clone_sender() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Clone` is never used
[INFO] [stdout]    --> tutorial/src/advances/trait_object.rs:114:15
[INFO] [stdout]     |
[INFO] [stdout] 114 |     pub trait Clone {
[INFO] [stdout]     |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Screen` is never constructed
[INFO] [stdout]    --> tutorial/src/advances/trait_object.rs:117:16
[INFO] [stdout]     |
[INFO] [stdout] 117 |     pub struct Screen {
[INFO] [stdout]     |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]  --> tutorial/src/advances/object_oriented.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn run() {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_state_pattern` is never used
[INFO] [stdout]   --> tutorial/src/advances/object_oriented.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn test_state_pattern() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_text`, `content`, `request_review`, and `approve` are never used
[INFO] [stdout]   --> tutorial/src/advances/object_oriented.rs:19:16
[INFO] [stdout]    |
[INFO] [stdout] 18 |     impl Post {
[INFO] [stdout]    |     --------- associated items in this implementation
[INFO] [stdout] 19 |         pub fn new() -> Post {
[INFO] [stdout]    |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |         pub fn add_text(&mut self, text: &str) {
[INFO] [stdout]    |                ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |         pub fn content(&self) -> &str {
[INFO] [stdout]    |                ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |         pub fn request_review(&mut self) {
[INFO] [stdout]    |                ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |         pub fn approve(&mut self) {
[INFO] [stdout]    |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_functional` is never used
[INFO] [stdout]    --> tutorial/src/advances/object_oriented.rs:109:4
[INFO] [stdout]     |
[INFO] [stdout] 109 | fn test_functional() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `content` are never used
[INFO] [stdout]    --> tutorial/src/advances/object_oriented.rs:117:16
[INFO] [stdout]     |
[INFO] [stdout] 116 |     impl Post {
[INFO] [stdout]     |     --------- associated items in this implementation
[INFO] [stdout] 117 |         pub fn new() -> DraftPost {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |         pub fn content(&self) -> &str {
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_text` and `request_review` are never used
[INFO] [stdout]    --> tutorial/src/advances/object_oriented.rs:127:16
[INFO] [stdout]     |
[INFO] [stdout] 126 |     impl DraftPost {
[INFO] [stdout]     |     -------------- methods in this implementation
[INFO] [stdout] 127 |         pub fn add_text(&mut self, text: &str) {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |         pub fn request_review(self) -> PendingReviewPost {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `approve` is never used
[INFO] [stdout]    --> tutorial/src/advances/object_oriented.rs:140:16
[INFO] [stdout]     |
[INFO] [stdout] 139 |     impl PendingReviewPost {
[INFO] [stdout]     |     ---------------------- method in this implementation
[INFO] [stdout] 140 |         pub fn approve(self) -> Post {
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]  --> tutorial/src/advances/pattern_matching.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn run() {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_if_let` is never used
[INFO] [stdout]   --> tutorial/src/advances/pattern_matching.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn test_if_let() {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_while_let` is never used
[INFO] [stdout]   --> tutorial/src/advances/pattern_matching.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn test_while_let() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_for` is never used
[INFO] [stdout]   --> tutorial/src/advances/pattern_matching.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn test_for() {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_coordinates` is never used
[INFO] [stdout]   --> tutorial/src/advances/pattern_matching.rs:64:4
[INFO] [stdout]    |
[INFO] [stdout] 64 | fn print_coordinates(&(x, y): &(i32, i32)) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_function` is never used
[INFO] [stdout]   --> tutorial/src/advances/pattern_matching.rs:67:4
[INFO] [stdout]    |
[INFO] [stdout] 67 | fn test_function() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_match` is never used
[INFO] [stdout]   --> tutorial/src/advances/pattern_matching.rs:76:4
[INFO] [stdout]    |
[INFO] [stdout] 76 | fn test_match() {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_pattern_syntax` is never used
[INFO] [stdout]   --> tutorial/src/advances/pattern_matching.rs:89:4
[INFO] [stdout]    |
[INFO] [stdout] 89 | fn test_pattern_syntax() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_bind` is never used
[INFO] [stdout]    --> tutorial/src/advances/pattern_matching.rs:283:4
[INFO] [stdout]     |
[INFO] [stdout] 283 | fn test_bind() {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]  --> tutorial/src/advances/unsafe_rust.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn run() {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_raw_pointer` is never used
[INFO] [stdout]   --> tutorial/src/advances/unsafe_rust.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn test_raw_pointer() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dangerous` is never used
[INFO] [stdout]   --> tutorial/src/advances/unsafe_rust.rs:51:11
[INFO] [stdout]    |
[INFO] [stdout] 51 | unsafe fn dangerous() {
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_unsafe_function` is never used
[INFO] [stdout]   --> tutorial/src/advances/unsafe_rust.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn test_unsafe_function() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_safe_abstraction` is never used
[INFO] [stdout]   --> tutorial/src/advances/unsafe_rust.rs:63:4
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn test_safe_abstraction() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `split_at_mut` is never used
[INFO] [stdout]   --> tutorial/src/advances/unsafe_rust.rs:75:4
[INFO] [stdout]    |
[INFO] [stdout] 75 | fn split_at_mut(slice: &mut [i32], mid: usize) -> (&mut [i32], &mut [i32]) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_extern_function` is never used
[INFO] [stdout]   --> tutorial/src/advances/unsafe_rust.rs:96:4
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn test_extern_function() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `COUNTER` is never used
[INFO] [stdout]    --> tutorial/src/advances/unsafe_rust.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout] 114 | static mut COUNTER: u32 = 0;
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_to_count` is never used
[INFO] [stdout]    --> tutorial/src/advances/unsafe_rust.rs:116:4
[INFO] [stdout]     |
[INFO] [stdout] 116 | fn add_to_count(inc: u32) {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_mutable_static_variable` is never used
[INFO] [stdout]    --> tutorial/src/advances/unsafe_rust.rs:121:4
[INFO] [stdout]     |
[INFO] [stdout] 121 | fn test_mutable_static_variable() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Foo` is never used
[INFO] [stdout]    --> tutorial/src/advances/unsafe_rust.rs:136:14
[INFO] [stdout]     |
[INFO] [stdout] 136 | unsafe trait Foo {
[INFO] [stdout]     |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_unsafe_trait` is never used
[INFO] [stdout]    --> tutorial/src/advances/unsafe_rust.rs:144:4
[INFO] [stdout]     |
[INFO] [stdout] 144 | fn test_unsafe_trait() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `abs` is never used
[INFO] [stdout]   --> tutorial/src/advances/unsafe_rust.rs:94:8
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn abs(input: i32) -> i32;
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Iterator` is never used
[INFO] [stdout]   --> tutorial/src/advances/advanced_trait.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub trait Iterator {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_generic` is never used
[INFO] [stdout]   --> tutorial/src/advances/advanced_trait.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn test_generic() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_associated_type` is never used
[INFO] [stdout]   --> tutorial/src/advances/advanced_trait.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn test_associated_type() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Millimeters` is never constructed
[INFO] [stdout]   --> tutorial/src/advances/advanced_trait.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 88 |     struct Millimeters(u32);
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Meters` is never constructed
[INFO] [stdout]   --> tutorial/src/advances/advanced_trait.rs:89:12
[INFO] [stdout]    |
[INFO] [stdout] 89 |     struct Meters(u32);
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `OutlinePrint` is never used
[INFO] [stdout]    --> tutorial/src/advances/advanced_trait.rs:161:11
[INFO] [stdout]     |
[INFO] [stdout] 161 |     trait OutlinePrint: fmt::Display {
[INFO] [stdout]     |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `takes_long_type` is never used
[INFO] [stdout]   --> tutorial/src/advances/advanced_type.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn takes_long_type(f: Thunk) {}
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `returns_long_type` is never used
[INFO] [stdout]   --> tutorial/src/advances/advanced_type.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 |     fn returns_long_type() -> Thunk {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_never_type` is never used
[INFO] [stdout]   --> tutorial/src/advances/advanced_type.rs:39:4
[INFO] [stdout]    |
[INFO] [stdout] 39 | fn test_never_type() -> ! {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generic1` is never used
[INFO] [stdout]   --> tutorial/src/advances/advanced_type.rs:48:4
[INFO] [stdout]    |
[INFO] [stdout] 48 | fn generic1<T>(t: T) {}
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generic2` is never used
[INFO] [stdout]   --> tutorial/src/advances/advanced_type.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn generic2<T: Sized>(t: T) {}
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generic3` is never used
[INFO] [stdout]   --> tutorial/src/advances/advanced_type.rs:51:4
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn generic3<T: ?Sized>(t: &T) {} // 表示 T 是一个动态大小类型
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> tutorial/src/advances/advanced_function.rs:40:15
[INFO] [stdout]    |
[INFO] [stdout] 40 |         Value(u32),
[INFO] [stdout]    |         ----- ^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         field in this variant
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 40 -         Value(u32),
[INFO] [stdout] 40 +         Value(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Stop` is never constructed
[INFO] [stdout]   --> tutorial/src/advances/advanced_function.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     enum Status {
[INFO] [stdout]    |          ------ variant in this enum
[INFO] [stdout] 40 |         Value(u32),
[INFO] [stdout] 41 |         Stop,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `return_closure` is never used
[INFO] [stdout]   --> tutorial/src/advances/advanced_function.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn return_closure() -> Box<dyn Fn(i32) -> i32> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update2` is never used
[INFO] [stdout]   --> tutorial/src/modules/hashmap.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn update2() {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test` is never used
[INFO] [stdout]  --> tutorial/src/modules/panic_test.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn test() {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test1` is never used
[INFO] [stdout]  --> tutorial/src/modules/panic_test.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn test1() {
[INFO] [stdout]   |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `result_example` is never used
[INFO] [stdout]   --> tutorial/src/modules/panic_test.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn result_example() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_username_from_file` is never used
[INFO] [stdout]   --> tutorial/src/modules/panic_test.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn read_username_from_file() -> Result<String, std::io::Error> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_username_from_file_short` is never used
[INFO] [stdout]   --> tutorial/src/modules/panic_test.rs:71:4
[INFO] [stdout]    |
[INFO] [stdout] 71 | fn read_username_from_file_short() -> Result<String, std::io::Error> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_username_from_file_short2` is never used
[INFO] [stdout]   --> tutorial/src/modules/panic_test.rs:80:4
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn read_username_from_file_short2() -> Result<String, std::io::Error> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Guess` is never constructed
[INFO] [stdout]   --> tutorial/src/modules/panic_test.rs:87:12
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub struct Guess {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `value` are never used
[INFO] [stdout]   --> tutorial/src/modules/panic_test.rs:91:12
[INFO] [stdout]    |
[INFO] [stdout] 90 | impl Guess {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 91 |     pub fn new(value: i32) -> Guess {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 97 |     pub fn value(&self) -> i32 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test` is never used
[INFO] [stdout]  --> tutorial/src/modules/code_extract.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn test() {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `largest` is never used
[INFO] [stdout]   --> tutorial/src/modules/code_extract.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn largest(list: &[i32]) -> i32 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `largest_demo` is never used
[INFO] [stdout]   --> tutorial/src/modules/code_extract.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn largest_demo (list: &[i32]) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]  --> tutorial/src/modules/generics.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | struct Point<T> {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `x` is never used
[INFO] [stdout]  --> tutorial/src/modules/generics.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | impl<T> Point<T> {
[INFO] [stdout]   | ---------------- method in this implementation
[INFO] [stdout] 8 |     fn x(&self) -> &T {
[INFO] [stdout]   |        ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `y` is never used
[INFO] [stdout]   --> tutorial/src/modules/generics.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Point<f32> {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 13 |     fn y(&self) -> f32 {
[INFO] [stdout]    |        ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Option` is never used
[INFO] [stdout]   --> tutorial/src/modules/generics.rs:19:6
[INFO] [stdout]    |
[INFO] [stdout] 19 | enum Option<T> {
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Result` is never used
[INFO] [stdout]   --> tutorial/src/modules/generics.rs:23:6
[INFO] [stdout]    |
[INFO] [stdout] 23 | enum Result<T, E> {
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test` is never used
[INFO] [stdout]   --> tutorial/src/modules/generics.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn test() {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Summary` is never used
[INFO] [stdout]  --> tutorial/src/modules/trait_test.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub trait Summary {
[INFO] [stdout]   |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NewArticle` is never constructed
[INFO] [stdout]   --> tutorial/src/modules/trait_test.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct NewArticle {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tweet` is never constructed
[INFO] [stdout]   --> tutorial/src/modules/trait_test.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct Tweet {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test` is never used
[INFO] [stdout]   --> tutorial/src/modules/trait_test.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn test() {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify` is never used
[INFO] [stdout]   --> tutorial/src/modules/trait_test.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn notify(item: &impl Summary) {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify1` is never used
[INFO] [stdout]   --> tutorial/src/modules/trait_test.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn notify1(item: impl Summary + Display) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify2` is never used
[INFO] [stdout]   --> tutorial/src/modules/trait_test.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn notify2<T: Summary>(item: T) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify3` is never used
[INFO] [stdout]   --> tutorial/src/modules/trait_test.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn notify3<T: Summary + Display>(item: T) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify4` is never used
[INFO] [stdout]   --> tutorial/src/modules/trait_test.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn notify4<T: Summary + Display, U: Clone + Debug>(a: T, b: U) -> String {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify5` is never used
[INFO] [stdout]   --> tutorial/src/modules/trait_test.rs:73:8
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub fn notify5<T, U>(a: T, b: U) -> String
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `largest` is never used
[INFO] [stdout]   --> tutorial/src/modules/trait_test.rs:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | fn largest<T: PartialOrd + Copy>(list: &[T]) -> T {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest` is never used
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest_test` is never used
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn longest_test () {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest2` is never used
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:31:4
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn longest2<'a>(x: &'a str, y: &str) -> &'a str {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest3` is never used
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:46:4
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn longest3<'a>(x: &'a str, y: &'a str) -> String {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test` is never used
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub fn test() {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ImportantExcerpt` is never constructed
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | struct ImportantExcerpt<'a> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_struct` is never used
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn test_struct() {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_struct2` is never used
[INFO] [stdout]   --> tutorial/src/modules/lifecycle.rs:84:4
[INFO] [stdout]    |
[INFO] [stdout] 84 | fn test_struct2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `level` and `announce_and_return_part` are never used
[INFO] [stdout]    --> tutorial/src/modules/lifecycle.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | impl<'a> ImportantExcerpt<'a> {
[INFO] [stdout]     | ----------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 112 |     fn level(&self) -> i32 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     fn announce_and_return_part(&self, announcement: &str) -> &str {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `static_lifetime` is never used
[INFO] [stdout]    --> tutorial/src/modules/lifecycle.rs:128:4
[INFO] [stdout]     |
[INFO] [stdout] 128 | fn static_lifetime() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest_with_announcement` is never used
[INFO] [stdout]    --> tutorial/src/modules/lifecycle.rs:145:4
[INFO] [stdout]     |
[INFO] [stdout] 145 | fn longest_with_announcement<'a, T>(x: &'a str, y: &'a str, ann: T) -> &'a str
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]  --> tutorial/src/modules/test.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn run() {}
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `value` is never read
[INFO] [stdout]   --> tutorial/src/modules/test.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct Guess {
[INFO] [stdout]    |        ----- field in this struct
[INFO] [stdout] 20 |     value: i32,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test` is never used
[INFO] [stdout]  --> tutorial/src/modules/closure.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn test() {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]   --> tutorial/src/modules/closure.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn run() {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cacher` is never constructed
[INFO] [stdout]   --> tutorial/src/modules/closure.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | struct Cacher<T>
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `value` are never used
[INFO] [stdout]   --> tutorial/src/modules/closure.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | / impl <T> Cacher<T>
[INFO] [stdout] 50 | | where
[INFO] [stdout] 51 | |     T: Fn(u32) -> u32,
[INFO] [stdout]    | |______________________- associated items in this implementation
[INFO] [stdout] 52 |   {
[INFO] [stdout] 53 |       fn new(calculation: T) -> Cacher<T> {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |       fn value(&mut self, arg: u32) -> u32 {
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `example_fn` is never used
[INFO] [stdout]    --> tutorial/src/modules/closure.rs:124:8
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub fn example_fn() {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `example_fn_mut` is never used
[INFO] [stdout]    --> tutorial/src/modules/closure.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub fn example_fn_mut() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `example_fn_once` is never used
[INFO] [stdout]    --> tutorial/src/modules/closure.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn example_fn_once() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_move` is never used
[INFO] [stdout]    --> tutorial/src/modules/closure.rs:166:4
[INFO] [stdout]     |
[INFO] [stdout] 166 | fn test_move() {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `example_self_parameter` is never used
[INFO] [stdout]    --> tutorial/src/modules/closure.rs:179:8
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub fn example_self_parameter() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `example_practical_usage` is never used
[INFO] [stdout]    --> tutorial/src/modules/closure.rs:222:8
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub fn example_practical_usage() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PrimaryColor` is never used
[INFO] [stdout]  --> tutorial/src/modules/pub_use.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 |   pub enum PrimaryColor {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SecondaryColor` is never used
[INFO] [stdout]   --> tutorial/src/modules/pub_use.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 |   pub enum SecondaryColor {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mix` is never used
[INFO] [stdout]   --> tutorial/src/modules/pub_use.rs:36:10
[INFO] [stdout]    |
[INFO] [stdout] 36 |   pub fn mix(c1: PrimaryColor, c2: PrimaryColor) -> SecondaryColor {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `case_sensitive` is never read
[INFO] [stdout]  --> tutorial/src/practice/args.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct Config {
[INFO] [stdout]   |        ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 8 |     pub case_sensitive: bool,
[INFO] [stdout]   |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]   --> tutorial/src/practice/args.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn run() {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]  --> tutorial/src/advances/box_test.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn run() {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test` is never used
[INFO] [stdout]   --> tutorial/src/advances/box_test.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn test() {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RefList` is never used
[INFO] [stdout]   --> tutorial/src/advances/box_test.rs:34:6
[INFO] [stdout]    |
[INFO] [stdout] 34 | enum RefList<'a> {
[INFO] [stdout]    |      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `traverse` is never used
[INFO] [stdout]   --> tutorial/src/advances/box_test.rs:39:6
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl<'a> RefList<'a> {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] 39 |   fn traverse(&self) {
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BoxList` is never used
[INFO] [stdout]   --> tutorial/src/advances/box_test.rs:55:6
[INFO] [stdout]    |
[INFO] [stdout] 55 | enum BoxList {
[INFO] [stdout]    |      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `traverse` is never used
[INFO] [stdout]   --> tutorial/src/advances/box_test.rs:60:6
[INFO] [stdout]    |
[INFO] [stdout] 59 | impl BoxList {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] 60 |   fn traverse(&self) {
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]  --> tutorial/src/advances/deref.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn run() {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normal_deref` is never used
[INFO] [stdout]   --> tutorial/src/advances/deref.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn normal_deref() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `box_deref` is never used
[INFO] [stdout]   --> tutorial/src/advances/deref.rs:27:4
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn box_deref() {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MyBox` is never constructed
[INFO] [stdout]   --> tutorial/src/advances/deref.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | struct MyBox<T>(T); // 元组结构体
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> tutorial/src/advances/deref.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl<T> MyBox<T> {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 41 |     fn new(x: T) -> MyBox<T> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_custom_deref` is never used
[INFO] [stdout]   --> tutorial/src/advances/deref.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn test_custom_deref() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_deref_coercion` is never used
[INFO] [stdout]   --> tutorial/src/advances/deref.rs:66:4
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn test_deref_coercion() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hello` is never used
[INFO] [stdout]   --> tutorial/src/advances/deref.rs:76:4
[INFO] [stdout]    |
[INFO] [stdout] 76 | fn hello(name: &str) {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]  --> tutorial/src/advances/drop.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn run() {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CustomSmartPointer` is never constructed
[INFO] [stdout]   --> tutorial/src/advances/drop.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct CustomSmartPointer {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_drop` is never used
[INFO] [stdout]   --> tutorial/src/advances/drop.rs:22:4
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn test_drop() {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]  --> tutorial/src/advances/rc_test.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn run() {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BoxList` is never used
[INFO] [stdout]   --> tutorial/src/advances/rc_test.rs:11:6
[INFO] [stdout]    |
[INFO] [stdout] 11 | enum BoxList {
[INFO] [stdout]    |      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RcList` is never used
[INFO] [stdout]   --> tutorial/src/advances/rc_test.rs:15:6
[INFO] [stdout]    |
[INFO] [stdout] 15 | enum RcList {
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_rc` is never used
[INFO] [stdout]   --> tutorial/src/advances/rc_test.rs:24:4
[INFO] [stdout]    |
[INFO] [stdout] 24 | fn test_rc() {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> tutorial/src/advances/cycle_ref.rs:16:10
[INFO] [stdout]    |
[INFO] [stdout] 16 |     Cons(i32, RefCell<Rc<List>>),
[INFO] [stdout]    |     ---- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `List` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 16 -     Cons(i32, RefCell<Rc<List>>),
[INFO] [stdout] 16 +     Cons((), RefCell<Rc<List>>),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `value` and `children` are never read
[INFO] [stdout]   --> tutorial/src/advances/cycle_ref.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 60 | struct Node {
[INFO] [stdout]    |        ---- fields in this struct
[INFO] [stdout] 61 |     value: i32,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 62 |     parent: RefCell<Weak<Node>>,
[INFO] [stdout] 63 |     children: RefCell<Vec<Rc<Node>>>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]   --> tutorial/src/advances/thread.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn run() {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `thread_test` is never used
[INFO] [stdout]   --> tutorial/src/advances/thread.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn thread_test() {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `move_test` is never used
[INFO] [stdout]   --> tutorial/src/advances/thread.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn move_test() {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]  --> tutorial/src/advances/thread_msg.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn run() {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_channel` is never used
[INFO] [stdout]   --> tutorial/src/advances/thread_msg.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn test_channel() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_channel1` is never used
[INFO] [stdout]   --> tutorial/src/advances/thread_msg.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn test_channel1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_clone_sender` is never used
[INFO] [stdout]   --> tutorial/src/advances/thread_msg.rs:45:4
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn test_clone_sender() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Clone` is never used
[INFO] [stdout]    --> tutorial/src/advances/trait_object.rs:114:15
[INFO] [stdout]     |
[INFO] [stdout] 114 |     pub trait Clone {
[INFO] [stdout]     |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Screen` is never constructed
[INFO] [stdout]    --> tutorial/src/advances/trait_object.rs:117:16
[INFO] [stdout]     |
[INFO] [stdout] 117 |     pub struct Screen {
[INFO] [stdout]     |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]  --> tutorial/src/advances/object_oriented.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn run() {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_state_pattern` is never used
[INFO] [stdout]   --> tutorial/src/advances/object_oriented.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn test_state_pattern() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_text`, `content`, `request_review`, and `approve` are never used
[INFO] [stdout]   --> tutorial/src/advances/object_oriented.rs:19:16
[INFO] [stdout]    |
[INFO] [stdout] 18 |     impl Post {
[INFO] [stdout]    |     --------- associated items in this implementation
[INFO] [stdout] 19 |         pub fn new() -> Post {
[INFO] [stdout]    |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |         pub fn add_text(&mut self, text: &str) {
[INFO] [stdout]    |                ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |         pub fn content(&self) -> &str {
[INFO] [stdout]    |                ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |         pub fn request_review(&mut self) {
[INFO] [stdout]    |                ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |         pub fn approve(&mut self) {
[INFO] [stdout]    |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_functional` is never used
[INFO] [stdout]    --> tutorial/src/advances/object_oriented.rs:109:4
[INFO] [stdout]     |
[INFO] [stdout] 109 | fn test_functional() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `content` are never used
[INFO] [stdout]    --> tutorial/src/advances/object_oriented.rs:117:16
[INFO] [stdout]     |
[INFO] [stdout] 116 |     impl Post {
[INFO] [stdout]     |     --------- associated items in this implementation
[INFO] [stdout] 117 |         pub fn new() -> DraftPost {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |         pub fn content(&self) -> &str {
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_text` and `request_review` are never used
[INFO] [stdout]    --> tutorial/src/advances/object_oriented.rs:127:16
[INFO] [stdout]     |
[INFO] [stdout] 126 |     impl DraftPost {
[INFO] [stdout]     |     -------------- methods in this implementation
[INFO] [stdout] 127 |         pub fn add_text(&mut self, text: &str) {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |         pub fn request_review(self) -> PendingReviewPost {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `approve` is never used
[INFO] [stdout]    --> tutorial/src/advances/object_oriented.rs:140:16
[INFO] [stdout]     |
[INFO] [stdout] 139 |     impl PendingReviewPost {
[INFO] [stdout]     |     ---------------------- method in this implementation
[INFO] [stdout] 140 |         pub fn approve(self) -> Post {
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]  --> tutorial/src/advances/pattern_matching.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn run() {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_if_let` is never used
[INFO] [stdout]   --> tutorial/src/advances/pattern_matching.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn test_if_let() {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_while_let` is never used
[INFO] [stdout]   --> tutorial/src/advances/pattern_matching.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn test_while_let() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_for` is never used
[INFO] [stdout]   --> tutorial/src/advances/pattern_matching.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn test_for() {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_coordinates` is never used
[INFO] [stdout]   --> tutorial/src/advances/pattern_matching.rs:64:4
[INFO] [stdout]    |
[INFO] [stdout] 64 | fn print_coordinates(&(x, y): &(i32, i32)) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_function` is never used
[INFO] [stdout]   --> tutorial/src/advances/pattern_matching.rs:67:4
[INFO] [stdout]    |
[INFO] [stdout] 67 | fn test_function() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_match` is never used
[INFO] [stdout]   --> tutorial/src/advances/pattern_matching.rs:76:4
[INFO] [stdout]    |
[INFO] [stdout] 76 | fn test_match() {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_pattern_syntax` is never used
[INFO] [stdout]   --> tutorial/src/advances/pattern_matching.rs:89:4
[INFO] [stdout]    |
[INFO] [stdout] 89 | fn test_pattern_syntax() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_bind` is never used
[INFO] [stdout]    --> tutorial/src/advances/pattern_matching.rs:283:4
[INFO] [stdout]     |
[INFO] [stdout] 283 | fn test_bind() {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]  --> tutorial/src/advances/unsafe_rust.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn run() {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_raw_pointer` is never used
[INFO] [stdout]   --> tutorial/src/advances/unsafe_rust.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn test_raw_pointer() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dangerous` is never used
[INFO] [stdout]   --> tutorial/src/advances/unsafe_rust.rs:51:11
[INFO] [stdout]    |
[INFO] [stdout] 51 | unsafe fn dangerous() {
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_unsafe_function` is never used
[INFO] [stdout]   --> tutorial/src/advances/unsafe_rust.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn test_unsafe_function() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_safe_abstraction` is never used
[INFO] [stdout]   --> tutorial/src/advances/unsafe_rust.rs:63:4
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn test_safe_abstraction() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `split_at_mut` is never used
[INFO] [stdout]   --> tutorial/src/advances/unsafe_rust.rs:75:4
[INFO] [stdout]    |
[INFO] [stdout] 75 | fn split_at_mut(slice: &mut [i32], mid: usize) -> (&mut [i32], &mut [i32]) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_extern_function` is never used
[INFO] [stdout]   --> tutorial/src/advances/unsafe_rust.rs:96:4
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn test_extern_function() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `COUNTER` is never used
[INFO] [stdout]    --> tutorial/src/advances/unsafe_rust.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout] 114 | static mut COUNTER: u32 = 0;
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_to_count` is never used
[INFO] [stdout]    --> tutorial/src/advances/unsafe_rust.rs:116:4
[INFO] [stdout]     |
[INFO] [stdout] 116 | fn add_to_count(inc: u32) {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_mutable_static_variable` is never used
[INFO] [stdout]    --> tutorial/src/advances/unsafe_rust.rs:121:4
[INFO] [stdout]     |
[INFO] [stdout] 121 | fn test_mutable_static_variable() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Foo` is never used
[INFO] [stdout]    --> tutorial/src/advances/unsafe_rust.rs:136:14
[INFO] [stdout]     |
[INFO] [stdout] 136 | unsafe trait Foo {
[INFO] [stdout]     |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_unsafe_trait` is never used
[INFO] [stdout]    --> tutorial/src/advances/unsafe_rust.rs:144:4
[INFO] [stdout]     |
[INFO] [stdout] 144 | fn test_unsafe_trait() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `abs` is never used
[INFO] [stdout]   --> tutorial/src/advances/unsafe_rust.rs:94:8
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn abs(input: i32) -> i32;
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Iterator` is never used
[INFO] [stdout]   --> tutorial/src/advances/advanced_trait.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub trait Iterator {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_generic` is never used
[INFO] [stdout]   --> tutorial/src/advances/advanced_trait.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn test_generic() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_associated_type` is never used
[INFO] [stdout]   --> tutorial/src/advances/advanced_trait.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn test_associated_type() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Millimeters` is never constructed
[INFO] [stdout]   --> tutorial/src/advances/advanced_trait.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 88 |     struct Millimeters(u32);
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Meters` is never constructed
[INFO] [stdout]   --> tutorial/src/advances/advanced_trait.rs:89:12
[INFO] [stdout]    |
[INFO] [stdout] 89 |     struct Meters(u32);
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `OutlinePrint` is never used
[INFO] [stdout]    --> tutorial/src/advances/advanced_trait.rs:161:11
[INFO] [stdout]     |
[INFO] [stdout] 161 |     trait OutlinePrint: fmt::Display {
[INFO] [stdout]     |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `takes_long_type` is never used
[INFO] [stdout]   --> tutorial/src/advances/advanced_type.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn takes_long_type(f: Thunk) {}
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `returns_long_type` is never used
[INFO] [stdout]   --> tutorial/src/advances/advanced_type.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 |     fn returns_long_type() -> Thunk {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_never_type` is never used
[INFO] [stdout]   --> tutorial/src/advances/advanced_type.rs:39:4
[INFO] [stdout]    |
[INFO] [stdout] 39 | fn test_never_type() -> ! {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generic1` is never used
[INFO] [stdout]   --> tutorial/src/advances/advanced_type.rs:48:4
[INFO] [stdout]    |
[INFO] [stdout] 48 | fn generic1<T>(t: T) {}
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generic2` is never used
[INFO] [stdout]   --> tutorial/src/advances/advanced_type.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn generic2<T: Sized>(t: T) {}
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generic3` is never used
[INFO] [stdout]   --> tutorial/src/advances/advanced_type.rs:51:4
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn generic3<T: ?Sized>(t: &T) {} // 表示 T 是一个动态大小类型
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> tutorial/src/advances/advanced_function.rs:40:15
[INFO] [stdout]    |
[INFO] [stdout] 40 |         Value(u32),
[INFO] [stdout]    |         ----- ^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         field in this variant
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 40 -         Value(u32),
[INFO] [stdout] 40 +         Value(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Stop` is never constructed
[INFO] [stdout]   --> tutorial/src/advances/advanced_function.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     enum Status {
[INFO] [stdout]    |          ------ variant in this enum
[INFO] [stdout] 40 |         Value(u32),
[INFO] [stdout] 41 |         Stop,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `return_closure` is never used
[INFO] [stdout]   --> tutorial/src/advances/advanced_function.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn return_closure() -> Box<dyn Fn(i32) -> i32> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.36s
[INFO] running `Command { std: "docker" "inspect" "c23d26eb4d8d98eb8f8be5d79cab9948ccc4531af8b466ec4643256a2a809af9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c23d26eb4d8d98eb8f8be5d79cab9948ccc4531af8b466ec4643256a2a809af9", kill_on_drop: false }`
[INFO] [stdout] c23d26eb4d8d98eb8f8be5d79cab9948ccc4531af8b466ec4643256a2a809af9
