[INFO] cloning repository https://github.com/shuwill/rust_playground
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/shuwill/rust_playground" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshuwill%2Frust_playground", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshuwill%2Frust_playground'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] f91a355e4eb92a5e4edd2d35ff3780eb010f7119
[INFO] testing shuwill/rust_playground/f91a355e4eb92a5e4edd2d35ff3780eb010f7119 against 1.75.0 for beta-1.76-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshuwill%2Frust_playground" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/shuwill/rust_playground on toolchain 1.75.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.75.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/shuwill/rust_playground
[INFO] finished tweaking git repo https://github.com/shuwill/rust_playground
[INFO] tweaked toml for git repo https://github.com/shuwill/rust_playground written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/shuwill/rust_playground already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.75.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 1ac60365fab6fd4d857ddb198a96903773db03f9274538693fc086878d47317a
[INFO] running `Command { std: "docker" "start" "-a" "1ac60365fab6fd4d857ddb198a96903773db03f9274538693fc086878d47317a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1ac60365fab6fd4d857ddb198a96903773db03f9274538693fc086878d47317a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1ac60365fab6fd4d857ddb198a96903773db03f9274538693fc086878d47317a", kill_on_drop: false }`
[INFO] [stdout] 1ac60365fab6fd4d857ddb198a96903773db03f9274538693fc086878d47317a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 10f00e3efa8c5f41c71a66e5b347b7f4bbb9ce6d8f0efba3a6777156c8781504
[INFO] running `Command { std: "docker" "start" "-a" "10f00e3efa8c5f41c71a66e5b347b7f4bbb9ce6d8f0efba3a6777156c8781504", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.39
[INFO] [stderr]    Compiling unicode-ident v1.0.0
[INFO] [stderr]    Compiling libc v0.2.126
[INFO] [stderr]    Compiling syn v1.0.96
[INFO] [stderr]    Compiling futures-core v0.3.21
[INFO] [stderr]    Compiling futures-channel v0.3.21
[INFO] [stderr]    Compiling memchr v2.5.0
[INFO] [stderr]    Compiling futures-task v0.3.21
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling futures-sink v0.3.21
[INFO] [stderr]    Compiling futures-util v0.3.21
[INFO] [stderr]    Compiling slab v0.4.6
[INFO] [stderr]    Compiling pin-project-lite v0.2.9
[INFO] [stderr]    Compiling pin-utils v0.1.0
[INFO] [stderr]    Compiling futures-io v0.3.21
[INFO] [stderr]    Compiling ppv-lite86 v0.2.16
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling walkdir v2.3.2
[INFO] [stderr]    Compiling getrandom v0.2.6
[INFO] [stderr]    Compiling num_cpus v1.13.1
[INFO] [stderr]    Compiling quote v1.0.18
[INFO] [stderr]    Compiling rand_core v0.6.3
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling futures-macro v0.3.21
[INFO] [stderr]    Compiling futures-executor v0.3.21
[INFO] [stderr]    Compiling futures v0.3.21
[INFO] [stderr]    Compiling rust_playground v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `fs`, `thread`
[INFO] [stdout]  --> src/main.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{env, fs, process, thread};
[INFO] [stdout]   |                ^^           ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::mpsc`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::mpsc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FileRandomAccessSouce`, `RandomAccessSource`
[INFO] [stdout]  --> src/main.rs:9:44
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::example::random_access_source::{FileRandomAccessSouce, RandomAccessSource};
[INFO] [stdout]   |                                            ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `course::guessing_game::guess_game::guessing_number`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use course::guessing_game::guess_game::guessing_number;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `init_user`
[INFO] [stdout]   --> src/main.rs:18:23
[INFO] [stdout]    |
[INFO] [stdout] 18 | use course::structs::{init_user, tuple_struct, user_demo};
[INFO] [stdout]    |                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]  --> src/example/random_access_source.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufReader`, `ErrorKind`, `SeekFrom`, `Seek`, `Write`
[INFO] [stdout]  --> src/example/random_access_source.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::{BufReader, ErrorKind, Read, Seek, SeekFrom, Write};
[INFO] [stdout]   |               ^^^^^^^^^  ^^^^^^^^^        ^^^^  ^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::course::enums_pattern_matching::Message::Move`
[INFO] [stdout]  --> src/course/enums_pattern_matching.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::course::enums_pattern_matching::Message::Move;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem::uninitialized`
[INFO] [stdout]  --> src/course/common_collections.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::mem::uninitialized;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `format`
[INFO] [stdout]   --> src/course/trait.rs:13:32
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::fmt::{Debug, Display, format};
[INFO] [stdout]    |                                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/course/smart_pointers.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]   --> src/course/smart_pointers.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> src/course/thread.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::os::unix::raw::mode_t`
[INFO] [stdout]  --> src/course/thread.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::os::unix::raw::mode_t;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc`, `Condvar`, `Mutex`, `RwLock`, `mpsc`
[INFO] [stdout]  --> src/course/thread.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::{Arc, Condvar, mpsc, Mutex, RwLock};
[INFO] [stdout]   |                 ^^^  ^^^^^^^  ^^^^  ^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/course/thread.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/course/thread.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]  --> src/course/thread.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rand::Rng;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::net::TcpListener`
[INFO] [stdout]  --> src/course/futures.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::net::TcpListener;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::channel::mpsc::UnboundedReceiver`
[INFO] [stdout]  --> src/course/futures.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use futures::channel::mpsc::UnboundedReceiver;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::executor::block_on`
[INFO] [stdout]   --> src/course/futures.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use futures::executor::block_on;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ok`
[INFO] [stdout]   --> src/course/futures.rs:11:34
[INFO] [stdout]    |
[INFO] [stdout] 11 | use futures::future::{BoxFuture, ok};
[INFO] [stdout]    |                                  ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]  --> src/course/common_collections.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::mem::uninitialized;
[INFO] [stdout]   |               ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `std::os::unix::raw::mode_t`: these type aliases are no longer supported by the standard library, the `libc` crate on crates.io should be used instead for the correct definitions
[INFO] [stdout]  --> src/course/thread.rs:2:25
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::os::unix::raw::mode_t;
[INFO] [stdout]   |                         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `integer_literals`
[INFO] [stdout]   --> src/course/basic.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let integer_literals = 98_222;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_integer_literals`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `integer_literals`
[INFO] [stdout]   --> src/course/basic.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |     let integer_literals = 0xff;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_integer_literals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `integer_literals`
[INFO] [stdout]   --> src/course/basic.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let integer_literals = 0o77;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_integer_literals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `integer_literals`
[INFO] [stdout]   --> src/course/basic.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let integer_literals = 0b1111_0000;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_integer_literals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `integer_literals`
[INFO] [stdout]   --> src/course/basic.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let integer_literals = b'A';
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_integer_literals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `float`
[INFO] [stdout]   --> src/course/basic.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let float = 2.0;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `float`
[INFO] [stdout]   --> src/course/basic.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     let float: f32 = 2.0;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/course/basic.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let t = true;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/course/basic.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let f: bool = false;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]   --> src/course/basic.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let c = 'a';
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/course/basic.rs:60:10
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let (i, f, b, c) = tup;
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/course/basic.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let (i, f, b, c) = tup;
[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]   --> src/course/basic.rs:60:16
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let (i, f, b, c) = tup;
[INFO] [stdout]    |                ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `array`
[INFO] [stdout]   --> src/course/basic.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 67 |     let array: [i32; 5] = [1, 2, 3, 4, 5];
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_array`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/course/basic.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 93 |     let x = 6;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/course/ownership.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |         let s = "hello";
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i2`
[INFO] [stdout]   --> src/course/ownership.rs:49:13
[INFO] [stdout]    |
[INFO] [stdout] 49 |         let i2 = i1;
[INFO] [stdout]    |             ^^ help: if this is intentional, prefix it with an underscore: `_i2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tup2`
[INFO] [stdout]   --> src/course/ownership.rs:75:13
[INFO] [stdout]    |
[INFO] [stdout] 75 |         let tup2 = tup1;
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_tup2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `array2`
[INFO] [stdout]   --> src/course/ownership.rs:79:13
[INFO] [stdout]    |
[INFO] [stdout] 79 |         let array2 = array1;
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_array2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i2`
[INFO] [stdout]    --> src/course/ownership.rs:105:9
[INFO] [stdout]     |
[INFO] [stdout] 105 |     let i2 = i1;
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_i2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s1`
[INFO] [stdout]    --> src/course/ownership.rs:120:9
[INFO] [stdout]     |
[INFO] [stdout] 120 |     let s1 = gives_ownership();
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_s1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/course/slice_type.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let mut str = String::from("hello world");
[INFO] [stdout]   |         ----^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `origin`
[INFO] [stdout]   --> src/course/structs.rs:68:9
[INFO] [stdout]    |
[INFO] [stdout] 68 |     let origin =Point(0,0, 0);
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `g`
[INFO] [stdout]   --> src/course/structs.rs:71:18
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let Color(r, g, b) = black;
[INFO] [stdout]    |                  ^ help: if this is intentional, prefix it with an underscore: `_g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/course/structs.rs:71:21
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let Color(r, g, b) = black;
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `home`
[INFO] [stdout]   --> src/course/enums_pattern_matching.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let home = IpAddr {
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_home`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `loopback`
[INFO] [stdout]   --> src/course/enums_pattern_matching.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let loopback = IpAddr {
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loopback`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `loopback`
[INFO] [stdout]   --> src/course/enums_pattern_matching.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let loopback = IpAddress::V6(String::from("::1"));
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loopback`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `some_number`
[INFO] [stdout]   --> src/course/enums_pattern_matching.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |     let some_number = Some(5);
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_some_number`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `some_string`
[INFO] [stdout]   --> src/course/enums_pattern_matching.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let some_string = Some("a string");
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_some_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `absent_number`
[INFO] [stdout]   --> src/course/enums_pattern_matching.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let absent_number: Option<i32> = None;
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_absent_number`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/course/enums_pattern_matching.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let x: i32 = 5;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/course/enums_pattern_matching.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let y: Option<i32> = Some(5);
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `six`
[INFO] [stdout]    --> src/course/enums_pattern_matching.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let six = plus_one(five);
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_six`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `none`
[INFO] [stdout]    --> src/course/enums_pattern_matching.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout] 113 |     let none = plus_one(None);
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_none`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v2`
[INFO] [stdout]   --> src/course/common_collections.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let v2 = vec![1, 2, 3];
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_v2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/course/common_collections.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let mut s = String::new();
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `char`
[INFO] [stdout]   --> src/course/common_collections.rs:86:9
[INFO] [stdout]    |
[INFO] [stdout] 86 |     let char = s.get(0..2);
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_char`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/course/common_collections.rs:81:9
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let mut s = String::new();
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]   --> src/course/error_handling.rs:34:28
[INFO] [stdout]    |
[INFO] [stdout] 34 |                         Ok(file) => println!("file create successful"),
[INFO] [stdout]    |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/course/error_handling.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let f = File::open("hello.txt").unwrap_or_else(|error| {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/course/error_handling.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let f = File::open("hello.txt").unwrap();
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/course/error_handling.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let mut f = File::open("hello.txt").expect("File open hello.txt error");
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/course/error_handling.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let mut f = File::open("hello.txt").expect("File open hello.txt error");
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `int`
[INFO] [stdout]   --> src/course/generic_type.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |     let int = Point { x: 123, y: 321 };
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_int`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `float`
[INFO] [stdout]   --> src/course/generic_type.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let float = Point { x: 12.3, y: 32.1 };
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]   --> src/course/trait.rs:75:31
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub fn notify_summary_displat(item: impl Summary + Display) {}
[INFO] [stdout]    |                               ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/course/trait.rs:78:56
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn some_function<T: Display + Clone, U: Clone + Debug>(t: T, u: U) {}
[INFO] [stdout]    |                                                        ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]   --> src/course/trait.rs:78:62
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn some_function<T: Display + Clone, U: Clone + Debug>(t: T, u: U) {}
[INFO] [stdout]    |                                                              ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/course/trait.rs:80:30
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn some_function_where<T, U>(t: T, U: U)
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `U`
[INFO] [stdout]   --> src/course/trait.rs:80:36
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn some_function_where<T, U>(t: T, U: U)
[INFO] [stdout]    |                                    ^ help: if this is intentional, prefix it with an underscore: `_U`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/course/smart_pointers.rs:289:20
[INFO] [stdout]     |
[INFO] [stdout] 289 |     fn send(&self, msg: String) {
[INFO] [stdout]     |                    ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `se`
[INFO] [stdout]   --> src/main.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let se = statement_expression();
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_se`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `basic_program` is never used
[INFO] [stdout]   --> src/main.rs:27:4
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn basic_program() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `search_test` is never used
[INFO] [stdout]   --> src/main.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn search_test() {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `read_to_vec` are never used
[INFO] [stdout]   --> src/example/random_access_source.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl FileRandomAccessSouce {
[INFO] [stdout]    | -------------------------- associated items in this implementation
[INFO] [stdout] 24 |     pub fn new(path: &str) -> Result<FileRandomAccessSouce, io::Error> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn read_to_vec(&mut self) -> io::Result<Vec<u8>> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUFFER_SIZE` is never used
[INFO] [stdout]   --> src/example/random_access_source.rs:40:7
[INFO] [stdout]    |
[INFO] [stdout] 40 | const BUFFER_SIZE: usize = 8192;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `guessing_number` is never used
[INFO] [stdout]  --> src/course/guessing_game.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 |     pub fn guessing_number() {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `variables` is never used
[INFO] [stdout]  --> src/course/basic.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn variables() {
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `println_int` is never used
[INFO] [stdout]   --> src/course/basic.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn println_int(int: i32) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `statement_expression` is never used
[INFO] [stdout]   --> src/course/basic.rs:90:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub fn statement_expression() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sum` is never used
[INFO] [stdout]    --> src/course/basic.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn sum(a: i32, b: i32) -> i32 {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `control_flow` is never used
[INFO] [stdout]    --> src/course/basic.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub fn control_flow() {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `variables_scope` is never used
[INFO] [stdout]   --> src/course/ownership.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn variables_scope() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ownership_function` is never used
[INFO] [stdout]   --> src/course/ownership.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub fn ownership_function() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `takes_ownership` is never used
[INFO] [stdout]    --> src/course/ownership.rs:108:4
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn takes_ownership(str: String) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `makes_copy` is never used
[INFO] [stdout]    --> src/course/ownership.rs:112:4
[INFO] [stdout]     |
[INFO] [stdout] 112 | fn makes_copy(int: i32) {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `return_values_scope` is never used
[INFO] [stdout]    --> src/course/ownership.rs:119:4
[INFO] [stdout]     |
[INFO] [stdout] 119 | fn return_values_scope() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gives_ownership` is never used
[INFO] [stdout]    --> src/course/ownership.rs:132:4
[INFO] [stdout]     |
[INFO] [stdout] 132 | fn gives_ownership() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `takes_and_gives_ownership` is never used
[INFO] [stdout]    --> src/course/ownership.rs:137:4
[INFO] [stdout]     |
[INFO] [stdout] 137 | fn takes_and_gives_ownership(str: String) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_length` is never used
[INFO] [stdout]    --> src/course/ownership.rs:144:4
[INFO] [stdout]     |
[INFO] [stdout] 144 | fn calculate_length(str: String) -> (String, usize) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `references_borrowing` is never used
[INFO] [stdout]  --> src/course/references_borrowing.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub fn references_borrowing() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_length` is never used
[INFO] [stdout]   --> src/course/references_borrowing.rs:52:4
[INFO] [stdout]    |
[INFO] [stdout] 52 | fn calculate_length(str: &String) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `append` is never used
[INFO] [stdout]   --> src/course/references_borrowing.rs:57:4
[INFO] [stdout]    |
[INFO] [stdout] 57 | fn append(str: &mut String) {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `swap` is never used
[INFO] [stdout]   --> src/course/references_borrowing.rs:70:4
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn swap(mut x: String, mut y: String) -> (String, String) {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `strtok` is never used
[INFO] [stdout]   --> src/course/references_borrowing.rs:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | fn strtok<'a>(str: &'a mut &str, delimiter: char) -> &'a str {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `slice_type` is never used
[INFO] [stdout]  --> src/course/slice_type.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn slice_type() {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `first_word_old` is never used
[INFO] [stdout]   --> src/course/slice_type.rs:27:4
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn first_word_old(str: &String) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `first_word` is never used
[INFO] [stdout]   --> src/course/slice_type.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn first_word(str: &String) -> &str{
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `first_word_better` is never used
[INFO] [stdout]   --> src/course/slice_type.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn first_word_better(str: &str) -> &str{
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `User` is never constructed
[INFO] [stdout]  --> src/course/structs.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct User {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_user` is never used
[INFO] [stdout]   --> src/course/structs.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn init_user() -> User {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `user_demo` is never used
[INFO] [stdout]   --> src/course/structs.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn user_demo() {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_user` is never used
[INFO] [stdout]   --> src/course/structs.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn build_user(email: String, username: String) -> User {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_with_other_user` is never used
[INFO] [stdout]   --> src/course/structs.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn build_with_other_user(email: String, username:String, user: &User) -> User {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Color` is never constructed
[INFO] [stdout]   --> src/course/structs.rs:64:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | struct Color(i32, i32, i32);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]   --> src/course/structs.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | struct Point(i32, i32, i32);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tuple_struct` is never used
[INFO] [stdout]   --> src/course/structs.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn tuple_struct() {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Unit` is never constructed
[INFO] [stdout]   --> src/course/structs.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct Unit;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Student` is never constructed
[INFO] [stdout]   --> src/course/structs.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | struct Student{
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `area` is never used
[INFO] [stdout]  --> src/course/struct_example.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn area(with: i32, height: i32) -> i32 {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `area_tuple` is never used
[INFO] [stdout]  --> src/course/struct_example.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn area_tuple(dimensions: (i32, i32)) -> i32 {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `width` and `height` are never read
[INFO] [stdout]   --> src/course/struct_example.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct Rectangle {
[INFO] [stdout]    |        --------- fields in this struct
[INFO] [stdout] 12 |     width: i32,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 13 |     height: i32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Rectangle` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `area`, `can_hold`, and `square` are never used
[INFO] [stdout]   --> src/course/struct_example.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Rectangle {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 19 |     fn area(&self) -> i32 {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     fn can_hold(&self, rect: &Rectangle) -> bool {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     fn square(size: i32) -> Rectangle {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `area_rectangle` is never used
[INFO] [stdout]   --> src/course/struct_example.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn area_rectangle(rect: &Rectangle) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_area` is never used
[INFO] [stdout]   --> src/course/struct_example.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn calculate_area() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `enums` is never used
[INFO] [stdout]  --> src/course/enums_pattern_matching.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn enums() {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `V4` and `V6` are never constructed
[INFO] [stdout]   --> src/course/enums_pattern_matching.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 50 | enum IpAddrKid {
[INFO] [stdout]    |      --------- variants in this enum
[INFO] [stdout] 51 |     V4,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 52 |     V6,
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IpAddrKid` 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 `route` is never used
[INFO] [stdout]   --> src/course/enums_pattern_matching.rs:55:4
[INFO] [stdout]    |
[INFO] [stdout] 55 | fn route(ip_addr_kid: &IpAddrKid) {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IpAddr` is never constructed
[INFO] [stdout]   --> src/course/enums_pattern_matching.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | struct IpAddr {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `V4` and `V6` are never constructed
[INFO] [stdout]   --> src/course/enums_pattern_matching.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 66 | enum IpAddress {
[INFO] [stdout]    |      --------- variants in this enum
[INFO] [stdout] 67 |     V4(u8, u8, u8, u8),
[INFO] [stdout]    |     ^^
[INFO] [stdout] 68 |     V6(String),
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IpAddress` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Quit`, `Move`, `Write`, and `ChangeColor` are never constructed
[INFO] [stdout]   --> src/course/enums_pattern_matching.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | enum Message {
[INFO] [stdout]    |      ------- variants in this enum
[INFO] [stdout] 73 |     Quit,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 74 |     Move { x: i32, y: i32 },
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 75 |     //匿名结构体
[INFO] [stdout] 76 |     Write(String),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 77 |     ChangeColor(i32, i32, i32),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Message` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `call` is never used
[INFO] [stdout]   --> src/course/enums_pattern_matching.rs:81:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | impl Message {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] 81 |     fn call(&self) {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pattern_match` is never used
[INFO] [stdout]    --> src/course/enums_pattern_matching.rs:102:8
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn pattern_match() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Peeny`, `Nickel`, `Dime`, and `Quarter` are never constructed
[INFO] [stdout]    --> src/course/enums_pattern_matching.rs:147:5
[INFO] [stdout]     |
[INFO] [stdout] 146 | enum Coin {
[INFO] [stdout]     |      ---- variants in this enum
[INFO] [stdout] 147 |     Peeny,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 148 |     Nickel,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 149 |     Dime,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 150 |     Quarter(UsState),
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Coin` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Alabama` and `Alaska` are never constructed
[INFO] [stdout]    --> src/course/enums_pattern_matching.rs:155:5
[INFO] [stdout]     |
[INFO] [stdout] 154 | enum UsState {
[INFO] [stdout]     |      ------- variants in this enum
[INFO] [stdout] 155 |     Alabama,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 156 |     Alaska,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UsState` 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 `value_in_coin` is never used
[INFO] [stdout]    --> src/course/enums_pattern_matching.rs:159:4
[INFO] [stdout]     |
[INFO] [stdout] 159 | fn value_in_coin(coin: &Coin) -> u8 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_in_coin` is never used
[INFO] [stdout]    --> src/course/enums_pattern_matching.rs:171:4
[INFO] [stdout]     |
[INFO] [stdout] 171 | fn count_in_coin(coin: &Coin) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `plus_one` is never used
[INFO] [stdout]    --> src/course/enums_pattern_matching.rs:181:4
[INFO] [stdout]     |
[INFO] [stdout] 181 | fn plus_one(x: Option<i32>) -> Option<i32> {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `append_one` is never used
[INFO] [stdout]    --> src/course/enums_pattern_matching.rs:188:4
[INFO] [stdout]     |
[INFO] [stdout] 188 | fn append_one(s: Option<&mut String>) -> Option<&String> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vector` is never used
[INFO] [stdout]   --> src/course/common_collections.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn vector() {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Int`, `Float`, and `Text` are never constructed
[INFO] [stdout]   --> src/course/common_collections.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 69 | enum SpreadsheetCell {
[INFO] [stdout]    |      --------------- variants in this enum
[INFO] [stdout] 70 |     Int(i32),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 71 |     Float(f64),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 72 |     Text(String),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SpreadsheetCell` 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 `string` is never used
[INFO] [stdout]   --> src/course/common_collections.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn string() {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hashmap` is never used
[INFO] [stdout]    --> src/course/common_collections.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub fn hashmap() {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `tag` are never read
[INFO] [stdout]    --> src/course/common_collections.rs:195:5
[INFO] [stdout]     |
[INFO] [stdout] 194 | struct GoodsTag {
[INFO] [stdout]     |        -------- fields in this struct
[INFO] [stdout] 195 |     id: i32,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 196 |     tag: String,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GoodsTag` 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 `error_handling` is never used
[INFO] [stdout]   --> src/course/error_handling.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn error_handling() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_username_from_file` is never used
[INFO] [stdout]   --> src/course/error_handling.rs:79:4
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn read_username_from_file() -> Result<String, io::Error> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_username_from_file_quikly` is never used
[INFO] [stdout]   --> src/course/error_handling.rs:99:4
[INFO] [stdout]    |
[INFO] [stdout] 99 | fn read_username_from_file_quikly() -> Result<String, io::Error> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_ip_addr` is never used
[INFO] [stdout]    --> src/course/error_handling.rs:106:4
[INFO] [stdout]     |
[INFO] [stdout] 106 | fn parse_ip_addr(ip_addr: &str) -> IpAddr {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generic_type` is never used
[INFO] [stdout]  --> src/course/generic_type.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn generic_type() {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `largest_i32` is never used
[INFO] [stdout]   --> src/course/generic_type.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn largest_i32(vec: &Vec<i32>) -> Result<&i32, &str> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `largest` is never used
[INFO] [stdout]   --> src/course/generic_type.rs:63:4
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn largest<T: Ord>(vec: &Vec<T>) -> Result<&T, &str> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]   --> src/course/generic_type.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct Point<T> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `COMPLETE` and `PROCESSING` are never constructed
[INFO] [stdout]   --> src/course/generic_type.rs:85:5
[INFO] [stdout]    |
[INFO] [stdout] 84 | enum Status<T> {
[INFO] [stdout]    |      ------ variants in this enum
[INFO] [stdout] 85 |     COMPLETE(T),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 86 |     PROCESSING(T),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Status` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `x` is never used
[INFO] [stdout]   --> src/course/generic_type.rs:91:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | impl<T> Point<T> {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] 91 |     fn x(&self) -> &T {
[INFO] [stdout]    |        ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `distance` is never used
[INFO] [stdout]   --> src/course/generic_type.rs:97:8
[INFO] [stdout]    |
[INFO] [stdout] 96 | impl Point<f64> {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 97 |     fn distance(&self, other: &Self) -> f64 {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trait_practice` is never used
[INFO] [stdout]   --> src/course/trait.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn trait_practice() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify` is never used
[INFO] [stdout]   --> src/course/trait.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn notify(item: impl Summary) {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_summary` is never used
[INFO] [stdout]   --> src/course/trait.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub fn notify_summary<T: Summary>(item: T) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_summary_displat` is never used
[INFO] [stdout]   --> src/course/trait.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub fn notify_summary_displat(item: impl Summary + Display) {}
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `some_function` is never used
[INFO] [stdout]   --> src/course/trait.rs:78:4
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn some_function<T: Display + Clone, U: Clone + Debug>(t: T, u: U) {}
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `some_function_where` is never used
[INFO] [stdout]   --> src/course/trait.rs:80:4
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn some_function_where<T, U>(t: T, U: U)
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `returns_summart` is never used
[INFO] [stdout]   --> src/course/trait.rs:87:4
[INFO] [stdout]    |
[INFO] [stdout] 87 | fn returns_summart() -> impl Summary {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest` is never used
[INFO] [stdout]  --> src/course/lifetimes.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
[INFO] [stdout]   |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ImportantExcerpt` is never constructed
[INFO] [stdout]   --> src/course/lifetimes.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | struct ImportantExcerpt<'a> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/course/lifetimes.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl<'a> ImportantExcerpt<'a> {
[INFO] [stdout]    | ----------------------------- associated function in this implementation
[INFO] [stdout] 20 |     fn new(part: &str) -> ImportantExcerpt {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lifetimes` is never used
[INFO] [stdout]   --> src/course/lifetimes.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn lifetimes() {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simulated_expensive_calculation` is never used
[INFO] [stdout]  --> src/course/closures_iterators.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn simulated_expensive_calculation(intensity: u32) -> u32 {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_workout` is never used
[INFO] [stdout]   --> src/course/closures_iterators.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn generate_workout(intensity: u32, random_number: u32) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_workout_closures` is never used
[INFO] [stdout]   --> src/course/closures_iterators.rs:29:4
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn generate_workout_closures(intensity: u32, random_number: u32) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `calculation` and `value` are never read
[INFO] [stdout]   --> src/course/closures_iterators.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | struct Cache<T: Fn(u32) -> u32> {
[INFO] [stdout]    |        ----- fields in this struct
[INFO] [stdout] 50 |     calculation: T,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 51 |     value: Option<u32>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `value` are never used
[INFO] [stdout]   --> src/course/closures_iterators.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | impl<T: Fn(u32) -> u32> Cache<T> {
[INFO] [stdout]    | -------------------------------- associated items in this implementation
[INFO] [stdout] 55 |     fn new(calculation: T) -> Cache<T> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     fn value(&mut self, arg: u32) -> u32 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_workout_cache` is never used
[INFO] [stdout]   --> src/course/closures_iterators.rs:74:4
[INFO] [stdout]    |
[INFO] [stdout] 74 | fn generate_workout_cache(intensity: u32, random_number: u32) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shoes_in_my_size` is never used
[INFO] [stdout]    --> src/course/closures_iterators.rs:145:4
[INFO] [stdout]     |
[INFO] [stdout] 145 | fn shoes_in_my_size(shoes: &[Shoe], shoe_size: u32) -> Vec<&Shoe> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/course/closures_iterators.rs:169:8
[INFO] [stdout]     |
[INFO] [stdout] 168 | impl Counter {
[INFO] [stdout]     | ------------ associated function in this implementation
[INFO] [stdout] 169 |     fn new() -> Counter {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `List` is never constructed
[INFO] [stdout]   --> src/course/smart_pointers.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | struct List<T> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]   --> src/course/smart_pointers.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | struct Node<T> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/course/smart_pointers.rs:68:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | impl<T> MyBox<T> {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 68 |     fn new(x: T) -> MyBox<T> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hello` is never used
[INFO] [stdout]   --> src/course/smart_pointers.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn hello(str: &str) {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LimitTracker` is never constructed
[INFO] [stdout]    --> src/course/smart_pointers.rs:110:8
[INFO] [stdout]     |
[INFO] [stdout] 110 | struct LimitTracker<'a, T: 'a + Messenger> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `set_value` are never used
[INFO] [stdout]    --> src/course/smart_pointers.rs:118:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | / impl<'a, T> LimitTracker<'a, T>
[INFO] [stdout] 117 | |     where T: Messenger {
[INFO] [stdout]     | |______________________- associated items in this implementation
[INFO] [stdout] 118 |       fn new(messenger: &T, max: usize) -> LimitTracker<T> {
[INFO] [stdout]     |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |       fn set_value(&mut self, value: usize) {
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/course/smart_pointers.rs:144:8
[INFO] [stdout]     |
[INFO] [stdout] 143 | impl MockMessenger {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] 144 |     fn new() -> MockMessenger {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TreeNode` is never constructed
[INFO] [stdout]    --> src/course/smart_pointers.rs:163:8
[INFO] [stdout]     |
[INFO] [stdout] 163 | struct TreeNode<T> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/course/smart_pointers.rs:170:8
[INFO] [stdout]     |
[INFO] [stdout] 169 | impl<T> TreeNode<T> {
[INFO] [stdout]     | ------------------- associated function in this implementation
[INFO] [stdout] 170 |     fn new(item: T) -> TreeNode<T> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/course/smart_pointers.rs:181:5
[INFO] [stdout]     |
[INFO] [stdout] 180 | struct Owner {
[INFO] [stdout]     |        ----- field in this struct
[INFO] [stdout] 181 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Owner` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GadgetLifeTime` is never constructed
[INFO] [stdout]    --> src/course/smart_pointers.rs:184:8
[INFO] [stdout]     |
[INFO] [stdout] 184 | struct GadgetLifeTime<'a> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Gadget` is never constructed
[INFO] [stdout]    --> src/course/smart_pointers.rs:189:8
[INFO] [stdout]     |
[INFO] [stdout] 189 | struct Gadget {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `messages` is never read
[INFO] [stdout]    --> src/course/smart_pointers.rs:280:5
[INFO] [stdout]     |
[INFO] [stdout] 279 | struct MyProducer {
[INFO] [stdout]     |        ---------- field in this struct
[INFO] [stdout] 280 |     messages: Vec<String>,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_even` is never used
[INFO] [stdout]    --> src/course/smart_pointers.rs:312:4
[INFO] [stdout]     |
[INFO] [stdout] 312 | fn is_even(i: i32) -> bool {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `retain_even` is never used
[INFO] [stdout]    --> src/course/smart_pointers.rs:316:4
[INFO] [stdout]     |
[INFO] [stdout] 316 | fn retain_even(nums: &mut Vec<i32>) {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SelfRef` is never constructed
[INFO] [stdout]    --> src/course/smart_pointers.rs:326:8
[INFO] [stdout]     |
[INFO] [stdout] 326 | struct SelfRef<'a>{
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Screen` is never constructed
[INFO] [stdout]  --> src/course/oop.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Screen {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScreenGenric` is never constructed
[INFO] [stdout]   --> src/course/oop.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct ScreenGenric<T>
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `run` is never used
[INFO] [stdout]   --> src/course/oop.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Screen {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 16 |     fn run(&self) {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `run` is never used
[INFO] [stdout]   --> src/course/oop.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl<T: Draw> ScreenGenric<T> {
[INFO] [stdout]    | ----------------------------- method in this implementation
[INFO] [stdout] 24 |     fn run(&self) {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `do_somethings` is never used
[INFO] [stdout]   --> src/course/futures.rs:15:10
[INFO] [stdout]    |
[INFO] [stdout] 15 | async fn do_somethings() {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hello_world` is never used
[INFO] [stdout]   --> src/course/futures.rs:19:10
[INFO] [stdout]    |
[INFO] [stdout] 19 | async fn hello_world() {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hello_cat` is never used
[INFO] [stdout]   --> src/course/futures.rs:24:10
[INFO] [stdout]    |
[INFO] [stdout] 24 | async fn hello_cat() {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Song` is never constructed
[INFO] [stdout]   --> src/course/futures.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | struct Song {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learn_song` is never used
[INFO] [stdout]   --> src/course/futures.rs:33:10
[INFO] [stdout]    |
[INFO] [stdout] 33 | async fn learn_song() -> Song {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sing_song` is never used
[INFO] [stdout]   --> src/course/futures.rs:40:10
[INFO] [stdout]    |
[INFO] [stdout] 40 | async fn sing_song(song: &Song) {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dance` is never used
[INFO] [stdout]   --> src/course/futures.rs:44:10
[INFO] [stdout]    |
[INFO] [stdout] 44 | async fn dance() {
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `learn_and_sing` is never used
[INFO] [stdout]   --> src/course/futures.rs:48:10
[INFO] [stdout]    |
[INFO] [stdout] 48 | async fn learn_and_sing() {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `async_main` is never used
[INFO] [stdout]   --> src/course/futures.rs:53:10
[INFO] [stdout]    |
[INFO] [stdout] 53 | async fn async_main() {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/course/futures.rs:89:12
[INFO] [stdout]    |
[INFO] [stdout] 88 | impl TimerFuture {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 89 |     pub fn new(duration: Duration) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `future` is never read
[INFO] [stdout]    --> src/course/futures.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 109 | struct Task {
[INFO] [stdout]     |        ---- field in this struct
[INFO] [stdout] 110 |     future: Mutex<Option<BoxFuture<'static, ()>>>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Executor` is never constructed
[INFO] [stdout]    --> src/course/futures.rs:115:8
[INFO] [stdout]     |
[INFO] [stdout] 115 | struct Executor {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Spawner` is never constructed
[INFO] [stdout]    --> src/course/futures.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 119 | struct Spawner {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new_executor_and_spawner` is never used
[INFO] [stdout]    --> src/course/futures.rs:123:4
[INFO] [stdout]     |
[INFO] [stdout] 123 | fn new_executor_and_spawner() -> (Executor, Spawner) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `spawn` is never used
[INFO] [stdout]    --> src/course/futures.rs:130:8
[INFO] [stdout]     |
[INFO] [stdout] 129 | impl Spawner {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] 130 |     fn spawn(&self, future: impl Future<Output=()> + 'static + Send) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `run` is never used
[INFO] [stdout]    --> src/course/futures.rs:148:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | impl Executor {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] 148 |     fn run(&self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Config` is never constructed
[INFO] [stdout]  --> src/search_text/search_text.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Config {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/search_text/search_text.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 9  | impl Config {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 10 |     pub fn new(mut args: std::env::Args) -> Result<Config, &'static str> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]   --> src/search_text/search_text.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn run(config: Config) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `search` is never used
[INFO] [stdout]   --> src/search_text/search_text.rs:35:4
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn search<'a>(contents: &'a str, query: &str) -> Vec<&'a str> {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `directory_size` is never used
[INFO] [stdout]  --> src/directory_size/directory_size.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn directory_size(path: PathBuf) -> io::Result<u64> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNIT_SIZE` is never used
[INFO] [stdout]   --> src/directory_size/directory_size.rs:24:7
[INFO] [stdout]    |
[INFO] [stdout] 24 | const UNIT_SIZE: u64 = 1024;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `convert` is never used
[INFO] [stdout]   --> src/directory_size/directory_size.rs:26:4
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn convert(size: u64) -> String {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/course/error_handling.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     f.write("hello rust".as_bytes());
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let _ = f.write("hello rust".as_bytes());
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `U` should have a snake case name
[INFO] [stdout]   --> src/course/trait.rs:80:36
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn some_function_where<T, U>(t: T, U: U)
[INFO] [stdout]    |                                    ^ help: convert the identifier to snake case (notice the capitalization): `u`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 215 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 4.94s
[INFO] running `Command { std: "docker" "inspect" "10f00e3efa8c5f41c71a66e5b347b7f4bbb9ce6d8f0efba3a6777156c8781504", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "10f00e3efa8c5f41c71a66e5b347b7f4bbb9ce6d8f0efba3a6777156c8781504", kill_on_drop: false }`
[INFO] [stdout] 10f00e3efa8c5f41c71a66e5b347b7f4bbb9ce6d8f0efba3a6777156c8781504
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 17a4efb4aa71fd61e6c1e3b00e742e69ce80e6148192b6492248d6723bdce803
[INFO] running `Command { std: "docker" "start" "-a" "17a4efb4aa71fd61e6c1e3b00e742e69ce80e6148192b6492248d6723bdce803", kill_on_drop: false }`
[INFO] [stderr]    Compiling rust_playground v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `fs`, `thread`
[INFO] [stdout]  --> src/main.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{env, fs, process, thread};
[INFO] [stdout]   |                ^^           ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::mpsc`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::mpsc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FileRandomAccessSouce`, `RandomAccessSource`
[INFO] [stdout]  --> src/main.rs:9:44
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::example::random_access_source::{FileRandomAccessSouce, RandomAccessSource};
[INFO] [stdout]   |                                            ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `course::guessing_game::guess_game::guessing_number`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use course::guessing_game::guess_game::guessing_number;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `init_user`
[INFO] [stdout]   --> src/main.rs:18:23
[INFO] [stdout]    |
[INFO] [stdout] 18 | use course::structs::{init_user, tuple_struct, user_demo};
[INFO] [stdout]    |                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]  --> src/example/random_access_source.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufReader`, `ErrorKind`, `SeekFrom`, `Seek`, `Write`
[INFO] [stdout]  --> src/example/random_access_source.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::{BufReader, ErrorKind, Read, Seek, SeekFrom, Write};
[INFO] [stdout]   |               ^^^^^^^^^  ^^^^^^^^^        ^^^^  ^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::course::enums_pattern_matching::Message::Move`
[INFO] [stdout]  --> src/course/enums_pattern_matching.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::course::enums_pattern_matching::Message::Move;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem::uninitialized`
[INFO] [stdout]  --> src/course/common_collections.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::mem::uninitialized;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `format`
[INFO] [stdout]   --> src/course/trait.rs:13:32
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::fmt::{Debug, Display, format};
[INFO] [stdout]    |                                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::os::unix::raw::mode_t`
[INFO] [stdout]  --> src/course/thread.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::os::unix::raw::mode_t;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::net::TcpListener`
[INFO] [stdout]  --> src/course/futures.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::net::TcpListener;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::channel::mpsc::UnboundedReceiver`
[INFO] [stdout]  --> src/course/futures.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use futures::channel::mpsc::UnboundedReceiver;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ok`
[INFO] [stdout]   --> src/course/futures.rs:11:34
[INFO] [stdout]    |
[INFO] [stdout] 11 | use futures::future::{BoxFuture, ok};
[INFO] [stdout]    |                                  ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]  --> src/course/common_collections.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::mem::uninitialized;
[INFO] [stdout]   |               ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `std::os::unix::raw::mode_t`: these type aliases are no longer supported by the standard library, the `libc` crate on crates.io should be used instead for the correct definitions
[INFO] [stdout]  --> src/course/thread.rs:2:25
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::os::unix::raw::mode_t;
[INFO] [stdout]   |                         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `readed`
[INFO] [stdout]   --> src/example/random_access_source.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 70 |     let readed = file.get_by_bytes(0, &mut bytes).unwrap_or_else(|error| {
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_readed`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `integer_literals`
[INFO] [stdout]   --> src/course/basic.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let integer_literals = 98_222;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_integer_literals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `integer_literals`
[INFO] [stdout]   --> src/course/basic.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |     let integer_literals = 0xff;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_integer_literals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `integer_literals`
[INFO] [stdout]   --> src/course/basic.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let integer_literals = 0o77;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_integer_literals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `integer_literals`
[INFO] [stdout]   --> src/course/basic.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let integer_literals = 0b1111_0000;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_integer_literals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `integer_literals`
[INFO] [stdout]   --> src/course/basic.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let integer_literals = b'A';
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_integer_literals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `float`
[INFO] [stdout]   --> src/course/basic.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let float = 2.0;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `float`
[INFO] [stdout]   --> src/course/basic.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     let float: f32 = 2.0;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/course/basic.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let t = true;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/course/basic.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let f: bool = false;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]   --> src/course/basic.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let c = 'a';
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/course/basic.rs:60:10
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let (i, f, b, c) = tup;
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/course/basic.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let (i, f, b, c) = tup;
[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]   --> src/course/basic.rs:60:16
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let (i, f, b, c) = tup;
[INFO] [stdout]    |                ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `array`
[INFO] [stdout]   --> src/course/basic.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 67 |     let array: [i32; 5] = [1, 2, 3, 4, 5];
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_array`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/course/basic.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 93 |     let x = 6;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/course/ownership.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |         let s = "hello";
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i2`
[INFO] [stdout]   --> src/course/ownership.rs:49:13
[INFO] [stdout]    |
[INFO] [stdout] 49 |         let i2 = i1;
[INFO] [stdout]    |             ^^ help: if this is intentional, prefix it with an underscore: `_i2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tup2`
[INFO] [stdout]   --> src/course/ownership.rs:75:13
[INFO] [stdout]    |
[INFO] [stdout] 75 |         let tup2 = tup1;
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_tup2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `array2`
[INFO] [stdout]   --> src/course/ownership.rs:79:13
[INFO] [stdout]    |
[INFO] [stdout] 79 |         let array2 = array1;
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_array2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i2`
[INFO] [stdout]    --> src/course/ownership.rs:105:9
[INFO] [stdout]     |
[INFO] [stdout] 105 |     let i2 = i1;
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_i2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s1`
[INFO] [stdout]    --> src/course/ownership.rs:120:9
[INFO] [stdout]     |
[INFO] [stdout] 120 |     let s1 = gives_ownership();
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_s1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/course/slice_type.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let mut str = String::from("hello world");
[INFO] [stdout]   |         ----^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `origin`
[INFO] [stdout]   --> src/course/structs.rs:68:9
[INFO] [stdout]    |
[INFO] [stdout] 68 |     let origin =Point(0,0, 0);
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `g`
[INFO] [stdout]   --> src/course/structs.rs:71:18
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let Color(r, g, b) = black;
[INFO] [stdout]    |                  ^ help: if this is intentional, prefix it with an underscore: `_g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/course/structs.rs:71:21
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let Color(r, g, b) = black;
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `home`
[INFO] [stdout]   --> src/course/enums_pattern_matching.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let home = IpAddr {
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_home`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `loopback`
[INFO] [stdout]   --> src/course/enums_pattern_matching.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let loopback = IpAddr {
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loopback`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `loopback`
[INFO] [stdout]   --> src/course/enums_pattern_matching.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let loopback = IpAddress::V6(String::from("::1"));
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loopback`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `some_number`
[INFO] [stdout]   --> src/course/enums_pattern_matching.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |     let some_number = Some(5);
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_some_number`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `some_string`
[INFO] [stdout]   --> src/course/enums_pattern_matching.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let some_string = Some("a string");
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_some_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `absent_number`
[INFO] [stdout]   --> src/course/enums_pattern_matching.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let absent_number: Option<i32> = None;
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_absent_number`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/course/enums_pattern_matching.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let x: i32 = 5;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/course/enums_pattern_matching.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let y: Option<i32> = Some(5);
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `six`
[INFO] [stdout]    --> src/course/enums_pattern_matching.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let six = plus_one(five);
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_six`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `none`
[INFO] [stdout]    --> src/course/enums_pattern_matching.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout] 113 |     let none = plus_one(None);
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_none`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v2`
[INFO] [stdout]   --> src/course/common_collections.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let v2 = vec![1, 2, 3];
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_v2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/course/common_collections.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let mut s = String::new();
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `char`
[INFO] [stdout]   --> src/course/common_collections.rs:86:9
[INFO] [stdout]    |
[INFO] [stdout] 86 |     let char = s.get(0..2);
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_char`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/course/common_collections.rs:81:9
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let mut s = String::new();
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]   --> src/course/error_handling.rs:34:28
[INFO] [stdout]    |
[INFO] [stdout] 34 |                         Ok(file) => println!("file create successful"),
[INFO] [stdout]    |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/course/error_handling.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let f = File::open("hello.txt").unwrap_or_else(|error| {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/course/error_handling.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let f = File::open("hello.txt").unwrap();
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/course/error_handling.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let mut f = File::open("hello.txt").expect("File open hello.txt error");
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/course/error_handling.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let mut f = File::open("hello.txt").expect("File open hello.txt error");
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `int`
[INFO] [stdout]   --> src/course/generic_type.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |     let int = Point { x: 123, y: 321 };
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_int`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `float`
[INFO] [stdout]   --> src/course/generic_type.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let float = Point { x: 12.3, y: 32.1 };
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]   --> src/course/trait.rs:75:31
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub fn notify_summary_displat(item: impl Summary + Display) {}
[INFO] [stdout]    |                               ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/course/trait.rs:78:56
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn some_function<T: Display + Clone, U: Clone + Debug>(t: T, u: U) {}
[INFO] [stdout]    |                                                        ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]   --> src/course/trait.rs:78:62
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn some_function<T: Display + Clone, U: Clone + Debug>(t: T, u: U) {}
[INFO] [stdout]    |                                                              ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/course/trait.rs:80:30
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn some_function_where<T, U>(t: T, U: U)
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `U`
[INFO] [stdout]   --> src/course/trait.rs:80:36
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn some_function_where<T, U>(t: T, U: U)
[INFO] [stdout]    |                                    ^ help: if this is intentional, prefix it with an underscore: `_U`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/course/closures_iterators.rs:202:9
[INFO] [stdout]     |
[INFO] [stdout] 202 |     let n = words.count();
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `g1`
[INFO] [stdout]    --> src/course/smart_pointers.rs:210:9
[INFO] [stdout]     |
[INFO] [stdout] 210 |     let g1 = GadgetLifeTime { id: 1, owner: &owner };
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_g1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `g2`
[INFO] [stdout]    --> src/course/smart_pointers.rs:211:9
[INFO] [stdout]     |
[INFO] [stdout] 211 |     let g2 = GadgetLifeTime { id: 2, owner: &owner };
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_g2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rc`
[INFO] [stdout]    --> src/course/smart_pointers.rs:229:13
[INFO] [stdout]     |
[INFO] [stdout] 229 |         let rc = Rc::clone(&s);
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_rc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/course/smart_pointers.rs:200:9
[INFO] [stdout]     |
[INFO] [stdout] 200 |     let mut r1 = Rc::new(s1);
[INFO] [stdout]     |         ----^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ref_cell`
[INFO] [stdout]    --> src/course/smart_pointers.rs:264:9
[INFO] [stdout]     |
[INFO] [stdout] 264 |     let ref_cell = RefCell::new(String::from("hello RefCell"));
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ref_cell`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/course/smart_pointers.rs:289:20
[INFO] [stdout]     |
[INFO] [stdout] 289 |     fn send(&self, msg: String) {
[INFO] [stdout]     |                    ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/course/smart_pointers.rs:333:9
[INFO] [stdout]     |
[INFO] [stdout] 333 |     let s = String::from("hello");
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `se`
[INFO] [stdout]   --> src/main.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let se = statement_expression();
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_se`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `basic_program` is never used
[INFO] [stdout]   --> src/main.rs:27:4
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn basic_program() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `search_test` is never used
[INFO] [stdout]   --> src/main.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn search_test() {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUFFER_SIZE` is never used
[INFO] [stdout]   --> src/example/random_access_source.rs:40:7
[INFO] [stdout]    |
[INFO] [stdout] 40 | const BUFFER_SIZE: usize = 8192;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `guessing_number` is never used
[INFO] [stdout]  --> src/course/guessing_game.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 |     pub fn guessing_number() {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `variables` is never used
[INFO] [stdout]  --> src/course/basic.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn variables() {
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `println_int` is never used
[INFO] [stdout]   --> src/course/basic.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn println_int(int: i32) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `statement_expression` is never used
[INFO] [stdout]   --> src/course/basic.rs:90:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub fn statement_expression() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sum` is never used
[INFO] [stdout]    --> src/course/basic.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn sum(a: i32, b: i32) -> i32 {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `control_flow` is never used
[INFO] [stdout]    --> src/course/basic.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub fn control_flow() {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `variables_scope` is never used
[INFO] [stdout]   --> src/course/ownership.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn variables_scope() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ownership_function` is never used
[INFO] [stdout]   --> src/course/ownership.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub fn ownership_function() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `takes_ownership` is never used
[INFO] [stdout]    --> src/course/ownership.rs:108:4
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn takes_ownership(str: String) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `makes_copy` is never used
[INFO] [stdout]    --> src/course/ownership.rs:112:4
[INFO] [stdout]     |
[INFO] [stdout] 112 | fn makes_copy(int: i32) {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `return_values_scope` is never used
[INFO] [stdout]    --> src/course/ownership.rs:119:4
[INFO] [stdout]     |
[INFO] [stdout] 119 | fn return_values_scope() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gives_ownership` is never used
[INFO] [stdout]    --> src/course/ownership.rs:132:4
[INFO] [stdout]     |
[INFO] [stdout] 132 | fn gives_ownership() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `takes_and_gives_ownership` is never used
[INFO] [stdout]    --> src/course/ownership.rs:137:4
[INFO] [stdout]     |
[INFO] [stdout] 137 | fn takes_and_gives_ownership(str: String) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_length` is never used
[INFO] [stdout]    --> src/course/ownership.rs:144:4
[INFO] [stdout]     |
[INFO] [stdout] 144 | fn calculate_length(str: String) -> (String, usize) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `references_borrowing` is never used
[INFO] [stdout]  --> src/course/references_borrowing.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub fn references_borrowing() {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_length` is never used
[INFO] [stdout]   --> src/course/references_borrowing.rs:52:4
[INFO] [stdout]    |
[INFO] [stdout] 52 | fn calculate_length(str: &String) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `append` is never used
[INFO] [stdout]   --> src/course/references_borrowing.rs:57:4
[INFO] [stdout]    |
[INFO] [stdout] 57 | fn append(str: &mut String) {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `swap` is never used
[INFO] [stdout]   --> src/course/references_borrowing.rs:70:4
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn swap(mut x: String, mut y: String) -> (String, String) {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `slice_type` is never used
[INFO] [stdout]  --> src/course/slice_type.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn slice_type() {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `first_word_old` is never used
[INFO] [stdout]   --> src/course/slice_type.rs:27:4
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn first_word_old(str: &String) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `first_word` is never used
[INFO] [stdout]   --> src/course/slice_type.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn first_word(str: &String) -> &str{
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `first_word_better` is never used
[INFO] [stdout]   --> src/course/slice_type.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn first_word_better(str: &str) -> &str{
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `User` is never constructed
[INFO] [stdout]  --> src/course/structs.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct User {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_user` is never used
[INFO] [stdout]   --> src/course/structs.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn init_user() -> User {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `user_demo` is never used
[INFO] [stdout]   --> src/course/structs.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn user_demo() {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_user` is never used
[INFO] [stdout]   --> src/course/structs.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn build_user(email: String, username: String) -> User {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_with_other_user` is never used
[INFO] [stdout]   --> src/course/structs.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn build_with_other_user(email: String, username:String, user: &User) -> User {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Color` is never constructed
[INFO] [stdout]   --> src/course/structs.rs:64:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | struct Color(i32, i32, i32);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]   --> src/course/structs.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | struct Point(i32, i32, i32);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tuple_struct` is never used
[INFO] [stdout]   --> src/course/structs.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn tuple_struct() {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Unit` is never constructed
[INFO] [stdout]   --> src/course/structs.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct Unit;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Student` is never constructed
[INFO] [stdout]   --> src/course/structs.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | struct Student{
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `area` is never used
[INFO] [stdout]  --> src/course/struct_example.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn area(with: i32, height: i32) -> i32 {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `area_tuple` is never used
[INFO] [stdout]  --> src/course/struct_example.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn area_tuple(dimensions: (i32, i32)) -> i32 {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `width` and `height` are never read
[INFO] [stdout]   --> src/course/struct_example.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct Rectangle {
[INFO] [stdout]    |        --------- fields in this struct
[INFO] [stdout] 12 |     width: i32,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 13 |     height: i32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Rectangle` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `area`, `can_hold`, and `square` are never used
[INFO] [stdout]   --> src/course/struct_example.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Rectangle {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 19 |     fn area(&self) -> i32 {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     fn can_hold(&self, rect: &Rectangle) -> bool {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     fn square(size: i32) -> Rectangle {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `area_rectangle` is never used
[INFO] [stdout]   --> src/course/struct_example.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn area_rectangle(rect: &Rectangle) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_area` is never used
[INFO] [stdout]   --> src/course/struct_example.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn calculate_area() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `enums` is never used
[INFO] [stdout]  --> src/course/enums_pattern_matching.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn enums() {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `V4` and `V6` are never constructed
[INFO] [stdout]   --> src/course/enums_pattern_matching.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 50 | enum IpAddrKid {
[INFO] [stdout]    |      --------- variants in this enum
[INFO] [stdout] 51 |     V4,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 52 |     V6,
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IpAddrKid` 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 `route` is never used
[INFO] [stdout]   --> src/course/enums_pattern_matching.rs:55:4
[INFO] [stdout]    |
[INFO] [stdout] 55 | fn route(ip_addr_kid: &IpAddrKid) {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IpAddr` is never constructed
[INFO] [stdout]   --> src/course/enums_pattern_matching.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | struct IpAddr {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `V4` and `V6` are never constructed
[INFO] [stdout]   --> src/course/enums_pattern_matching.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 66 | enum IpAddress {
[INFO] [stdout]    |      --------- variants in this enum
[INFO] [stdout] 67 |     V4(u8, u8, u8, u8),
[INFO] [stdout]    |     ^^
[INFO] [stdout] 68 |     V6(String),
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IpAddress` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Quit`, `Move`, `Write`, and `ChangeColor` are never constructed
[INFO] [stdout]   --> src/course/enums_pattern_matching.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | enum Message {
[INFO] [stdout]    |      ------- variants in this enum
[INFO] [stdout] 73 |     Quit,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 74 |     Move { x: i32, y: i32 },
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 75 |     //匿名结构体
[INFO] [stdout] 76 |     Write(String),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 77 |     ChangeColor(i32, i32, i32),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Message` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `call` is never used
[INFO] [stdout]   --> src/course/enums_pattern_matching.rs:81:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | impl Message {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] 81 |     fn call(&self) {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pattern_match` is never used
[INFO] [stdout]    --> src/course/enums_pattern_matching.rs:102:8
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn pattern_match() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Peeny`, `Nickel`, `Dime`, and `Quarter` are never constructed
[INFO] [stdout]    --> src/course/enums_pattern_matching.rs:147:5
[INFO] [stdout]     |
[INFO] [stdout] 146 | enum Coin {
[INFO] [stdout]     |      ---- variants in this enum
[INFO] [stdout] 147 |     Peeny,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 148 |     Nickel,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 149 |     Dime,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 150 |     Quarter(UsState),
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Coin` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Alabama` and `Alaska` are never constructed
[INFO] [stdout]    --> src/course/enums_pattern_matching.rs:155:5
[INFO] [stdout]     |
[INFO] [stdout] 154 | enum UsState {
[INFO] [stdout]     |      ------- variants in this enum
[INFO] [stdout] 155 |     Alabama,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 156 |     Alaska,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UsState` 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 `value_in_coin` is never used
[INFO] [stdout]    --> src/course/enums_pattern_matching.rs:159:4
[INFO] [stdout]     |
[INFO] [stdout] 159 | fn value_in_coin(coin: &Coin) -> u8 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_in_coin` is never used
[INFO] [stdout]    --> src/course/enums_pattern_matching.rs:171:4
[INFO] [stdout]     |
[INFO] [stdout] 171 | fn count_in_coin(coin: &Coin) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `plus_one` is never used
[INFO] [stdout]    --> src/course/enums_pattern_matching.rs:181:4
[INFO] [stdout]     |
[INFO] [stdout] 181 | fn plus_one(x: Option<i32>) -> Option<i32> {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `append_one` is never used
[INFO] [stdout]    --> src/course/enums_pattern_matching.rs:188:4
[INFO] [stdout]     |
[INFO] [stdout] 188 | fn append_one(s: Option<&mut String>) -> Option<&String> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vector` is never used
[INFO] [stdout]   --> src/course/common_collections.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn vector() {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Int`, `Float`, and `Text` are never constructed
[INFO] [stdout]   --> src/course/common_collections.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 69 | enum SpreadsheetCell {
[INFO] [stdout]    |      --------------- variants in this enum
[INFO] [stdout] 70 |     Int(i32),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 71 |     Float(f64),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 72 |     Text(String),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SpreadsheetCell` 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 `string` is never used
[INFO] [stdout]   --> src/course/common_collections.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn string() {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hashmap` is never used
[INFO] [stdout]    --> src/course/common_collections.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub fn hashmap() {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `tag` are never read
[INFO] [stdout]    --> src/course/common_collections.rs:195:5
[INFO] [stdout]     |
[INFO] [stdout] 194 | struct GoodsTag {
[INFO] [stdout]     |        -------- fields in this struct
[INFO] [stdout] 195 |     id: i32,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 196 |     tag: String,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GoodsTag` 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 `error_handling` is never used
[INFO] [stdout]   --> src/course/error_handling.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn error_handling() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_username_from_file` is never used
[INFO] [stdout]   --> src/course/error_handling.rs:79:4
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn read_username_from_file() -> Result<String, io::Error> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_username_from_file_quikly` is never used
[INFO] [stdout]   --> src/course/error_handling.rs:99:4
[INFO] [stdout]    |
[INFO] [stdout] 99 | fn read_username_from_file_quikly() -> Result<String, io::Error> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_ip_addr` is never used
[INFO] [stdout]    --> src/course/error_handling.rs:106:4
[INFO] [stdout]     |
[INFO] [stdout] 106 | fn parse_ip_addr(ip_addr: &str) -> IpAddr {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generic_type` is never used
[INFO] [stdout]  --> src/course/generic_type.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn generic_type() {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `largest_i32` is never used
[INFO] [stdout]   --> src/course/generic_type.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn largest_i32(vec: &Vec<i32>) -> Result<&i32, &str> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `largest` is never used
[INFO] [stdout]   --> src/course/generic_type.rs:63:4
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn largest<T: Ord>(vec: &Vec<T>) -> Result<&T, &str> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]   --> src/course/generic_type.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct Point<T> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `COMPLETE` and `PROCESSING` are never constructed
[INFO] [stdout]   --> src/course/generic_type.rs:85:5
[INFO] [stdout]    |
[INFO] [stdout] 84 | enum Status<T> {
[INFO] [stdout]    |      ------ variants in this enum
[INFO] [stdout] 85 |     COMPLETE(T),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 86 |     PROCESSING(T),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Status` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `x` is never used
[INFO] [stdout]   --> src/course/generic_type.rs:91:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | impl<T> Point<T> {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] 91 |     fn x(&self) -> &T {
[INFO] [stdout]    |        ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `distance` is never used
[INFO] [stdout]   --> src/course/generic_type.rs:97:8
[INFO] [stdout]    |
[INFO] [stdout] 96 | impl Point<f64> {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 97 |     fn distance(&self, other: &Self) -> f64 {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trait_practice` is never used
[INFO] [stdout]   --> src/course/trait.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn trait_practice() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify` is never used
[INFO] [stdout]   --> src/course/trait.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn notify(item: impl Summary) {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_summary` is never used
[INFO] [stdout]   --> src/course/trait.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub fn notify_summary<T: Summary>(item: T) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_summary_displat` is never used
[INFO] [stdout]   --> src/course/trait.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub fn notify_summary_displat(item: impl Summary + Display) {}
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `some_function` is never used
[INFO] [stdout]   --> src/course/trait.rs:78:4
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn some_function<T: Display + Clone, U: Clone + Debug>(t: T, u: U) {}
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `some_function_where` is never used
[INFO] [stdout]   --> src/course/trait.rs:80:4
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn some_function_where<T, U>(t: T, U: U)
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `returns_summart` is never used
[INFO] [stdout]   --> src/course/trait.rs:87:4
[INFO] [stdout]    |
[INFO] [stdout] 87 | fn returns_summart() -> impl Summary {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest` is never used
[INFO] [stdout]  --> src/course/lifetimes.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
[INFO] [stdout]   |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ImportantExcerpt` is never constructed
[INFO] [stdout]   --> src/course/lifetimes.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | struct ImportantExcerpt<'a> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/course/lifetimes.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl<'a> ImportantExcerpt<'a> {
[INFO] [stdout]    | ----------------------------- associated function in this implementation
[INFO] [stdout] 20 |     fn new(part: &str) -> ImportantExcerpt {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lifetimes` is never used
[INFO] [stdout]   --> src/course/lifetimes.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn lifetimes() {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_workout_closures` is never used
[INFO] [stdout]   --> src/course/closures_iterators.rs:29:4
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn generate_workout_closures(intensity: u32, random_number: u32) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `calculation` and `value` are never read
[INFO] [stdout]   --> src/course/closures_iterators.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | struct Cache<T: Fn(u32) -> u32> {
[INFO] [stdout]    |        ----- fields in this struct
[INFO] [stdout] 50 |     calculation: T,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 51 |     value: Option<u32>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `value` are never used
[INFO] [stdout]   --> src/course/closures_iterators.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | impl<T: Fn(u32) -> u32> Cache<T> {
[INFO] [stdout]    | -------------------------------- associated items in this implementation
[INFO] [stdout] 55 |     fn new(calculation: T) -> Cache<T> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     fn value(&mut self, arg: u32) -> u32 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_workout_cache` is never used
[INFO] [stdout]   --> src/course/closures_iterators.rs:74:4
[INFO] [stdout]    |
[INFO] [stdout] 74 | fn generate_workout_cache(intensity: u32, random_number: u32) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `List` is never constructed
[INFO] [stdout]   --> src/course/smart_pointers.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | struct List<T> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]   --> src/course/smart_pointers.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | struct Node<T> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TreeNode` is never constructed
[INFO] [stdout]    --> src/course/smart_pointers.rs:163:8
[INFO] [stdout]     |
[INFO] [stdout] 163 | struct TreeNode<T> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/course/smart_pointers.rs:170:8
[INFO] [stdout]     |
[INFO] [stdout] 169 | impl<T> TreeNode<T> {
[INFO] [stdout]     | ------------------- associated function in this implementation
[INFO] [stdout] 170 |     fn new(item: T) -> TreeNode<T> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/course/smart_pointers.rs:181:5
[INFO] [stdout]     |
[INFO] [stdout] 180 | struct Owner {
[INFO] [stdout]     |        ----- field in this struct
[INFO] [stdout] 181 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Owner` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `owner` are never read
[INFO] [stdout]    --> src/course/smart_pointers.rs:185:5
[INFO] [stdout]     |
[INFO] [stdout] 184 | struct GadgetLifeTime<'a> {
[INFO] [stdout]     |        -------------- fields in this struct
[INFO] [stdout] 185 |     id: i32,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 186 |     owner: &'a Owner,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]    --> src/course/smart_pointers.rs:190:5
[INFO] [stdout]     |
[INFO] [stdout] 189 | struct Gadget {
[INFO] [stdout]     |        ------ field in this struct
[INFO] [stdout] 190 |     id: i32,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `messages` is never read
[INFO] [stdout]    --> src/course/smart_pointers.rs:280:5
[INFO] [stdout]     |
[INFO] [stdout] 279 | struct MyProducer {
[INFO] [stdout]     |        ---------- field in this struct
[INFO] [stdout] 280 |     messages: Vec<String>,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_even` is never used
[INFO] [stdout]    --> src/course/smart_pointers.rs:312:4
[INFO] [stdout]     |
[INFO] [stdout] 312 | fn is_even(i: i32) -> bool {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `retain_even` is never used
[INFO] [stdout]    --> src/course/smart_pointers.rs:316:4
[INFO] [stdout]     |
[INFO] [stdout] 316 | fn retain_even(nums: &mut Vec<i32>) {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SelfRef` is never constructed
[INFO] [stdout]    --> src/course/smart_pointers.rs:326:8
[INFO] [stdout]     |
[INFO] [stdout] 326 | struct SelfRef<'a>{
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `components` is never read
[INFO] [stdout]   --> src/course/oop.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct ScreenGenric<T>
[INFO] [stdout]    |        ------------ field in this struct
[INFO] [stdout] 11 |     where T: Draw {
[INFO] [stdout] 12 |     components: Vec<T>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `run` is never used
[INFO] [stdout]   --> src/course/oop.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl<T: Draw> ScreenGenric<T> {
[INFO] [stdout]    | ----------------------------- method in this implementation
[INFO] [stdout] 24 |     fn run(&self) {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `do_somethings` is never used
[INFO] [stdout]   --> src/course/futures.rs:15:10
[INFO] [stdout]    |
[INFO] [stdout] 15 | async fn do_somethings() {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hello_world` is never used
[INFO] [stdout]   --> src/course/futures.rs:19:10
[INFO] [stdout]    |
[INFO] [stdout] 19 | async fn hello_world() {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hello_cat` is never used
[INFO] [stdout]   --> src/course/futures.rs:24:10
[INFO] [stdout]    |
[INFO] [stdout] 24 | async fn hello_cat() {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Config` is never constructed
[INFO] [stdout]  --> src/search_text/search_text.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Config {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/search_text/search_text.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 9  | impl Config {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 10 |     pub fn new(mut args: std::env::Args) -> Result<Config, &'static str> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]   --> src/search_text/search_text.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn run(config: Config) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNIT_SIZE` is never used
[INFO] [stdout]   --> src/directory_size/directory_size.rs:24:7
[INFO] [stdout]    |
[INFO] [stdout] 24 | const UNIT_SIZE: u64 = 1024;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `convert` is never used
[INFO] [stdout]   --> src/directory_size/directory_size.rs:26:4
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn convert(size: u64) -> String {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/course/error_handling.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     f.write("hello rust".as_bytes());
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let _ = f.write("hello rust".as_bytes());
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `U` should have a snake case name
[INFO] [stdout]   --> src/course/trait.rs:80:36
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn some_function_where<T, U>(t: T, U: U)
[INFO] [stdout]    |                                    ^ help: convert the identifier to snake case (notice the capitalization): `u`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 187 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.76s
[INFO] running `Command { std: "docker" "inspect" "17a4efb4aa71fd61e6c1e3b00e742e69ce80e6148192b6492248d6723bdce803", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "17a4efb4aa71fd61e6c1e3b00e742e69ce80e6148192b6492248d6723bdce803", kill_on_drop: false }`
[INFO] [stdout] 17a4efb4aa71fd61e6c1e3b00e742e69ce80e6148192b6492248d6723bdce803
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 6771bec91df5199d9a3320ab7efe2719371a3308368a7053df40368b6db4ddb2
[INFO] running `Command { std: "docker" "start" "-a" "6771bec91df5199d9a3320ab7efe2719371a3308368a7053df40368b6db4ddb2", kill_on_drop: false }`
[INFO] [stderr] warning: unused imports: `fs`, `thread`
[INFO] [stderr]  --> src/main.rs:1:16
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::{env, fs, process, thread};
[INFO] [stderr]   |                ^^           ^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::error::Error`
[INFO] [stderr]  --> src/main.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::error::Error;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::sync::mpsc`
[INFO] [stderr]  --> src/main.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::sync::mpsc;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `FileRandomAccessSouce`, `RandomAccessSource`
[INFO] [stderr]  --> src/main.rs:9:44
[INFO] [stderr]   |
[INFO] [stderr] 9 | use crate::example::random_access_source::{FileRandomAccessSouce, RandomAccessSource};
[INFO] [stderr]   |                                            ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `course::guessing_game::guess_game::guessing_number`
[INFO] [stderr]   --> src/main.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | use course::guessing_game::guess_game::guessing_number;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `init_user`
[INFO] [stderr]   --> src/main.rs:18:23
[INFO] [stderr]    |
[INFO] [stderr] 18 | use course::structs::{init_user, tuple_struct, user_demo};
[INFO] [stderr]    |                       ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::error::Error`
[INFO] [stderr]  --> src/example/random_access_source.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::error::Error;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `BufReader`, `ErrorKind`, `SeekFrom`, `Seek`, `Write`
[INFO] [stderr]  --> src/example/random_access_source.rs:4:15
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::io::{BufReader, ErrorKind, Read, Seek, SeekFrom, Write};
[INFO] [stderr]   |               ^^^^^^^^^  ^^^^^^^^^        ^^^^  ^^^^^^^^  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::course::enums_pattern_matching::Message::Move`
[INFO] [stderr]  --> src/course/enums_pattern_matching.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::course::enums_pattern_matching::Message::Move;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::mem::uninitialized`
[INFO] [stderr]  --> src/course/common_collections.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::mem::uninitialized;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `format`
[INFO] [stderr]   --> src/course/trait.rs:13:32
[INFO] [stderr]    |
[INFO] [stderr] 13 | use std::fmt::{Debug, Display, format};
[INFO] [stderr]    |                                ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::os::unix::raw::mode_t`
[INFO] [stderr]  --> src/course/thread.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::os::unix::raw::mode_t;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::net::TcpListener`
[INFO] [stderr]  --> src/course/futures.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::net::TcpListener;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `futures::channel::mpsc::UnboundedReceiver`
[INFO] [stderr]  --> src/course/futures.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use futures::channel::mpsc::UnboundedReceiver;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ok`
[INFO] [stderr]   --> src/course/futures.rs:11:34
[INFO] [stderr]    |
[INFO] [stderr] 11 | use futures::future::{BoxFuture, ok};
[INFO] [stderr]    |                                  ^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stderr]  --> src/course/common_collections.rs:2:15
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::mem::uninitialized;
[INFO] [stderr]   |               ^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated type alias `std::os::unix::raw::mode_t`: these type aliases are no longer supported by the standard library, the `libc` crate on crates.io should be used instead for the correct definitions
[INFO] [stderr]  --> src/course/thread.rs:2:25
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::os::unix::raw::mode_t;
[INFO] [stderr]   |                         ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `readed`
[INFO] [stderr]   --> src/example/random_access_source.rs:70:9
[INFO] [stderr]    |
[INFO] [stderr] 70 |     let readed = file.get_by_bytes(0, &mut bytes).unwrap_or_else(|error| {
[INFO] [stderr]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_readed`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `integer_literals`
[INFO] [stderr]   --> src/course/basic.rs:30:9
[INFO] [stderr]    |
[INFO] [stderr] 30 |     let integer_literals = 98_222;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_integer_literals`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `integer_literals`
[INFO] [stderr]   --> src/course/basic.rs:31:9
[INFO] [stderr]    |
[INFO] [stderr] 31 |     let integer_literals = 0xff;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_integer_literals`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `integer_literals`
[INFO] [stderr]   --> src/course/basic.rs:32:9
[INFO] [stderr]    |
[INFO] [stderr] 32 |     let integer_literals = 0o77;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_integer_literals`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `integer_literals`
[INFO] [stderr]   --> src/course/basic.rs:33:9
[INFO] [stderr]    |
[INFO] [stderr] 33 |     let integer_literals = 0b1111_0000;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_integer_literals`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `integer_literals`
[INFO] [stderr]   --> src/course/basic.rs:34:9
[INFO] [stderr]    |
[INFO] [stderr] 34 |     let integer_literals = b'A';
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_integer_literals`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `float`
[INFO] [stderr]   --> src/course/basic.rs:37:9
[INFO] [stderr]    |
[INFO] [stderr] 37 |     let float = 2.0;
[INFO] [stderr]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_float`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `float`
[INFO] [stderr]   --> src/course/basic.rs:38:9
[INFO] [stderr]    |
[INFO] [stderr] 38 |     let float: f32 = 2.0;
[INFO] [stderr]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_float`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `t`
[INFO] [stderr]   --> src/course/basic.rs:43:9
[INFO] [stderr]    |
[INFO] [stderr] 43 |     let t = true;
[INFO] [stderr]    |         ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `f`
[INFO] [stderr]   --> src/course/basic.rs:44:9
[INFO] [stderr]    |
[INFO] [stderr] 44 |     let f: bool = false;
[INFO] [stderr]    |         ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `c`
[INFO] [stderr]   --> src/course/basic.rs:47:9
[INFO] [stderr]    |
[INFO] [stderr] 47 |     let c = 'a';
[INFO] [stderr]    |         ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> src/course/basic.rs:60:10
[INFO] [stderr]    |
[INFO] [stderr] 60 |     let (i, f, b, c) = tup;
[INFO] [stderr]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `f`
[INFO] [stderr]   --> src/course/basic.rs:60:13
[INFO] [stderr]    |
[INFO] [stderr] 60 |     let (i, f, b, c) = tup;
[INFO] [stderr]    |             ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b`
[INFO] [stderr]   --> src/course/basic.rs:60:16
[INFO] [stderr]    |
[INFO] [stderr] 60 |     let (i, f, b, c) = tup;
[INFO] [stderr]    |                ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `array`
[INFO] [stderr]   --> src/course/basic.rs:67:9
[INFO] [stderr]    |
[INFO] [stderr] 67 |     let array: [i32; 5] = [1, 2, 3, 4, 5];
[INFO] [stderr]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_array`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]   --> src/course/basic.rs:93:9
[INFO] [stderr]    |
[INFO] [stderr] 93 |     let x = 6;
[INFO] [stderr]    |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `s`
[INFO] [stderr]   --> src/course/ownership.rs:13:13
[INFO] [stderr]    |
[INFO] [stderr] 13 |         let s = "hello";
[INFO] [stderr]    |             ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i2`
[INFO] [stderr]   --> src/course/ownership.rs:49:13
[INFO] [stderr]    |
[INFO] [stderr] 49 |         let i2 = i1;
[INFO] [stderr]    |             ^^ help: if this is intentional, prefix it with an underscore: `_i2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tup2`
[INFO] [stderr]   --> src/course/ownership.rs:75:13
[INFO] [stderr]    |
[INFO] [stderr] 75 |         let tup2 = tup1;
[INFO] [stderr]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_tup2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `array2`
[INFO] [stderr]   --> src/course/ownership.rs:79:13
[INFO] [stderr]    |
[INFO] [stderr] 79 |         let array2 = array1;
[INFO] [stderr]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_array2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i2`
[INFO] [stderr]    --> src/course/ownership.rs:105:9
[INFO] [stderr]     |
[INFO] [stderr] 105 |     let i2 = i1;
[INFO] [stderr]     |         ^^ help: if this is intentional, prefix it with an underscore: `_i2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `s1`
[INFO] [stderr]    --> src/course/ownership.rs:120:9
[INFO] [stderr]     |
[INFO] [stderr] 120 |     let s1 = gives_ownership();
[INFO] [stderr]     |         ^^ help: if this is intentional, prefix it with an underscore: `_s1`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]  --> src/course/slice_type.rs:7:9
[INFO] [stderr]   |
[INFO] [stderr] 7 |     let mut str = String::from("hello world");
[INFO] [stderr]   |         ----^^^
[INFO] [stderr]   |         |
[INFO] [stderr]   |         help: remove this `mut`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `origin`
[INFO] [stderr]   --> src/course/structs.rs:68:9
[INFO] [stderr]    |
[INFO] [stderr] 68 |     let origin =Point(0,0, 0);
[INFO] [stderr]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `g`
[INFO] [stderr]   --> src/course/structs.rs:71:18
[INFO] [stderr]    |
[INFO] [stderr] 71 |     let Color(r, g, b) = black;
[INFO] [stderr]    |                  ^ help: if this is intentional, prefix it with an underscore: `_g`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b`
[INFO] [stderr]   --> src/course/structs.rs:71:21
[INFO] [stderr]    |
[INFO] [stderr] 71 |     let Color(r, g, b) = black;
[INFO] [stderr]    |                     ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `home`
[INFO] [stderr]   --> src/course/enums_pattern_matching.rs:15:9
[INFO] [stderr]    |
[INFO] [stderr] 15 |     let home = IpAddr {
[INFO] [stderr]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_home`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `loopback`
[INFO] [stderr]   --> src/course/enums_pattern_matching.rs:20:9
[INFO] [stderr]    |
[INFO] [stderr] 20 |     let loopback = IpAddr {
[INFO] [stderr]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loopback`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `loopback`
[INFO] [stderr]   --> src/course/enums_pattern_matching.rs:26:9
[INFO] [stderr]    |
[INFO] [stderr] 26 |     let loopback = IpAddress::V6(String::from("::1"));
[INFO] [stderr]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loopback`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `some_number`
[INFO] [stderr]   --> src/course/enums_pattern_matching.rs:36:9
[INFO] [stderr]    |
[INFO] [stderr] 36 |     let some_number = Some(5);
[INFO] [stderr]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_some_number`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `some_string`
[INFO] [stderr]   --> src/course/enums_pattern_matching.rs:37:9
[INFO] [stderr]    |
[INFO] [stderr] 37 |     let some_string = Some("a string");
[INFO] [stderr]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_some_string`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `absent_number`
[INFO] [stderr]   --> src/course/enums_pattern_matching.rs:40:9
[INFO] [stderr]    |
[INFO] [stderr] 40 |     let absent_number: Option<i32> = None;
[INFO] [stderr]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_absent_number`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]   --> src/course/enums_pattern_matching.rs:43:9
[INFO] [stderr]    |
[INFO] [stderr] 43 |     let x: i32 = 5;
[INFO] [stderr]    |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `y`
[INFO] [stderr]   --> src/course/enums_pattern_matching.rs:44:9
[INFO] [stderr]    |
[INFO] [stderr] 44 |     let y: Option<i32> = Some(5);
[INFO] [stderr]    |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `six`
[INFO] [stderr]    --> src/course/enums_pattern_matching.rs:112:9
[INFO] [stderr]     |
[INFO] [stderr] 112 |     let six = plus_one(five);
[INFO] [stderr]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_six`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `none`
[INFO] [stderr]    --> src/course/enums_pattern_matching.rs:113:9
[INFO] [stderr]     |
[INFO] [stderr] 113 |     let none = plus_one(None);
[INFO] [stderr]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_none`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `v2`
[INFO] [stderr]   --> src/course/common_collections.rs:14:9
[INFO] [stderr]    |
[INFO] [stderr] 14 |     let v2 = vec![1, 2, 3];
[INFO] [stderr]    |         ^^ help: if this is intentional, prefix it with an underscore: `_v2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `s`
[INFO] [stderr]   --> src/course/common_collections.rs:81:13
[INFO] [stderr]    |
[INFO] [stderr] 81 |     let mut s = String::new();
[INFO] [stderr]    |             ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `char`
[INFO] [stderr]   --> src/course/common_collections.rs:86:9
[INFO] [stderr]    |
[INFO] [stderr] 86 |     let char = s.get(0..2);
[INFO] [stderr]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_char`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/course/common_collections.rs:81:9
[INFO] [stderr]    |
[INFO] [stderr] 81 |     let mut s = String::new();
[INFO] [stderr]    |         ----^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `file`
[INFO] [stderr]   --> src/course/error_handling.rs:34:28
[INFO] [stderr]    |
[INFO] [stderr] 34 |                         Ok(file) => println!("file create successful"),
[INFO] [stderr]    |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `f`
[INFO] [stderr]   --> src/course/error_handling.rs:46:9
[INFO] [stderr]    |
[INFO] [stderr] 46 |     let f = File::open("hello.txt").unwrap_or_else(|error| {
[INFO] [stderr]    |         ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `f`
[INFO] [stderr]   --> src/course/error_handling.rs:57:9
[INFO] [stderr]    |
[INFO] [stderr] 57 |     let f = File::open("hello.txt").unwrap();
[INFO] [stderr]    |         ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `f`
[INFO] [stderr]   --> src/course/error_handling.rs:58:13
[INFO] [stderr]    |
[INFO] [stderr] 58 |     let mut f = File::open("hello.txt").expect("File open hello.txt error");
[INFO] [stderr]    |             ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/course/error_handling.rs:58:9
[INFO] [stderr]    |
[INFO] [stderr] 58 |     let mut f = File::open("hello.txt").expect("File open hello.txt error");
[INFO] [stderr]    |         ----^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `int`
[INFO] [stderr]   --> src/course/generic_type.rs:23:9
[INFO] [stderr]    |
[INFO] [stderr] 23 |     let int = Point { x: 123, y: 321 };
[INFO] [stderr]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_int`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `float`
[INFO] [stderr]   --> src/course/generic_type.rs:24:9
[INFO] [stderr]    |
[INFO] [stderr] 24 |     let float = Point { x: 12.3, y: 32.1 };
[INFO] [stderr]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_float`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `item`
[INFO] [stderr]   --> src/course/trait.rs:75:31
[INFO] [stderr]    |
[INFO] [stderr] 75 | pub fn notify_summary_displat(item: impl Summary + Display) {}
[INFO] [stderr]    |                               ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `t`
[INFO] [stderr]   --> src/course/trait.rs:78:56
[INFO] [stderr]    |
[INFO] [stderr] 78 | fn some_function<T: Display + Clone, U: Clone + Debug>(t: T, u: U) {}
[INFO] [stderr]    |                                                        ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `u`
[INFO] [stderr]   --> src/course/trait.rs:78:62
[INFO] [stderr]    |
[INFO] [stderr] 78 | fn some_function<T: Display + Clone, U: Clone + Debug>(t: T, u: U) {}
[INFO] [stderr]    |                                                              ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `t`
[INFO] [stderr]   --> src/course/trait.rs:80:30
[INFO] [stderr]    |
[INFO] [stderr] 80 | fn some_function_where<T, U>(t: T, U: U)
[INFO] [stderr]    |                              ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `U`
[INFO] [stderr]   --> src/course/trait.rs:80:36
[INFO] [stderr]    |
[INFO] [stderr] 80 | fn some_function_where<T, U>(t: T, U: U)
[INFO] [stderr]    |                                    ^ help: if this is intentional, prefix it with an underscore: `_U`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `n`
[INFO] [stderr]    --> src/course/closures_iterators.rs:202:9
[INFO] [stderr]     |
[INFO] [stderr] 202 |     let n = words.count();
[INFO] [stderr]     |         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `g1`
[INFO] [stderr]    --> src/course/smart_pointers.rs:210:9
[INFO] [stderr]     |
[INFO] [stderr] 210 |     let g1 = GadgetLifeTime { id: 1, owner: &owner };
[INFO] [stderr]     |         ^^ help: if this is intentional, prefix it with an underscore: `_g1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `g2`
[INFO] [stderr]    --> src/course/smart_pointers.rs:211:9
[INFO] [stderr]     |
[INFO] [stderr] 211 |     let g2 = GadgetLifeTime { id: 2, owner: &owner };
[INFO] [stderr]     |         ^^ help: if this is intentional, prefix it with an underscore: `_g2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rc`
[INFO] [stderr]    --> src/course/smart_pointers.rs:229:13
[INFO] [stderr]     |
[INFO] [stderr] 229 |         let rc = Rc::clone(&s);
[INFO] [stderr]     |             ^^ help: if this is intentional, prefix it with an underscore: `_rc`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/course/smart_pointers.rs:200:9
[INFO] [stderr]     |
[INFO] [stderr] 200 |     let mut r1 = Rc::new(s1);
[INFO] [stderr]     |         ----^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ref_cell`
[INFO] [stderr]    --> src/course/smart_pointers.rs:264:9
[INFO] [stderr]     |
[INFO] [stderr] 264 |     let ref_cell = RefCell::new(String::from("hello RefCell"));
[INFO] [stderr]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ref_cell`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `msg`
[INFO] [stderr]    --> src/course/smart_pointers.rs:289:20
[INFO] [stderr]     |
[INFO] [stderr] 289 |     fn send(&self, msg: String) {
[INFO] [stderr]     |                    ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `s`
[INFO] [stderr]    --> src/course/smart_pointers.rs:333:9
[INFO] [stderr]     |
[INFO] [stderr] 333 |     let s = String::from("hello");
[INFO] [stderr]     |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `se`
[INFO] [stderr]   --> src/main.rs:32:9
[INFO] [stderr]    |
[INFO] [stderr] 32 |     let se = statement_expression();
[INFO] [stderr]    |         ^^ help: if this is intentional, prefix it with an underscore: `_se`
[INFO] [stderr] 
[INFO] [stderr] warning: function `basic_program` is never used
[INFO] [stderr]   --> src/main.rs:27:4
[INFO] [stderr]    |
[INFO] [stderr] 27 | fn basic_program() {
[INFO] [stderr]    |    ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `search_test` is never used
[INFO] [stderr]   --> src/main.rs:61:4
[INFO] [stderr]    |
[INFO] [stderr] 61 | fn search_test() {
[INFO] [stderr]    |    ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `BUFFER_SIZE` is never used
[INFO] [stderr]   --> src/example/random_access_source.rs:40:7
[INFO] [stderr]    |
[INFO] [stderr] 40 | const BUFFER_SIZE: usize = 8192;
[INFO] [stderr]    |       ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `guessing_number` is never used
[INFO] [stderr]  --> src/course/guessing_game.rs:7:12
[INFO] [stderr]   |
[INFO] [stderr] 7 |     pub fn guessing_number() {
[INFO] [stderr]   |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `variables` is never used
[INFO] [stderr]  --> src/course/basic.rs:3:8
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub fn variables() {
[INFO] [stderr]   |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `println_int` is never used
[INFO] [stderr]   --> src/course/basic.rs:82:8
[INFO] [stderr]    |
[INFO] [stderr] 82 | pub fn println_int(int: i32) {
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `statement_expression` is never used
[INFO] [stderr]   --> src/course/basic.rs:90:8
[INFO] [stderr]    |
[INFO] [stderr] 90 | pub fn statement_expression() {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `sum` is never used
[INFO] [stderr]    --> src/course/basic.rs:105:8
[INFO] [stderr]     |
[INFO] [stderr] 105 | pub fn sum(a: i32, b: i32) -> i32 {
[INFO] [stderr]     |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `control_flow` is never used
[INFO] [stderr]    --> src/course/basic.rs:111:8
[INFO] [stderr]     |
[INFO] [stderr] 111 | pub fn control_flow() {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `variables_scope` is never used
[INFO] [stderr]   --> src/course/ownership.rs:11:8
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub fn variables_scope() {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `ownership_function` is never used
[INFO] [stderr]   --> src/course/ownership.rs:95:8
[INFO] [stderr]    |
[INFO] [stderr] 95 | pub fn ownership_function() {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `takes_ownership` is never used
[INFO] [stderr]    --> src/course/ownership.rs:108:4
[INFO] [stderr]     |
[INFO] [stderr] 108 | fn takes_ownership(str: String) {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `makes_copy` is never used
[INFO] [stderr]    --> src/course/ownership.rs:112:4
[INFO] [stderr]     |
[INFO] [stderr] 112 | fn makes_copy(int: i32) {
[INFO] [stderr]     |    ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `return_values_scope` is never used
[INFO] [stderr]    --> src/course/ownership.rs:119:4
[INFO] [stderr]     |
[INFO] [stderr] 119 | fn return_values_scope() {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `gives_ownership` is never used
[INFO] [stderr]    --> src/course/ownership.rs:132:4
[INFO] [stderr]     |
[INFO] [stderr] 132 | fn gives_ownership() -> String {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `takes_and_gives_ownership` is never used
[INFO] [stderr]    --> src/course/ownership.rs:137:4
[INFO] [stderr]     |
[INFO] [stderr] 137 | fn takes_and_gives_ownership(str: String) -> String {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `calculate_length` is never used
[INFO] [stderr]    --> src/course/ownership.rs:144:4
[INFO] [stderr]     |
[INFO] [stderr] 144 | fn calculate_length(str: String) -> (String, usize) {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `references_borrowing` is never used
[INFO] [stderr]  --> src/course/references_borrowing.rs:2:8
[INFO] [stderr]   |
[INFO] [stderr] 2 | pub fn references_borrowing() {
[INFO] [stderr]   |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `calculate_length` is never used
[INFO] [stderr]   --> src/course/references_borrowing.rs:52:4
[INFO] [stderr]    |
[INFO] [stderr] 52 | fn calculate_length(str: &String) -> usize {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `append` is never used
[INFO] [stderr]   --> src/course/references_borrowing.rs:57:4
[INFO] [stderr]    |
[INFO] [stderr] 57 | fn append(str: &mut String) {
[INFO] [stderr]    |    ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `swap` is never used
[INFO] [stderr]   --> src/course/references_borrowing.rs:70:4
[INFO] [stderr]    |
[INFO] [stderr] 70 | fn swap(mut x: String, mut y: String) -> (String, String) {
[INFO] [stderr]    |    ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `slice_type` is never used
[INFO] [stderr]  --> src/course/slice_type.rs:6:8
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub fn slice_type() {
[INFO] [stderr]   |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `first_word_old` is never used
[INFO] [stderr]   --> src/course/slice_type.rs:27:4
[INFO] [stderr]    |
[INFO] [stderr] 27 | fn first_word_old(str: &String) -> usize {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `first_word` is never used
[INFO] [stderr]   --> src/course/slice_type.rs:37:4
[INFO] [stderr]    |
[INFO] [stderr] 37 | fn first_word(str: &String) -> &str{
[INFO] [stderr]    |    ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `first_word_better` is never used
[INFO] [stderr]   --> src/course/slice_type.rs:47:4
[INFO] [stderr]    |
[INFO] [stderr] 47 | fn first_word_better(str: &str) -> &str{
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `User` is never constructed
[INFO] [stderr]  --> src/course/structs.rs:8:12
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub struct User {
[INFO] [stderr]   |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `init_user` is never used
[INFO] [stderr]   --> src/course/structs.rs:15:8
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub fn init_user() -> User {
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `user_demo` is never used
[INFO] [stderr]   --> src/course/structs.rs:24:8
[INFO] [stderr]    |
[INFO] [stderr] 24 | pub fn user_demo() {
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `build_user` is never used
[INFO] [stderr]   --> src/course/structs.rs:44:4
[INFO] [stderr]    |
[INFO] [stderr] 44 | fn build_user(email: String, username: String) -> User {
[INFO] [stderr]    |    ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `build_with_other_user` is never used
[INFO] [stderr]   --> src/course/structs.rs:54:4
[INFO] [stderr]    |
[INFO] [stderr] 54 | fn build_with_other_user(email: String, username:String, user: &User) -> User {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Color` is never constructed
[INFO] [stderr]   --> src/course/structs.rs:64:8
[INFO] [stderr]    |
[INFO] [stderr] 64 | struct Color(i32, i32, i32);
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Point` is never constructed
[INFO] [stderr]   --> src/course/structs.rs:65:8
[INFO] [stderr]    |
[INFO] [stderr] 65 | struct Point(i32, i32, i32);
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `tuple_struct` is never used
[INFO] [stderr]   --> src/course/structs.rs:66:8
[INFO] [stderr]    |
[INFO] [stderr] 66 | pub fn tuple_struct() {
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Unit` is never constructed
[INFO] [stderr]   --> src/course/structs.rs:77:8
[INFO] [stderr]    |
[INFO] [stderr] 77 | struct Unit;
[INFO] [stderr]    |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Student` is never constructed
[INFO] [stderr]   --> src/course/structs.rs:80:8
[INFO] [stderr]    |
[INFO] [stderr] 80 | struct Student{
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `area` is never used
[INFO] [stderr]  --> src/course/struct_example.rs:1:8
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub fn area(with: i32, height: i32) -> i32 {
[INFO] [stderr]   |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `area_tuple` is never used
[INFO] [stderr]  --> src/course/struct_example.rs:6:8
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub fn area_tuple(dimensions: (i32, i32)) -> i32 {
[INFO] [stderr]   |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `width` and `height` are never read
[INFO] [stderr]   --> src/course/struct_example.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | struct Rectangle {
[INFO] [stderr]    |        --------- fields in this struct
[INFO] [stderr] 12 |     width: i32,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 13 |     height: i32,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Rectangle` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `area`, `can_hold`, and `square` are never used
[INFO] [stderr]   --> src/course/struct_example.rs:19:8
[INFO] [stderr]    |
[INFO] [stderr] 18 | impl Rectangle {
[INFO] [stderr]    | -------------- associated items in this implementation
[INFO] [stderr] 19 |     fn area(&self) -> i32 {
[INFO] [stderr]    |        ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 23 |     fn can_hold(&self, rect: &Rectangle) -> bool {
[INFO] [stderr]    |        ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 34 |     fn square(size: i32) -> Rectangle {
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `area_rectangle` is never used
[INFO] [stderr]   --> src/course/struct_example.rs:42:4
[INFO] [stderr]    |
[INFO] [stderr] 42 | fn area_rectangle(rect: &Rectangle) -> i32 {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `calculate_area` is never used
[INFO] [stderr]   --> src/course/struct_example.rs:46:8
[INFO] [stderr]    |
[INFO] [stderr] 46 | pub fn calculate_area() {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `enums` is never used
[INFO] [stderr]  --> src/course/enums_pattern_matching.rs:5:8
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub fn enums() {
[INFO] [stderr]   |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `V4` and `V6` are never constructed
[INFO] [stderr]   --> src/course/enums_pattern_matching.rs:51:5
[INFO] [stderr]    |
[INFO] [stderr] 50 | enum IpAddrKid {
[INFO] [stderr]    |      --------- variants in this enum
[INFO] [stderr] 51 |     V4,
[INFO] [stderr]    |     ^^
[INFO] [stderr] 52 |     V6,
[INFO] [stderr]    |     ^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `IpAddrKid` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: function `route` is never used
[INFO] [stderr]   --> src/course/enums_pattern_matching.rs:55:4
[INFO] [stderr]    |
[INFO] [stderr] 55 | fn route(ip_addr_kid: &IpAddrKid) {
[INFO] [stderr]    |    ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `IpAddr` is never constructed
[INFO] [stderr]   --> src/course/enums_pattern_matching.rs:59:8
[INFO] [stderr]    |
[INFO] [stderr] 59 | struct IpAddr {
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `V4` and `V6` are never constructed
[INFO] [stderr]   --> src/course/enums_pattern_matching.rs:67:5
[INFO] [stderr]    |
[INFO] [stderr] 66 | enum IpAddress {
[INFO] [stderr]    |      --------- variants in this enum
[INFO] [stderr] 67 |     V4(u8, u8, u8, u8),
[INFO] [stderr]    |     ^^
[INFO] [stderr] 68 |     V6(String),
[INFO] [stderr]    |     ^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `IpAddress` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Quit`, `Move`, `Write`, and `ChangeColor` are never constructed
[INFO] [stderr]   --> src/course/enums_pattern_matching.rs:73:5
[INFO] [stderr]    |
[INFO] [stderr] 72 | enum Message {
[INFO] [stderr]    |      ------- variants in this enum
[INFO] [stderr] 73 |     Quit,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 74 |     Move { x: i32, y: i32 },
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 75 |     //匿名结构体
[INFO] [stderr] 76 |     Write(String),
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 77 |     ChangeColor(i32, i32, i32),
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Message` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `call` is never used
[INFO] [stderr]   --> src/course/enums_pattern_matching.rs:81:8
[INFO] [stderr]    |
[INFO] [stderr] 80 | impl Message {
[INFO] [stderr]    | ------------ method in this implementation
[INFO] [stderr] 81 |     fn call(&self) {
[INFO] [stderr]    |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `pattern_match` is never used
[INFO] [stderr]    --> src/course/enums_pattern_matching.rs:102:8
[INFO] [stderr]     |
[INFO] [stderr] 102 | pub fn pattern_match() {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Peeny`, `Nickel`, `Dime`, and `Quarter` are never constructed
[INFO] [stderr]    --> src/course/enums_pattern_matching.rs:147:5
[INFO] [stderr]     |
[INFO] [stderr] 146 | enum Coin {
[INFO] [stderr]     |      ---- variants in this enum
[INFO] [stderr] 147 |     Peeny,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr] 148 |     Nickel,
[INFO] [stderr]     |     ^^^^^^
[INFO] [stderr] 149 |     Dime,
[INFO] [stderr]     |     ^^^^
[INFO] [stderr] 150 |     Quarter(UsState),
[INFO] [stderr]     |     ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Coin` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Alabama` and `Alaska` are never constructed
[INFO] [stderr]    --> src/course/enums_pattern_matching.rs:155:5
[INFO] [stderr]     |
[INFO] [stderr] 154 | enum UsState {
[INFO] [stderr]     |      ------- variants in this enum
[INFO] [stderr] 155 |     Alabama,
[INFO] [stderr]     |     ^^^^^^^
[INFO] [stderr] 156 |     Alaska,
[INFO] [stderr]     |     ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `UsState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: function `value_in_coin` is never used
[INFO] [stderr]    --> src/course/enums_pattern_matching.rs:159:4
[INFO] [stderr]     |
[INFO] [stderr] 159 | fn value_in_coin(coin: &Coin) -> u8 {
[INFO] [stderr]     |    ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `count_in_coin` is never used
[INFO] [stderr]    --> src/course/enums_pattern_matching.rs:171:4
[INFO] [stderr]     |
[INFO] [stderr] 171 | fn count_in_coin(coin: &Coin) -> i32 {
[INFO] [stderr]     |    ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `plus_one` is never used
[INFO] [stderr]    --> src/course/enums_pattern_matching.rs:181:4
[INFO] [stderr]     |
[INFO] [stderr] 181 | fn plus_one(x: Option<i32>) -> Option<i32> {
[INFO] [stderr]     |    ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `append_one` is never used
[INFO] [stderr]    --> src/course/enums_pattern_matching.rs:188:4
[INFO] [stderr]     |
[INFO] [stderr] 188 | fn append_one(s: Option<&mut String>) -> Option<&String> {
[INFO] [stderr]     |    ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `vector` is never used
[INFO] [stderr]   --> src/course/common_collections.rs:12:8
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub fn vector() {
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Int`, `Float`, and `Text` are never constructed
[INFO] [stderr]   --> src/course/common_collections.rs:70:5
[INFO] [stderr]    |
[INFO] [stderr] 69 | enum SpreadsheetCell {
[INFO] [stderr]    |      --------------- variants in this enum
[INFO] [stderr] 70 |     Int(i32),
[INFO] [stderr]    |     ^^^
[INFO] [stderr] 71 |     Float(f64),
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 72 |     Text(String),
[INFO] [stderr]    |     ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `SpreadsheetCell` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: function `string` is never used
[INFO] [stderr]   --> src/course/common_collections.rs:80:8
[INFO] [stderr]    |
[INFO] [stderr] 80 | pub fn string() {
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `hashmap` is never used
[INFO] [stderr]    --> src/course/common_collections.rs:122:8
[INFO] [stderr]     |
[INFO] [stderr] 122 | pub fn hashmap() {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `id` and `tag` are never read
[INFO] [stderr]    --> src/course/common_collections.rs:195:5
[INFO] [stderr]     |
[INFO] [stderr] 194 | struct GoodsTag {
[INFO] [stderr]     |        -------- fields in this struct
[INFO] [stderr] 195 |     id: i32,
[INFO] [stderr]     |     ^^
[INFO] [stderr] 196 |     tag: String,
[INFO] [stderr]     |     ^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `GoodsTag` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: function `error_handling` is never used
[INFO] [stderr]   --> src/course/error_handling.rs:11:8
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub fn error_handling() {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `read_username_from_file` is never used
[INFO] [stderr]   --> src/course/error_handling.rs:79:4
[INFO] [stderr]    |
[INFO] [stderr] 79 | fn read_username_from_file() -> Result<String, io::Error> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `read_username_from_file_quikly` is never used
[INFO] [stderr]   --> src/course/error_handling.rs:99:4
[INFO] [stderr]    |
[INFO] [stderr] 99 | fn read_username_from_file_quikly() -> Result<String, io::Error> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_ip_addr` is never used
[INFO] [stderr]    --> src/course/error_handling.rs:106:4
[INFO] [stderr]     |
[INFO] [stderr] 106 | fn parse_ip_addr(ip_addr: &str) -> IpAddr {
[INFO] [stderr]     |    ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `generic_type` is never used
[INFO] [stderr]  --> src/course/generic_type.rs:1:8
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub fn generic_type() {
[INFO] [stderr]   |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `largest_i32` is never used
[INFO] [stderr]   --> src/course/generic_type.rs:44:4
[INFO] [stderr]    |
[INFO] [stderr] 44 | fn largest_i32(vec: &Vec<i32>) -> Result<&i32, &str> {
[INFO] [stderr]    |    ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `largest` is never used
[INFO] [stderr]   --> src/course/generic_type.rs:63:4
[INFO] [stderr]    |
[INFO] [stderr] 63 | fn largest<T: Ord>(vec: &Vec<T>) -> Result<&T, &str> {
[INFO] [stderr]    |    ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Point` is never constructed
[INFO] [stderr]   --> src/course/generic_type.rs:77:8
[INFO] [stderr]    |
[INFO] [stderr] 77 | struct Point<T> {
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `COMPLETE` and `PROCESSING` are never constructed
[INFO] [stderr]   --> src/course/generic_type.rs:85:5
[INFO] [stderr]    |
[INFO] [stderr] 84 | enum Status<T> {
[INFO] [stderr]    |      ------ variants in this enum
[INFO] [stderr] 85 |     COMPLETE(T),
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 86 |     PROCESSING(T),
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Status` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `x` is never used
[INFO] [stderr]   --> src/course/generic_type.rs:91:8
[INFO] [stderr]    |
[INFO] [stderr] 90 | impl<T> Point<T> {
[INFO] [stderr]    | ---------------- method in this implementation
[INFO] [stderr] 91 |     fn x(&self) -> &T {
[INFO] [stderr]    |        ^
[INFO] [stderr] 
[INFO] [stderr] warning: method `distance` is never used
[INFO] [stderr]   --> src/course/generic_type.rs:97:8
[INFO] [stderr]    |
[INFO] [stderr] 96 | impl Point<f64> {
[INFO] [stderr]    | --------------- method in this implementation
[INFO] [stderr] 97 |     fn distance(&self, other: &Self) -> f64 {
[INFO] [stderr]    |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `trait_practice` is never used
[INFO] [stderr]   --> src/course/trait.rs:15:8
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub fn trait_practice() {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `notify` is never used
[INFO] [stderr]   --> src/course/trait.rs:65:8
[INFO] [stderr]    |
[INFO] [stderr] 65 | pub fn notify(item: impl Summary) {
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `notify_summary` is never used
[INFO] [stderr]   --> src/course/trait.rs:70:8
[INFO] [stderr]    |
[INFO] [stderr] 70 | pub fn notify_summary<T: Summary>(item: T) {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `notify_summary_displat` is never used
[INFO] [stderr]   --> src/course/trait.rs:75:8
[INFO] [stderr]    |
[INFO] [stderr] 75 | pub fn notify_summary_displat(item: impl Summary + Display) {}
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `some_function` is never used
[INFO] [stderr]   --> src/course/trait.rs:78:4
[INFO] [stderr]    |
[INFO] [stderr] 78 | fn some_function<T: Display + Clone, U: Clone + Debug>(t: T, u: U) {}
[INFO] [stderr]    |    ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `some_function_where` is never used
[INFO] [stderr]   --> src/course/trait.rs:80:4
[INFO] [stderr]    |
[INFO] [stderr] 80 | fn some_function_where<T, U>(t: T, U: U)
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `returns_summart` is never used
[INFO] [stderr]   --> src/course/trait.rs:87:4
[INFO] [stderr]    |
[INFO] [stderr] 87 | fn returns_summart() -> impl Summary {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `longest` is never used
[INFO] [stderr]  --> src/course/lifetimes.rs:7:4
[INFO] [stderr]   |
[INFO] [stderr] 7 | fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
[INFO] [stderr]   |    ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ImportantExcerpt` is never constructed
[INFO] [stderr]   --> src/course/lifetimes.rs:15:8
[INFO] [stderr]    |
[INFO] [stderr] 15 | struct ImportantExcerpt<'a> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/course/lifetimes.rs:20:8
[INFO] [stderr]    |
[INFO] [stderr] 19 | impl<'a> ImportantExcerpt<'a> {
[INFO] [stderr]    | ----------------------------- associated function in this implementation
[INFO] [stderr] 20 |     fn new(part: &str) -> ImportantExcerpt {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `lifetimes` is never used
[INFO] [stderr]   --> src/course/lifetimes.rs:31:8
[INFO] [stderr]    |
[INFO] [stderr] 31 | pub fn lifetimes() {
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `generate_workout_closures` is never used
[INFO] [stderr]   --> src/course/closures_iterators.rs:29:4
[INFO] [stderr]    |
[INFO] [stderr] 29 | fn generate_workout_closures(intensity: u32, random_number: u32) {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `calculation` and `value` are never read
[INFO] [stderr]   --> src/course/closures_iterators.rs:50:5
[INFO] [stderr]    |
[INFO] [stderr] 49 | struct Cache<T: Fn(u32) -> u32> {
[INFO] [stderr]    |        ----- fields in this struct
[INFO] [stderr] 50 |     calculation: T,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 51 |     value: Option<u32>,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `value` are never used
[INFO] [stderr]   --> src/course/closures_iterators.rs:55:8
[INFO] [stderr]    |
[INFO] [stderr] 54 | impl<T: Fn(u32) -> u32> Cache<T> {
[INFO] [stderr]    | -------------------------------- associated items in this implementation
[INFO] [stderr] 55 |     fn new(calculation: T) -> Cache<T> {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 62 |     fn value(&mut self, arg: u32) -> u32 {
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `generate_workout_cache` is never used
[INFO] [stderr]   --> src/course/closures_iterators.rs:74:4
[INFO] [stderr]    |
[INFO] [stderr] 74 | fn generate_workout_cache(intensity: u32, random_number: u32) {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `List` is never constructed
[INFO] [stderr]   --> src/course/smart_pointers.rs:30:8
[INFO] [stderr]    |
[INFO] [stderr] 30 | struct List<T> {
[INFO] [stderr]    |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Node` is never constructed
[INFO] [stderr]   --> src/course/smart_pointers.rs:37:8
[INFO] [stderr]    |
[INFO] [stderr] 37 | struct Node<T> {
[INFO] [stderr]    |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `TreeNode` is never constructed
[INFO] [stderr]    --> src/course/smart_pointers.rs:163:8
[INFO] [stderr]     |
[INFO] [stderr] 163 | struct TreeNode<T> {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> src/course/smart_pointers.rs:170:8
[INFO] [stderr]     |
[INFO] [stderr] 169 | impl<T> TreeNode<T> {
[INFO] [stderr]     | ------------------- associated function in this implementation
[INFO] [stderr] 170 |     fn new(item: T) -> TreeNode<T> {
[INFO] [stderr]     |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `name` is never read
[INFO] [stderr]    --> src/course/smart_pointers.rs:181:5
[INFO] [stderr]     |
[INFO] [stderr] 180 | struct Owner {
[INFO] [stderr]     |        ----- field in this struct
[INFO] [stderr] 181 |     name: String,
[INFO] [stderr]     |     ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Owner` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `id` and `owner` are never read
[INFO] [stderr]    --> src/course/smart_pointers.rs:185:5
[INFO] [stderr]     |
[INFO] [stderr] 184 | struct GadgetLifeTime<'a> {
[INFO] [stderr]     |        -------------- fields in this struct
[INFO] [stderr] 185 |     id: i32,
[INFO] [stderr]     |     ^^
[INFO] [stderr] 186 |     owner: &'a Owner,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `id` is never read
[INFO] [stderr]    --> src/course/smart_pointers.rs:190:5
[INFO] [stderr]     |
[INFO] [stderr] 189 | struct Gadget {
[INFO] [stderr]     |        ------ field in this struct
[INFO] [stderr] 190 |     id: i32,
[INFO] [stderr]     |     ^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `messages` is never read
[INFO] [stderr]    --> src/course/smart_pointers.rs:280:5
[INFO] [stderr]     |
[INFO] [stderr] 279 | struct MyProducer {
[INFO] [stderr]     |        ---------- field in this struct
[INFO] [stderr] 280 |     messages: Vec<String>,
[INFO] [stderr]     |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_even` is never used
[INFO] [stderr]    --> src/course/smart_pointers.rs:312:4
[INFO] [stderr]     |
[INFO] [stderr] 312 | fn is_even(i: i32) -> bool {
[INFO] [stderr]     |    ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `retain_even` is never used
[INFO] [stderr]    --> src/course/smart_pointers.rs:316:4
[INFO] [stderr]     |
[INFO] [stderr] 316 | fn retain_even(nums: &mut Vec<i32>) {
[INFO] [stderr]     |    ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SelfRef` is never constructed
[INFO] [stderr]    --> src/course/smart_pointers.rs:326:8
[INFO] [stderr]     |
[INFO] [stderr] 326 | struct SelfRef<'a>{
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `components` is never read
[INFO] [stderr]   --> src/course/oop.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | struct ScreenGenric<T>
[INFO] [stderr]    |        ------------ field in this struct
[INFO] [stderr] 11 |     where T: Draw {
[INFO] [stderr] 12 |     components: Vec<T>,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `run` is never used
[INFO] [stderr]   --> src/course/oop.rs:24:8
[INFO] [stderr]    |
[INFO] [stderr] 23 | impl<T: Draw> ScreenGenric<T> {
[INFO] [stderr]    | ----------------------------- method in this implementation
[INFO] [stderr] 24 |     fn run(&self) {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `do_somethings` is never used
[INFO] [stderr]   --> src/course/futures.rs:15:10
[INFO] [stderr]    |
[INFO] [stderr] 15 | async fn do_somethings() {
[INFO] [stderr]    |          ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `hello_world` is never used
[INFO] [stderr]   --> src/course/futures.rs:19:10
[INFO] [stderr]    |
[INFO] [stderr] 19 | async fn hello_world() {
[INFO] [stderr]    |          ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `hello_cat` is never used
[INFO] [stderr]   --> src/course/futures.rs:24:10
[INFO] [stderr]    |
[INFO] [stderr] 24 | async fn hello_cat() {
[INFO] [stderr]    |          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Config` is never constructed
[INFO] [stderr]  --> src/search_text/search_text.rs:4:12
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub struct Config {
[INFO] [stderr]   |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/search_text/search_text.rs:10:12
[INFO] [stderr]    |
[INFO] [stderr] 9  | impl Config {
[INFO] [stderr]    | ----------- associated function in this implementation
[INFO] [stderr] 10 |     pub fn new(mut args: std::env::Args) -> Result<Config, &'static str> {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `run` is never used
[INFO] [stderr]   --> src/search_text/search_text.rs:27:8
[INFO] [stderr]    |
[INFO] [stderr] 27 | pub fn run(config: Config) -> Result<(), Box<dyn Error>> {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `UNIT_SIZE` is never used
[INFO] [stderr]   --> src/directory_size/directory_size.rs:24:7
[INFO] [stderr]    |
[INFO] [stderr] 24 | const UNIT_SIZE: u64 = 1024;
[INFO] [stderr]    |       ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `convert` is never used
[INFO] [stderr]   --> src/directory_size/directory_size.rs:26:4
[INFO] [stderr]    |
[INFO] [stderr] 26 | fn convert(size: u64) -> String {
[INFO] [stderr]    |    ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/course/error_handling.rs:60:5
[INFO] [stderr]    |
[INFO] [stderr] 60 |     f.write("hello rust".as_bytes());
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 60 |     let _ = f.write("hello rust".as_bytes());
[INFO] [stderr]    |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: variable `U` should have a snake case name
[INFO] [stderr]   --> src/course/trait.rs:80:36
[INFO] [stderr]    |
[INFO] [stderr] 80 | fn some_function_where<T, U>(t: T, U: U)
[INFO] [stderr]    |                                    ^ help: convert the identifier to snake case (notice the capitalization): `u`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `rust_playground` (bin "rust_playground" test) generated 187 warnings (run `cargo fix --bin "rust_playground" --tests` to apply 76 suggestions)
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.02s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/rust_playground-a576f8049d0da3aa)
[INFO] [stdout] 
[INFO] [stdout] running 28 tests
[INFO] [stdout] test course::closures_iterators::closures_scope_test ... ok
[INFO] [stdout] test course::closures_iterators::counter_test ... ok
[INFO] [stdout] test course::closures_iterators::shoes_in_my_size_test ... ok
[INFO] [stdout] test course::futures::test_futures ... ok
[INFO] [stdout] test course::oop::test_screen ... ok
[INFO] [stdout] test course::oop::test_screen_genric ... ok
[INFO] [stdout] test course::references_borrowing::strtok_test ... ok
[INFO] [stdout] test course::smart_pointers::cell_test ... ok
[INFO] [stdout] test course::smart_pointers::drop_trait_test ... ok
[INFO] [stdout] test course::smart_pointers::it_sends_an_over_75_percent_warning_message ... ok
[INFO] [stdout] test course::smart_pointers::rc_ref_cell_test ... ok
[INFO] [stdout] test course::smart_pointers::deref_taint_test ... ok
[INFO] [stdout] test course::smart_pointers::self_ref_test ... ok
[INFO] [stdout] test course::smart_pointers::rc_test ... ok
[INFO] [stdout] test course::thread::thread_local_test ... ok
[INFO] [stdout] test course::thread::mutex_test ... ok
[INFO] [stdout] test course::thread::thread_move_test ... ok
[INFO] [stdout] test directory_size::directory_size::directory_size_test ... ok
[INFO] [stdout] test example::random_access_source::file_random_access_test ... ok
[INFO] [stdout] test course::thread::thread_spawn_test ... ok
[INFO] [stdout] test search_text::search_text::tests::one_result ... ok
[INFO] [stdout] test example::random_access_source::file_random_read_all_test ... FAILED
[INFO] [stdout] test course::thread::rw_lock_test ... ok
[INFO] [stdout] test course::futures::test_timer_future ... ok
[INFO] [stdout] test course::closures_iterators::test_generate_workout_closures ... ok
[INFO] [stdout] test course::closures_iterators::test_generate_workout_cache ... ok
[INFO] [stdout] test course::thread::condvar_test ... ok
[INFO] [stdout] test course::thread::mpsc_test has been running for over 60 seconds
[ERROR] error running command: no output for 300 seconds
[INFO] running `Command { std: "docker" "inspect" "6771bec91df5199d9a3320ab7efe2719371a3308368a7053df40368b6db4ddb2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6771bec91df5199d9a3320ab7efe2719371a3308368a7053df40368b6db4ddb2", kill_on_drop: false }`
[INFO] [stdout] 6771bec91df5199d9a3320ab7efe2719371a3308368a7053df40368b6db4ddb2
