[INFO] fetching crate rust-learning 0.1.0...
[INFO] testing rust-learning-0.1.0 against beta-2025-09-21 for beta-1.91-3
[INFO] extracting crate rust-learning 0.1.0 into /workspace/builds/worker-2-tc2/source
[INFO] started tweaking crates.io crate rust-learning 0.1.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate rust-learning 0.1.0
[INFO] tweaked toml for crates.io crate rust-learning 0.1.0 written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate rust-learning 0.1.0 on toolchain beta-2025-09-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate rust-learning 0.1.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c5cc26d67fdc8d597f329925ac9b34d607e11761ecf7322b554512969f6af350
[INFO] running `Command { std: "docker" "start" "-a" "c5cc26d67fdc8d597f329925ac9b34d607e11761ecf7322b554512969f6af350", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c5cc26d67fdc8d597f329925ac9b34d607e11761ecf7322b554512969f6af350", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c5cc26d67fdc8d597f329925ac9b34d607e11761ecf7322b554512969f6af350", kill_on_drop: false }`
[INFO] [stdout] c5cc26d67fdc8d597f329925ac9b34d607e11761ecf7322b554512969f6af350
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] baeabd74e70520ee5d49b40a381cdb0615d0d99cb2f1c718a1126f5e4d98498c
[INFO] running `Command { std: "docker" "start" "-a" "baeabd74e70520ee5d49b40a381cdb0615d0d99cb2f1c718a1126f5e4d98498c", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.16
[INFO] [stderr]    Compiling libc v0.2.169
[INFO] [stderr]    Compiling getrandom v0.3.1
[INFO] [stderr]    Compiling zerocopy v0.8.18
[INFO] [stderr]    Compiling proc-macro2 v1.0.93
[INFO] [stderr]    Compiling quote v1.0.38
[INFO] [stderr]    Compiling syn v2.0.98
[INFO] [stderr]    Compiling rand_core v0.9.1
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling zerocopy v0.7.35
[INFO] [stderr]    Compiling ppv-lite86 v0.2.20
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.0
[INFO] [stderr]    Compiling rust-learning v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::string`
[INFO] [stdout]  --> src/type_trait_life/lifttime.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::string;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused label
[INFO] [stdout]    --> src/lib.rs:294:17
[INFO] [stdout]     |
[INFO] [stdout] 294 |                 'loop2: loop {
[INFO] [stdout]     |                 ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_labels)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: renamed to `rng`
[INFO] [stdout]   --> src/guess.rs:13:31
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let secret_number = rand::thread_rng().gen_range(1..=101);
[INFO] [stdout]    |                               ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]   --> src/guess.rs:13:44
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let secret_number = rand::thread_rng().gen_range(1..=101);
[INFO] [stdout]    |                                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/closed_iter/iter.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let mut v = vec![1, 2, 3, 4, 5];
[INFO] [stdout]   |         ----^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s2`
[INFO] [stdout]   --> src/ownership.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 |         let s2 = String::from("hello");
[INFO] [stdout]    |             ^^ help: if this is intentional, prefix it with an underscore: `_s2`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s2`
[INFO] [stdout]   --> src/ownership.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let s2 = s1;
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_s2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s1`
[INFO] [stdout]   --> src/ownership.rs:94:9
[INFO] [stdout]    |
[INFO] [stdout] 94 |     let s1 = gives_ownership();
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_s1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s3`
[INFO] [stdout]   --> src/ownership.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 96 |     let s3 = takes_and_gives_back(s2);
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_s3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reference_to_nothing`
[INFO] [stdout]    --> src/ownership.rs:181:9
[INFO] [stdout]     |
[INFO] [stdout] 181 |     let reference_to_nothing = dangle();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reference_to_nothing`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hello`
[INFO] [stdout]    --> src/ownership.rs:198:9
[INFO] [stdout]     |
[INFO] [stdout] 198 |     let hello = &s[0..5];
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `world`
[INFO] [stdout]    --> src/ownership.rs:199:9
[INFO] [stdout]     |
[INFO] [stdout] 199 |     let world = &s[6..11];
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_world`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user3`
[INFO] [stdout]   --> src/struct_def.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let user3 = struct_build_user(String::from("some3"), String::from("some3@example.com"));
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_user3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `subject`
[INFO] [stdout]   --> src/struct_def.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let subject = AlwaysEqual;
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_subject`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rect3`
[INFO] [stdout]    --> src/struct_def.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 |     let rect3 = Rectangle {
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_rect3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `home`
[INFO] [stdout]   --> src/enum_match/enum_def.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |     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/enum_match/enum_def.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     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: `home`
[INFO] [stdout]   --> src/enum_match/enum_def.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let home = IpAddress::V4(String::from("127.0.0.1"));
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_home`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `loopback`
[INFO] [stdout]   --> src/enum_match/enum_def.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |     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: `home`
[INFO] [stdout]   --> src/enum_match/enum_def.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let home = IpAddr2 {
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_home`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `some_u8_value`
[INFO] [stdout]   --> src/enum_match/option_def.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let some_u8_value = 0i32;
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let _some_u8_value = 0i32;
[INFO] [stdout]    |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `MAX_POINTS`
[INFO] [stdout]    |
[INFO] [stdout] 19 -     let some_u8_value = 0i32;
[INFO] [stdout] 19 +     let base_theory::variable::constants::MAX_POINTS = 0i32;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `some_u8_value`
[INFO] [stdout]   --> src/enum_match/match_def.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let some_u8_value = Some(0);
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_some_u8_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/enum_match/match_def.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let a = 15;
[INFO] [stdout]    |         ^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let _a = 15;
[INFO] [stdout]    |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `MAX_POINTS`
[INFO] [stdout]    |
[INFO] [stdout] 40 -     let a = 15;
[INFO] [stdout] 40 +     let base_theory::variable::constants::MAX_POINTS = 15;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m1`
[INFO] [stdout]   --> src/collect/vector.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let m1 = v[0];
[INFO] [stdout]    |         ^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let _m1 = v[0];
[INFO] [stdout]    |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `MAX_POINTS`
[INFO] [stdout]    |
[INFO] [stdout] 21 -     let m1 = v[0];
[INFO] [stdout] 21 +     let base_theory::variable::constants::MAX_POINTS = v[0];
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m2`
[INFO] [stdout]   --> src/collect/vector.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let m2 = v2[1];
[INFO] [stdout]    |         ^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let _m2 = v2[1];
[INFO] [stdout]    |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `MAX_POINTS`
[INFO] [stdout]    |
[INFO] [stdout] 28 -     let m2 = v2[1];
[INFO] [stdout] 28 +     let base_theory::variable::constants::MAX_POINTS = v2[1];
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m3`
[INFO] [stdout]   --> src/collect/vector.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let m3 = v3[2];
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_m3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/collect/vector.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let mut v3 = vec!["1", "2", "3"];
[INFO] [stdout]   |         ----^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/collect/vector.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let mut v4 = vec![String::from("1"), String::from("2"), String::from("3")];
[INFO] [stdout]    |         ----^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row`
[INFO] [stdout]   --> src/collect/vector.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let row = vec![
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `str`
[INFO] [stdout]  --> src/collect/string.rs:9:13
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let mut str = String::new();
[INFO] [stdout]   |             ^^^ help: if this is intentional, prefix it with an underscore: `_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s3`
[INFO] [stdout]   --> src/collect/string.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let s3 = s1 + &s2; // 注意 s1 被移动了，不能继续使用
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_s3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/collect/string.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let s = s1 + "-" + &s2 + "-" + &s3;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/collect/string.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |     let s = format!("{s1}-{s2}-{s3}");
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s1`
[INFO] [stdout]   --> src/collect/string.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let s1 = String::from("hello");
[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/collect/string.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let mut str = String::new();
[INFO] [stdout]   |         ----^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/panic/result.rs:14:25
[INFO] [stdout]    |
[INFO] [stdout] 14 |                     Err(e) => panic!("Error"),
[INFO] [stdout]    |                         ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/panic/result.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     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/panic/result.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let f = File::open("hello.txt").expect("Failed to open hello.txt");
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:101:15
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn notify_add(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: `item`
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:102:43
[INFO] [stdout]     |
[INFO] [stdout] 102 | fn notify_bound_add<T: Summary + Display>(item: &T) {}
[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/type_trait_life/trait_def.rs:104:36
[INFO] [stdout]     |
[INFO] [stdout] 104 | fn notify_bound_where_no_res<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/type_trait_life/trait_def.rs:104:43
[INFO] [stdout]     |
[INFO] [stdout] 104 | fn notify_bound_where_no_res<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: `t`
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:109:29
[INFO] [stdout]     |
[INFO] [stdout] 109 | fn notify_bound_where<T, U>(t: &T, u: &U) -> i32
[INFO] [stdout]     |                             ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:109:36
[INFO] [stdout]     |
[INFO] [stdout] 109 | fn notify_bound_where<T, U>(t: &T, u: &U) -> i32
[INFO] [stdout]     |                                    ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/type_trait_life/lifttime.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let s: &'static str = "I have a static lifetime.";
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/type_trait_life/lifttime.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 80 |     let i = ImportantExcerpt {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `y` is assigned to, but never used
[INFO] [stdout]   --> src/lib.rs:63:21
[INFO] [stdout]    |
[INFO] [stdout] 63 |             let mut y = 1;
[INFO] [stdout]    |                     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_y` instead
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `MAX_POINTS`
[INFO] [stdout]    |
[INFO] [stdout] 63 -             let mut y = 1;
[INFO] [stdout] 63 +             let mut base_theory::variable::constants::MAX_POINTS = 1;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `y` is never read
[INFO] [stdout]   --> src/lib.rs:64:13
[INFO] [stdout]    |
[INFO] [stdout] 64 |             y = 2;
[INFO] [stdout]    |             ^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `closures_def` is never used
[INFO] [stdout]  --> src/closed_iter/closed.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn closures_def() {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Rectangle` is never constructed
[INFO] [stdout]   --> src/closed_iter/closed.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct Rectangle {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `iter_def` is never used
[INFO] [stdout]  --> src/closed_iter/iter.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn iter_def() {
[INFO] [stdout]   |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Shoe` is never constructed
[INFO] [stdout]   --> src/closed_iter/iter.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | struct Shoe {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shoes_in_size` is never used
[INFO] [stdout]   --> src/closed_iter/iter.rs:29:4
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn shoes_in_size(shoes: Vec<Shoe>, shoe_size: u32) -> Vec<Shoe> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ownership_return` is never used
[INFO] [stdout]   --> src/ownership.rs:93:4
[INFO] [stdout]    |
[INFO] [stdout] 93 | fn ownership_return() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gives_ownership` is never used
[INFO] [stdout]    --> src/ownership.rs:101:4
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn gives_ownership() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `takes_and_gives_back` is never used
[INFO] [stdout]    --> src/ownership.rs:106:4
[INFO] [stdout]     |
[INFO] [stdout] 106 | fn takes_and_gives_back(a_string: String) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `username`, `email`, and `sign_in_count` are never read
[INFO] [stdout]  --> src/struct_def.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | struct User {
[INFO] [stdout]   |        ---- fields in this struct
[INFO] [stdout] 2 |     username: String,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 3 |     email: String,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 4 |     sign_in_count: u64,
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]   --> src/struct_def.rs:42:14
[INFO] [stdout]    |
[INFO] [stdout] 42 | struct Color(i32, i32, i32);
[INFO] [stdout]    |        ----- ^^^  ^^^  ^^^
[INFO] [stdout]    |        |
[INFO] [stdout]    |        fields in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing these fields
[INFO] [stdout]    = note: `Color` 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 `0`, `1`, and `2` are never read
[INFO] [stdout]   --> src/struct_def.rs:44:14
[INFO] [stdout]    |
[INFO] [stdout] 44 | struct Point(i32, i32, i32);
[INFO] [stdout]    |        ----- ^^^  ^^^  ^^^
[INFO] [stdout]    |        |
[INFO] [stdout]    |        fields in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing these fields
[INFO] [stdout]    = note: `Point` 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 `AlwaysEqual` is never constructed
[INFO] [stdout]   --> src/struct_def.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | struct AlwaysEqual;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `struct_no_field` is never used
[INFO] [stdout]   --> src/struct_def.rs:63:4
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn struct_no_field() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `kind` and `address` are never read
[INFO] [stdout]  --> src/enum_match/enum_def.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct IpAddr {
[INFO] [stdout]   |        ------ fields in this struct
[INFO] [stdout] 7 |     kind: IpAddrKind,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 8 |     address: String,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `kind` and `address` are never read
[INFO] [stdout]   --> src/enum_match/enum_def.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct IpAddr2 {
[INFO] [stdout]    |        ------- fields in this struct
[INFO] [stdout] 12 |     kind: IpAddrKind,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 13 |     address: (u8, u8, u8, u8),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/enum_match/enum_def.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 |     V4(String),
[INFO] [stdout]    |     -- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 17 -     V4(String),
[INFO] [stdout] 17 +     V4(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/enum_match/enum_def.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 |     V6(String),
[INFO] [stdout]    |     -- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 18 -     V6(String),
[INFO] [stdout] 18 +     V6(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]   --> src/enum_match/enum_def.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 72 |     Move { x: i32, y: i32 },
[INFO] [stdout]    |     ----   ^       ^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[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: field `0` is never read
[INFO] [stdout]   --> src/enum_match/enum_def.rs:73:11
[INFO] [stdout]    |
[INFO] [stdout] 73 |     Write(String),
[INFO] [stdout]    |     ----- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[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] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 73 -     Write(String),
[INFO] [stdout] 73 +     Write(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]   --> src/enum_match/enum_def.rs:74:17
[INFO] [stdout]    |
[INFO] [stdout] 74 |     ChangeColor(i32, i32, i32),
[INFO] [stdout]    |     ----------- ^^^  ^^^  ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[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] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 74 -     ChangeColor(i32, i32, i32),
[INFO] [stdout] 74 +     ChangeColor((), (), ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Alaska` is never constructed
[INFO] [stdout]  --> src/enum_match/match_def.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | enum UsState {
[INFO] [stdout]   |      ------- variant in this enum
[INFO] [stdout] 4 |     Alabama,
[INFO] [stdout] 5 |     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: variants `Nickel` and `Dime` are never constructed
[INFO] [stdout]   --> src/enum_match/match_def.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | enum Coin {
[INFO] [stdout]    |      ---- variants in this enum
[INFO] [stdout] 10 |     Penny,
[INFO] [stdout] 11 |     Nickel,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 12 |     Dime,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `eat_at_restaurant` is never used
[INFO] [stdout]   --> src/package_crate_use.rs:24:4
[INFO] [stdout]    |
[INFO] [stdout] 24 | fn eat_at_restaurant() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `function1` is never used
[INFO] [stdout]   --> src/package_crate_use.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn function1() -> Result {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `function2` is never used
[INFO] [stdout]   --> src/package_crate_use.rs:67:4
[INFO] [stdout]    |
[INFO] [stdout] 67 | fn function2() -> IoResult<()> {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Breakfast` is never constructed
[INFO] [stdout]  --> src/package_crate_use.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 |     pub struct Breakfast {
[INFO] [stdout]   |                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `summer` is never used
[INFO] [stdout]   --> src/package_crate_use.rs:10:16
[INFO] [stdout]    |
[INFO] [stdout]  9 |     impl Breakfast {
[INFO] [stdout]    |     -------------- associated function in this implementation
[INFO] [stdout] 10 |         pub fn summer(toast: &str) -> Breakfast {
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Appetizer` is never used
[INFO] [stdout]   --> src/package_crate_use.rs:18:14
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub enum Appetizer {
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_use_` is never used
[INFO] [stdout]   --> src/package_crate_use.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub fn test_use_() {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SpreadsheetCell` is never used
[INFO] [stdout]   --> src/collect/vector.rs:63:6
[INFO] [stdout]    |
[INFO] [stdout] 63 | enum SpreadsheetCell {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vector_enum` is never used
[INFO] [stdout]   --> src/collect/vector.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub fn vector_enum() {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_username_from_file_question_mark` is never used
[INFO] [stdout]   --> src/panic/result.rs:72:8
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub fn read_username_from_file_question_mark() -> Result<String, std::io::Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_username_from_file_std_lib` is never used
[INFO] [stdout]   --> src/panic/result.rs:86:8
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub fn read_username_from_file_std_lib() -> Result<String, std::io::Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `content` is never read
[INFO] [stdout]   --> src/type_trait_life/trait_def.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct NewsArticle {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 23 |     content: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `content`, `reply`, and `retweet` are never read
[INFO] [stdout]   --> src/type_trait_life/trait_def.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct Tweet {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 28 |     username: String,
[INFO] [stdout] 29 |     content: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 30 |     reply: bool,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 31 |     retweet: bool,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_add` is never used
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:101:4
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn notify_add(item: &(impl Summary + Display)) {}
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_bound_add` is never used
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:102:4
[INFO] [stdout]     |
[INFO] [stdout] 102 | fn notify_bound_add<T: Summary + Display>(item: &T) {}
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_bound_where_no_res` is never used
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:104:4
[INFO] [stdout]     |
[INFO] [stdout] 104 | fn notify_bound_where_no_res<T, U>(t: &T, u: &U)
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_bound_where` is never used
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:109:4
[INFO] [stdout]     |
[INFO] [stdout] 109 | fn notify_bound_where<T, U>(t: &T, u: &U) -> i32
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `returns_summarizable` is never used
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:118:4
[INFO] [stdout]     |
[INFO] [stdout] 118 | fn returns_summarizable() -> impl Summary {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Pair` is never constructed
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:160:8
[INFO] [stdout]     |
[INFO] [stdout] 160 | struct Pair<T> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:166:8
[INFO] [stdout]     |
[INFO] [stdout] 165 | impl<T> Pair<T> {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 166 |     fn new(x: T, y: T) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `cmp_display` is never used
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:172:8
[INFO] [stdout]     |
[INFO] [stdout] 171 | impl<T: Display + PartialOrd> Pair<T> {
[INFO] [stdout]     | ------------------------------------- method in this implementation
[INFO] [stdout] 172 |     fn cmp_display(&self) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `first_demo` is never used
[INFO] [stdout]   --> src/type_trait_life/lifttime.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn first_demo() {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `borrow_checker` is never used
[INFO] [stdout]   --> src/type_trait_life/lifttime.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn borrow_checker() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cmp_str_len` is never used
[INFO] [stdout]   --> src/type_trait_life/lifttime.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn cmp_str_len() {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest` is never used
[INFO] [stdout]   --> src/type_trait_life/lifttime.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | 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/type_trait_life/lifttime.rs:73:8
[INFO] [stdout]    |
[INFO] [stdout] 73 | struct ImportantExcerpt<'a> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lifetime_struct` is never used
[INFO] [stdout]   --> src/type_trait_life/lifttime.rs:77:4
[INFO] [stdout]    |
[INFO] [stdout] 77 | fn lifetime_struct() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `level` and `announce_and_return_part` are never used
[INFO] [stdout]    --> src/type_trait_life/lifttime.rs:115:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | impl<'a> ImportantExcerpt<'a> {
[INFO] [stdout]     | ----------------------------- methods in this implementation
[INFO] [stdout] 115 |     fn level(&self) -> i32 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     fn announce_and_return_part(&self, announcement: &str) -> &str {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest_with_an_announcement` is never used
[INFO] [stdout]    --> src/type_trait_life/lifttime.rs:125:4
[INFO] [stdout]     |
[INFO] [stdout] 125 | fn longest_with_an_announcement<'a, T>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add` is never used
[INFO] [stdout]   --> src/lib.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn add(a: i32, b: i32) -> i32 {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `subtract` is never used
[INFO] [stdout]   --> src/lib.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn subtract(a: i32, b: i32) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `enum_def`, `if_let_def`, `match_def`, and `option_def`
[INFO] [stdout]  --> src/main.rs:3:33
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rust_learning::enum_match::{enum_def, option_def, match_def, if_let_def};
[INFO] [stdout]   |                                 ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rand::Rng;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `control_flow`, `data_types`, `function`, and `variable`
[INFO] [stdout]  --> src/main.rs:7:34
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rust_learning::base_theory::{control_flow, data_types, function, variable};
[INFO] [stdout]   |                                  ^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `collect`, `enum_match`, `ownership`, `panic`, and `type_trait_life`
[INFO] [stdout]  --> src/main.rs:9:21
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rust_learning::{collect, enum_match, ownership, panic, type_trait_life};
[INFO] [stdout]   |                     ^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^  ^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_learning::pub_use`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use rust_learning::pub_use;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Summary` and `Tweet`
[INFO] [stdout]   --> src/main.rs:17:38
[INFO] [stdout]    |
[INFO] [stdout] 17 | use rust_learning::type_trait_life::{Summary, Tweet};
[INFO] [stdout]    |                                      ^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_learning::struct_def`
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use rust_learning::struct_def;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.51s
[INFO] running `Command { std: "docker" "inspect" "baeabd74e70520ee5d49b40a381cdb0615d0d99cb2f1c718a1126f5e4d98498c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "baeabd74e70520ee5d49b40a381cdb0615d0d99cb2f1c718a1126f5e4d98498c", kill_on_drop: false }`
[INFO] [stdout] baeabd74e70520ee5d49b40a381cdb0615d0d99cb2f1c718a1126f5e4d98498c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 808d41f5ef8ea7fe3d094ce6358bb00eae9a5ccf3b9563d74782101a69668a60
[INFO] running `Command { std: "docker" "start" "-a" "808d41f5ef8ea7fe3d094ce6358bb00eae9a5ccf3b9563d74782101a69668a60", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `std::string`
[INFO] [stdout]  --> src/type_trait_life/lifttime.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::string;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused label
[INFO] [stdout]    --> src/lib.rs:294:17
[INFO] [stdout]     |
[INFO] [stdout] 294 |                 'loop2: loop {
[INFO] [stdout]     |                 ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_labels)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: renamed to `rng`
[INFO] [stdout]   --> src/guess.rs:13:31
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let secret_number = rand::thread_rng().gen_range(1..=101);
[INFO] [stdout]    |                               ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]   --> src/guess.rs:13:44
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let secret_number = rand::thread_rng().gen_range(1..=101);
[INFO] [stdout]    |                                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/closed_iter/iter.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let mut v = vec![1, 2, 3, 4, 5];
[INFO] [stdout]   |         ----^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s2`
[INFO] [stdout]   --> src/ownership.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 |         let s2 = String::from("hello");
[INFO] [stdout]    |             ^^ help: if this is intentional, prefix it with an underscore: `_s2`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s2`
[INFO] [stdout]   --> src/ownership.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let s2 = s1;
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_s2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s1`
[INFO] [stdout]   --> src/ownership.rs:94:9
[INFO] [stdout]    |
[INFO] [stdout] 94 |     let s1 = gives_ownership();
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_s1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s3`
[INFO] [stdout]   --> src/ownership.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 96 |     let s3 = takes_and_gives_back(s2);
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_s3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reference_to_nothing`
[INFO] [stdout]    --> src/ownership.rs:181:9
[INFO] [stdout]     |
[INFO] [stdout] 181 |     let reference_to_nothing = dangle();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reference_to_nothing`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hello`
[INFO] [stdout]    --> src/ownership.rs:198:9
[INFO] [stdout]     |
[INFO] [stdout] 198 |     let hello = &s[0..5];
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `world`
[INFO] [stdout]    --> src/ownership.rs:199:9
[INFO] [stdout]     |
[INFO] [stdout] 199 |     let world = &s[6..11];
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_world`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user3`
[INFO] [stdout]   --> src/struct_def.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let user3 = struct_build_user(String::from("some3"), String::from("some3@example.com"));
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_user3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `subject`
[INFO] [stdout]   --> src/struct_def.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let subject = AlwaysEqual;
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_subject`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rect3`
[INFO] [stdout]    --> src/struct_def.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 |     let rect3 = Rectangle {
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_rect3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `home`
[INFO] [stdout]   --> src/enum_match/enum_def.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |     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/enum_match/enum_def.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     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: `home`
[INFO] [stdout]   --> src/enum_match/enum_def.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let home = IpAddress::V4(String::from("127.0.0.1"));
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_home`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `loopback`
[INFO] [stdout]   --> src/enum_match/enum_def.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |     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: `home`
[INFO] [stdout]   --> src/enum_match/enum_def.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let home = IpAddr2 {
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_home`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `some_u8_value`
[INFO] [stdout]   --> src/enum_match/option_def.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let some_u8_value = 0i32;
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let _some_u8_value = 0i32;
[INFO] [stdout]    |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `MAX_POINTS`
[INFO] [stdout]    |
[INFO] [stdout] 19 -     let some_u8_value = 0i32;
[INFO] [stdout] 19 +     let base_theory::variable::constants::MAX_POINTS = 0i32;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `some_u8_value`
[INFO] [stdout]   --> src/enum_match/match_def.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let some_u8_value = Some(0);
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_some_u8_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/enum_match/match_def.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let a = 15;
[INFO] [stdout]    |         ^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let _a = 15;
[INFO] [stdout]    |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `MAX_POINTS`
[INFO] [stdout]    |
[INFO] [stdout] 40 -     let a = 15;
[INFO] [stdout] 40 +     let base_theory::variable::constants::MAX_POINTS = 15;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m1`
[INFO] [stdout]   --> src/collect/vector.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let m1 = v[0];
[INFO] [stdout]    |         ^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let _m1 = v[0];
[INFO] [stdout]    |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `MAX_POINTS`
[INFO] [stdout]    |
[INFO] [stdout] 21 -     let m1 = v[0];
[INFO] [stdout] 21 +     let base_theory::variable::constants::MAX_POINTS = v[0];
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m2`
[INFO] [stdout]   --> src/collect/vector.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let m2 = v2[1];
[INFO] [stdout]    |         ^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let _m2 = v2[1];
[INFO] [stdout]    |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `MAX_POINTS`
[INFO] [stdout]    |
[INFO] [stdout] 28 -     let m2 = v2[1];
[INFO] [stdout] 28 +     let base_theory::variable::constants::MAX_POINTS = v2[1];
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m3`
[INFO] [stdout]   --> src/collect/vector.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let m3 = v3[2];
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_m3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/collect/vector.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let mut v3 = vec!["1", "2", "3"];
[INFO] [stdout]   |         ----^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/collect/vector.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let mut v4 = vec![String::from("1"), String::from("2"), String::from("3")];
[INFO] [stdout]    |         ----^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row`
[INFO] [stdout]   --> src/collect/vector.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let row = vec![
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `str`
[INFO] [stdout]  --> src/collect/string.rs:9:13
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let mut str = String::new();
[INFO] [stdout]   |             ^^^ help: if this is intentional, prefix it with an underscore: `_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s3`
[INFO] [stdout]   --> src/collect/string.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let s3 = s1 + &s2; // 注意 s1 被移动了，不能继续使用
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_s3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/collect/string.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let s = s1 + "-" + &s2 + "-" + &s3;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/collect/string.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |     let s = format!("{s1}-{s2}-{s3}");
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s1`
[INFO] [stdout]   --> src/collect/string.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let s1 = String::from("hello");
[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/collect/string.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let mut str = String::new();
[INFO] [stdout]   |         ----^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/panic/result.rs:14:25
[INFO] [stdout]    |
[INFO] [stdout] 14 |                     Err(e) => panic!("Error"),
[INFO] [stdout]    |                         ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling rust-learning v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/panic/result.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     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/panic/result.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let f = File::open("hello.txt").expect("Failed to open hello.txt");
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:101:15
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn notify_add(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: `item`
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:102:43
[INFO] [stdout]     |
[INFO] [stdout] 102 | fn notify_bound_add<T: Summary + Display>(item: &T) {}
[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/type_trait_life/trait_def.rs:104:36
[INFO] [stdout]     |
[INFO] [stdout] 104 | fn notify_bound_where_no_res<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/type_trait_life/trait_def.rs:104:43
[INFO] [stdout]     |
[INFO] [stdout] 104 | fn notify_bound_where_no_res<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: `t`
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:109:29
[INFO] [stdout]     |
[INFO] [stdout] 109 | fn notify_bound_where<T, U>(t: &T, u: &U) -> i32
[INFO] [stdout]     |                             ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:109:36
[INFO] [stdout]     |
[INFO] [stdout] 109 | fn notify_bound_where<T, U>(t: &T, u: &U) -> i32
[INFO] [stdout]     |                                    ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/type_trait_life/lifttime.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let s: &'static str = "I have a static lifetime.";
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/type_trait_life/lifttime.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 80 |     let i = ImportantExcerpt {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `y` is assigned to, but never used
[INFO] [stdout]   --> src/lib.rs:63:21
[INFO] [stdout]    |
[INFO] [stdout] 63 |             let mut y = 1;
[INFO] [stdout]    |                     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_y` instead
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `MAX_POINTS`
[INFO] [stdout]    |
[INFO] [stdout] 63 -             let mut y = 1;
[INFO] [stdout] 63 +             let mut base_theory::variable::constants::MAX_POINTS = 1;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `y` is never read
[INFO] [stdout]   --> src/lib.rs:64:13
[INFO] [stdout]    |
[INFO] [stdout] 64 |             y = 2;
[INFO] [stdout]    |             ^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `closures_def` is never used
[INFO] [stdout]  --> src/closed_iter/closed.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn closures_def() {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Rectangle` is never constructed
[INFO] [stdout]   --> src/closed_iter/closed.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct Rectangle {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `iter_def` is never used
[INFO] [stdout]  --> src/closed_iter/iter.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn iter_def() {
[INFO] [stdout]   |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Shoe` is never constructed
[INFO] [stdout]   --> src/closed_iter/iter.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | struct Shoe {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shoes_in_size` is never used
[INFO] [stdout]   --> src/closed_iter/iter.rs:29:4
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn shoes_in_size(shoes: Vec<Shoe>, shoe_size: u32) -> Vec<Shoe> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ownership_return` is never used
[INFO] [stdout]   --> src/ownership.rs:93:4
[INFO] [stdout]    |
[INFO] [stdout] 93 | fn ownership_return() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gives_ownership` is never used
[INFO] [stdout]    --> src/ownership.rs:101:4
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn gives_ownership() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `takes_and_gives_back` is never used
[INFO] [stdout]    --> src/ownership.rs:106:4
[INFO] [stdout]     |
[INFO] [stdout] 106 | fn takes_and_gives_back(a_string: String) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `username`, `email`, and `sign_in_count` are never read
[INFO] [stdout]  --> src/struct_def.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | struct User {
[INFO] [stdout]   |        ---- fields in this struct
[INFO] [stdout] 2 |     username: String,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 3 |     email: String,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 4 |     sign_in_count: u64,
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]   --> src/struct_def.rs:42:14
[INFO] [stdout]    |
[INFO] [stdout] 42 | struct Color(i32, i32, i32);
[INFO] [stdout]    |        ----- ^^^  ^^^  ^^^
[INFO] [stdout]    |        |
[INFO] [stdout]    |        fields in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing these fields
[INFO] [stdout]    = note: `Color` 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 `0`, `1`, and `2` are never read
[INFO] [stdout]   --> src/struct_def.rs:44:14
[INFO] [stdout]    |
[INFO] [stdout] 44 | struct Point(i32, i32, i32);
[INFO] [stdout]    |        ----- ^^^  ^^^  ^^^
[INFO] [stdout]    |        |
[INFO] [stdout]    |        fields in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing these fields
[INFO] [stdout]    = note: `Point` 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 `AlwaysEqual` is never constructed
[INFO] [stdout]   --> src/struct_def.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | struct AlwaysEqual;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `struct_no_field` is never used
[INFO] [stdout]   --> src/struct_def.rs:63:4
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn struct_no_field() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `kind` and `address` are never read
[INFO] [stdout]  --> src/enum_match/enum_def.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct IpAddr {
[INFO] [stdout]   |        ------ fields in this struct
[INFO] [stdout] 7 |     kind: IpAddrKind,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 8 |     address: String,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `kind` and `address` are never read
[INFO] [stdout]   --> src/enum_match/enum_def.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct IpAddr2 {
[INFO] [stdout]    |        ------- fields in this struct
[INFO] [stdout] 12 |     kind: IpAddrKind,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 13 |     address: (u8, u8, u8, u8),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/enum_match/enum_def.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 |     V4(String),
[INFO] [stdout]    |     -- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 17 -     V4(String),
[INFO] [stdout] 17 +     V4(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/enum_match/enum_def.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 |     V6(String),
[INFO] [stdout]    |     -- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 18 -     V6(String),
[INFO] [stdout] 18 +     V6(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]   --> src/enum_match/enum_def.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 72 |     Move { x: i32, y: i32 },
[INFO] [stdout]    |     ----   ^       ^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[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: field `0` is never read
[INFO] [stdout]   --> src/enum_match/enum_def.rs:73:11
[INFO] [stdout]    |
[INFO] [stdout] 73 |     Write(String),
[INFO] [stdout]    |     ----- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[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] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 73 -     Write(String),
[INFO] [stdout] 73 +     Write(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]   --> src/enum_match/enum_def.rs:74:17
[INFO] [stdout]    |
[INFO] [stdout] 74 |     ChangeColor(i32, i32, i32),
[INFO] [stdout]    |     ----------- ^^^  ^^^  ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[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] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 74 -     ChangeColor(i32, i32, i32),
[INFO] [stdout] 74 +     ChangeColor((), (), ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Alaska` is never constructed
[INFO] [stdout]  --> src/enum_match/match_def.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | enum UsState {
[INFO] [stdout]   |      ------- variant in this enum
[INFO] [stdout] 4 |     Alabama,
[INFO] [stdout] 5 |     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: variants `Nickel` and `Dime` are never constructed
[INFO] [stdout]   --> src/enum_match/match_def.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | enum Coin {
[INFO] [stdout]    |      ---- variants in this enum
[INFO] [stdout] 10 |     Penny,
[INFO] [stdout] 11 |     Nickel,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 12 |     Dime,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `eat_at_restaurant` is never used
[INFO] [stdout]   --> src/package_crate_use.rs:24:4
[INFO] [stdout]    |
[INFO] [stdout] 24 | fn eat_at_restaurant() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `function1` is never used
[INFO] [stdout]   --> src/package_crate_use.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn function1() -> Result {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `function2` is never used
[INFO] [stdout]   --> src/package_crate_use.rs:67:4
[INFO] [stdout]    |
[INFO] [stdout] 67 | fn function2() -> IoResult<()> {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Breakfast` is never constructed
[INFO] [stdout]  --> src/package_crate_use.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 |     pub struct Breakfast {
[INFO] [stdout]   |                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `summer` is never used
[INFO] [stdout]   --> src/package_crate_use.rs:10:16
[INFO] [stdout]    |
[INFO] [stdout]  9 |     impl Breakfast {
[INFO] [stdout]    |     -------------- associated function in this implementation
[INFO] [stdout] 10 |         pub fn summer(toast: &str) -> Breakfast {
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Appetizer` is never used
[INFO] [stdout]   --> src/package_crate_use.rs:18:14
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub enum Appetizer {
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_use_` is never used
[INFO] [stdout]   --> src/package_crate_use.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub fn test_use_() {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SpreadsheetCell` is never used
[INFO] [stdout]   --> src/collect/vector.rs:63:6
[INFO] [stdout]    |
[INFO] [stdout] 63 | enum SpreadsheetCell {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vector_enum` is never used
[INFO] [stdout]   --> src/collect/vector.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub fn vector_enum() {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_username_from_file_question_mark` is never used
[INFO] [stdout]   --> src/panic/result.rs:72:8
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub fn read_username_from_file_question_mark() -> Result<String, std::io::Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_username_from_file_std_lib` is never used
[INFO] [stdout]   --> src/panic/result.rs:86:8
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub fn read_username_from_file_std_lib() -> Result<String, std::io::Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `content` is never read
[INFO] [stdout]   --> src/type_trait_life/trait_def.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct NewsArticle {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 23 |     content: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `content`, `reply`, and `retweet` are never read
[INFO] [stdout]   --> src/type_trait_life/trait_def.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct Tweet {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 28 |     username: String,
[INFO] [stdout] 29 |     content: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 30 |     reply: bool,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 31 |     retweet: bool,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_add` is never used
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:101:4
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn notify_add(item: &(impl Summary + Display)) {}
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_bound_add` is never used
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:102:4
[INFO] [stdout]     |
[INFO] [stdout] 102 | fn notify_bound_add<T: Summary + Display>(item: &T) {}
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_bound_where_no_res` is never used
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:104:4
[INFO] [stdout]     |
[INFO] [stdout] 104 | fn notify_bound_where_no_res<T, U>(t: &T, u: &U)
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_bound_where` is never used
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:109:4
[INFO] [stdout]     |
[INFO] [stdout] 109 | fn notify_bound_where<T, U>(t: &T, u: &U) -> i32
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `returns_summarizable` is never used
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:118:4
[INFO] [stdout]     |
[INFO] [stdout] 118 | fn returns_summarizable() -> impl Summary {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Pair` is never constructed
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:160:8
[INFO] [stdout]     |
[INFO] [stdout] 160 | struct Pair<T> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:166:8
[INFO] [stdout]     |
[INFO] [stdout] 165 | impl<T> Pair<T> {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 166 |     fn new(x: T, y: T) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `cmp_display` is never used
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:172:8
[INFO] [stdout]     |
[INFO] [stdout] 171 | impl<T: Display + PartialOrd> Pair<T> {
[INFO] [stdout]     | ------------------------------------- method in this implementation
[INFO] [stdout] 172 |     fn cmp_display(&self) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `first_demo` is never used
[INFO] [stdout]   --> src/type_trait_life/lifttime.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn first_demo() {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `borrow_checker` is never used
[INFO] [stdout]   --> src/type_trait_life/lifttime.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn borrow_checker() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cmp_str_len` is never used
[INFO] [stdout]   --> src/type_trait_life/lifttime.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn cmp_str_len() {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest` is never used
[INFO] [stdout]   --> src/type_trait_life/lifttime.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | 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/type_trait_life/lifttime.rs:73:8
[INFO] [stdout]    |
[INFO] [stdout] 73 | struct ImportantExcerpt<'a> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lifetime_struct` is never used
[INFO] [stdout]   --> src/type_trait_life/lifttime.rs:77:4
[INFO] [stdout]    |
[INFO] [stdout] 77 | fn lifetime_struct() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `level` and `announce_and_return_part` are never used
[INFO] [stdout]    --> src/type_trait_life/lifttime.rs:115:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | impl<'a> ImportantExcerpt<'a> {
[INFO] [stdout]     | ----------------------------- methods in this implementation
[INFO] [stdout] 115 |     fn level(&self) -> i32 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     fn announce_and_return_part(&self, announcement: &str) -> &str {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest_with_an_announcement` is never used
[INFO] [stdout]    --> src/type_trait_life/lifttime.rs:125:4
[INFO] [stdout]     |
[INFO] [stdout] 125 | fn longest_with_an_announcement<'a, T>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add` is never used
[INFO] [stdout]   --> src/lib.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn add(a: i32, b: i32) -> i32 {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `subtract` is never used
[INFO] [stdout]   --> src/lib.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn subtract(a: i32, b: i32) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `enum_def`, `if_let_def`, `match_def`, and `option_def`
[INFO] [stdout]  --> src/main.rs:3:33
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rust_learning::enum_match::{enum_def, option_def, match_def, if_let_def};
[INFO] [stdout]   |                                 ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rand::Rng;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `control_flow`, `data_types`, `function`, and `variable`
[INFO] [stdout]  --> src/main.rs:7:34
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rust_learning::base_theory::{control_flow, data_types, function, variable};
[INFO] [stdout]   |                                  ^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `collect`, `enum_match`, `ownership`, `panic`, and `type_trait_life`
[INFO] [stdout]  --> src/main.rs:9:21
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rust_learning::{collect, enum_match, ownership, panic, type_trait_life};
[INFO] [stdout]   |                     ^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^  ^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_learning::pub_use`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use rust_learning::pub_use;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Summary` and `Tweet`
[INFO] [stdout]   --> src/main.rs:17:38
[INFO] [stdout]    |
[INFO] [stdout] 17 | use rust_learning::type_trait_life::{Summary, Tweet};
[INFO] [stdout]    |                                      ^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_learning::struct_def`
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use rust_learning::struct_def;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::string`
[INFO] [stdout]  --> src/type_trait_life/lifttime.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::string;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused label
[INFO] [stdout]    --> src/lib.rs:294:17
[INFO] [stdout]     |
[INFO] [stdout] 294 |                 'loop2: loop {
[INFO] [stdout]     |                 ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_labels)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: renamed to `rng`
[INFO] [stdout]   --> src/guess.rs:13:31
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let secret_number = rand::thread_rng().gen_range(1..=101);
[INFO] [stdout]    |                               ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]   --> src/guess.rs:13:44
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let secret_number = rand::thread_rng().gen_range(1..=101);
[INFO] [stdout]    |                                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> src/closed_iter/closed.rs:111:13
[INFO] [stdout]     |
[INFO] [stdout] 111 |         let value = String::from("closure called");
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/closed_iter/iter.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let mut v = vec![1, 2, 3, 4, 5];
[INFO] [stdout]   |         ----^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v1`
[INFO] [stdout]   --> src/closed_iter/iter.rs:80:13
[INFO] [stdout]    |
[INFO] [stdout] 80 |         let v1: Vec<i32> = vec![1, 2, 3];
[INFO] [stdout]    |             ^^ help: if this is intentional, prefix it with an underscore: `_v1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s2`
[INFO] [stdout]   --> src/ownership.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 |         let s2 = String::from("hello");
[INFO] [stdout]    |             ^^ help: if this is intentional, prefix it with an underscore: `_s2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s2`
[INFO] [stdout]   --> src/ownership.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let s2 = s1;
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_s2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s1`
[INFO] [stdout]   --> src/ownership.rs:94:9
[INFO] [stdout]    |
[INFO] [stdout] 94 |     let s1 = gives_ownership();
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_s1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s3`
[INFO] [stdout]   --> src/ownership.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 96 |     let s3 = takes_and_gives_back(s2);
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_s3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reference_to_nothing`
[INFO] [stdout]    --> src/ownership.rs:181:9
[INFO] [stdout]     |
[INFO] [stdout] 181 |     let reference_to_nothing = dangle();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reference_to_nothing`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hello`
[INFO] [stdout]    --> src/ownership.rs:198:9
[INFO] [stdout]     |
[INFO] [stdout] 198 |     let hello = &s[0..5];
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `world`
[INFO] [stdout]    --> src/ownership.rs:199:9
[INFO] [stdout]     |
[INFO] [stdout] 199 |     let world = &s[6..11];
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_world`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user3`
[INFO] [stdout]   --> src/struct_def.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let user3 = struct_build_user(String::from("some3"), String::from("some3@example.com"));
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_user3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `subject`
[INFO] [stdout]   --> src/struct_def.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let subject = AlwaysEqual;
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_subject`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rect3`
[INFO] [stdout]    --> src/struct_def.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 |     let rect3 = Rectangle {
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_rect3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `home`
[INFO] [stdout]   --> src/enum_match/enum_def.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |     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/enum_match/enum_def.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     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: `home`
[INFO] [stdout]   --> src/enum_match/enum_def.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let home = IpAddress::V4(String::from("127.0.0.1"));
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_home`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `loopback`
[INFO] [stdout]   --> src/enum_match/enum_def.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |     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: `home`
[INFO] [stdout]   --> src/enum_match/enum_def.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let home = IpAddr2 {
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_home`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `some_u8_value`
[INFO] [stdout]   --> src/enum_match/option_def.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let some_u8_value = 0i32;
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let _some_u8_value = 0i32;
[INFO] [stdout]    |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `MAX_POINTS`
[INFO] [stdout]    |
[INFO] [stdout] 19 -     let some_u8_value = 0i32;
[INFO] [stdout] 19 +     let base_theory::variable::constants::MAX_POINTS = 0i32;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `some_u8_value`
[INFO] [stdout]   --> src/enum_match/match_def.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let some_u8_value = Some(0);
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_some_u8_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/enum_match/match_def.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let a = 15;
[INFO] [stdout]    |         ^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let _a = 15;
[INFO] [stdout]    |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `MAX_POINTS`
[INFO] [stdout]    |
[INFO] [stdout] 40 -     let a = 15;
[INFO] [stdout] 40 +     let base_theory::variable::constants::MAX_POINTS = 15;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `enum_def`, `if_let_def`, `match_def`, and `option_def`
[INFO] [stdout]  --> src/main.rs:3:33
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rust_learning::enum_match::{enum_def, option_def, match_def, if_let_def};
[INFO] [stdout]   |                                 ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rand::Rng;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `control_flow`, `data_types`, `function`, and `variable`
[INFO] [stdout]  --> src/main.rs:7:34
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rust_learning::base_theory::{control_flow, data_types, function, variable};
[INFO] [stdout]   |                                  ^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `collect`, `enum_match`, `ownership`, `panic`, and `type_trait_life`
[INFO] [stdout]  --> src/main.rs:9:21
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rust_learning::{collect, enum_match, ownership, panic, type_trait_life};
[INFO] [stdout]   |                     ^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^  ^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_learning::pub_use`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use rust_learning::pub_use;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Summary` and `Tweet`
[INFO] [stdout]   --> src/main.rs:17:38
[INFO] [stdout]    |
[INFO] [stdout] 17 | use rust_learning::type_trait_life::{Summary, Tweet};
[INFO] [stdout]    |                                      ^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_learning::struct_def`
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use rust_learning::struct_def;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m1`
[INFO] [stdout]   --> src/collect/vector.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let m1 = v[0];
[INFO] [stdout]    |         ^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let _m1 = v[0];
[INFO] [stdout]    |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `MAX_POINTS`
[INFO] [stdout]    |
[INFO] [stdout] 21 -     let m1 = v[0];
[INFO] [stdout] 21 +     let base_theory::variable::constants::MAX_POINTS = v[0];
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m2`
[INFO] [stdout]   --> src/collect/vector.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let m2 = v2[1];
[INFO] [stdout]    |         ^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let _m2 = v2[1];
[INFO] [stdout]    |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `MAX_POINTS`
[INFO] [stdout]    |
[INFO] [stdout] 28 -     let m2 = v2[1];
[INFO] [stdout] 28 +     let base_theory::variable::constants::MAX_POINTS = v2[1];
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m3`
[INFO] [stdout]   --> src/collect/vector.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let m3 = v3[2];
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_m3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/collect/vector.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let mut v3 = vec!["1", "2", "3"];
[INFO] [stdout]   |         ----^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/collect/vector.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let mut v4 = vec![String::from("1"), String::from("2"), String::from("3")];
[INFO] [stdout]    |         ----^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row`
[INFO] [stdout]   --> src/collect/vector.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let row = vec![
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `str`
[INFO] [stdout]  --> src/collect/string.rs:9:13
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let mut str = String::new();
[INFO] [stdout]   |             ^^^ help: if this is intentional, prefix it with an underscore: `_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s3`
[INFO] [stdout]   --> src/collect/string.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let s3 = s1 + &s2; // 注意 s1 被移动了，不能继续使用
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_s3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0603]: function `subtract` is private
[INFO] [stdout]   --> tests/integration_test.rs:2:31
[INFO] [stdout]    |
[INFO] [stdout]  2 | use rust_learning::unit_test::subtract;
[INFO] [stdout]    |                               ^^^^^^^^ private function
[INFO] [stdout]    |
[INFO] [stdout] note: the function `subtract` is defined here
[INFO] [stdout]   --> /opt/rustwide/workdir/src/lib.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn subtract(a: i32, b: i32) -> i32 {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/collect/string.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let s = s1 + "-" + &s2 + "-" + &s3;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/collect/string.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |     let s = format!("{s1}-{s2}-{s3}");
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s1`
[INFO] [stdout]   --> src/collect/string.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let s1 = String::from("hello");
[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/collect/string.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let mut str = String::new();
[INFO] [stdout]   |         ----^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/panic/result.rs:14:25
[INFO] [stdout]    |
[INFO] [stdout] 14 |                     Err(e) => panic!("Error"),
[INFO] [stdout]    |                         ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/panic/result.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     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/panic/result.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let f = File::open("hello.txt").expect("Failed to open hello.txt");
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:101:15
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn notify_add(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: `item`
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:102:43
[INFO] [stdout]     |
[INFO] [stdout] 102 | fn notify_bound_add<T: Summary + Display>(item: &T) {}
[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/type_trait_life/trait_def.rs:104:36
[INFO] [stdout]     |
[INFO] [stdout] 104 | fn notify_bound_where_no_res<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/type_trait_life/trait_def.rs:104:43
[INFO] [stdout]     |
[INFO] [stdout] 104 | fn notify_bound_where_no_res<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: `t`
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:109:29
[INFO] [stdout]     |
[INFO] [stdout] 109 | fn notify_bound_where<T, U>(t: &T, u: &U) -> i32
[INFO] [stdout]     |                             ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:109:36
[INFO] [stdout]     |
[INFO] [stdout] 109 | fn notify_bound_where<T, U>(t: &T, u: &U) -> i32
[INFO] [stdout]     |                                    ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/type_trait_life/lifttime.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let s: &'static str = "I have a static lifetime.";
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/type_trait_life/lifttime.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 80 |     let i = ImportantExcerpt {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `y` is assigned to, but never used
[INFO] [stdout]   --> src/lib.rs:63:21
[INFO] [stdout]    |
[INFO] [stdout] 63 |             let mut y = 1;
[INFO] [stdout]    |                     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_y` instead
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `MAX_POINTS`
[INFO] [stdout]    |
[INFO] [stdout] 63 -             let mut y = 1;
[INFO] [stdout] 63 +             let mut base_theory::variable::constants::MAX_POINTS = 1;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `y` is never read
[INFO] [stdout]   --> src/lib.rs:64:13
[INFO] [stdout]    |
[INFO] [stdout] 64 |             y = 2;
[INFO] [stdout]    |             ^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `closures_def` is never used
[INFO] [stdout]  --> src/closed_iter/closed.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn closures_def() {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `height` is never read
[INFO] [stdout]   --> src/closed_iter/closed.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct Rectangle {
[INFO] [stdout]    |        --------- field in this struct
[INFO] [stdout] 20 |     width: u32,
[INFO] [stdout] 21 |     height: u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Rectangle` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ownership_return` is never used
[INFO] [stdout]   --> src/ownership.rs:93:4
[INFO] [stdout]    |
[INFO] [stdout] 93 | fn ownership_return() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gives_ownership` is never used
[INFO] [stdout]    --> src/ownership.rs:101:4
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn gives_ownership() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `takes_and_gives_back` is never used
[INFO] [stdout]    --> src/ownership.rs:106:4
[INFO] [stdout]     |
[INFO] [stdout] 106 | fn takes_and_gives_back(a_string: String) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `username`, `email`, and `sign_in_count` are never read
[INFO] [stdout]  --> src/struct_def.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | struct User {
[INFO] [stdout]   |        ---- fields in this struct
[INFO] [stdout] 2 |     username: String,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 3 |     email: String,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 4 |     sign_in_count: u64,
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]   --> src/struct_def.rs:42:14
[INFO] [stdout]    |
[INFO] [stdout] 42 | struct Color(i32, i32, i32);
[INFO] [stdout]    |        ----- ^^^  ^^^  ^^^
[INFO] [stdout]    |        |
[INFO] [stdout]    |        fields in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing these fields
[INFO] [stdout]    = note: `Color` 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 `0`, `1`, and `2` are never read
[INFO] [stdout]   --> src/struct_def.rs:44:14
[INFO] [stdout]    |
[INFO] [stdout] 44 | struct Point(i32, i32, i32);
[INFO] [stdout]    |        ----- ^^^  ^^^  ^^^
[INFO] [stdout]    |        |
[INFO] [stdout]    |        fields in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing these fields
[INFO] [stdout]    = note: `Point` 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 `AlwaysEqual` is never constructed
[INFO] [stdout]   --> src/struct_def.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | struct AlwaysEqual;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `struct_no_field` is never used
[INFO] [stdout]   --> src/struct_def.rs:63:4
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn struct_no_field() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `kind` and `address` are never read
[INFO] [stdout]  --> src/enum_match/enum_def.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct IpAddr {
[INFO] [stdout]   |        ------ fields in this struct
[INFO] [stdout] 7 |     kind: IpAddrKind,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 8 |     address: String,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `kind` and `address` are never read
[INFO] [stdout]   --> src/enum_match/enum_def.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct IpAddr2 {
[INFO] [stdout]    |        ------- fields in this struct
[INFO] [stdout] 12 |     kind: IpAddrKind,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 13 |     address: (u8, u8, u8, u8),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/enum_match/enum_def.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 |     V4(String),
[INFO] [stdout]    |     -- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 17 -     V4(String),
[INFO] [stdout] 17 +     V4(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/enum_match/enum_def.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 |     V6(String),
[INFO] [stdout]    |     -- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 18 -     V6(String),
[INFO] [stdout] 18 +     V6(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]   --> src/enum_match/enum_def.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 72 |     Move { x: i32, y: i32 },
[INFO] [stdout]    |     ----   ^       ^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[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: field `0` is never read
[INFO] [stdout]   --> src/enum_match/enum_def.rs:73:11
[INFO] [stdout]    |
[INFO] [stdout] 73 |     Write(String),
[INFO] [stdout]    |     ----- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[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] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 73 -     Write(String),
[INFO] [stdout] 73 +     Write(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]   --> src/enum_match/enum_def.rs:74:17
[INFO] [stdout]    |
[INFO] [stdout] 74 |     ChangeColor(i32, i32, i32),
[INFO] [stdout]    |     ----------- ^^^  ^^^  ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[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] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 74 -     ChangeColor(i32, i32, i32),
[INFO] [stdout] 74 +     ChangeColor((), (), ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Alaska` is never constructed
[INFO] [stdout]  --> src/enum_match/match_def.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | enum UsState {
[INFO] [stdout]   |      ------- variant in this enum
[INFO] [stdout] 4 |     Alabama,
[INFO] [stdout] 5 |     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: variants `Nickel` and `Dime` are never constructed
[INFO] [stdout]   --> src/enum_match/match_def.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | enum Coin {
[INFO] [stdout]    |      ---- variants in this enum
[INFO] [stdout] 10 |     Penny,
[INFO] [stdout] 11 |     Nickel,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 12 |     Dime,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `eat_at_restaurant` is never used
[INFO] [stdout]   --> src/package_crate_use.rs:24:4
[INFO] [stdout]    |
[INFO] [stdout] 24 | fn eat_at_restaurant() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `function1` is never used
[INFO] [stdout]   --> src/package_crate_use.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn function1() -> Result {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `function2` is never used
[INFO] [stdout]   --> src/package_crate_use.rs:67:4
[INFO] [stdout]    |
[INFO] [stdout] 67 | fn function2() -> IoResult<()> {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Breakfast` is never constructed
[INFO] [stdout]  --> src/package_crate_use.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 |     pub struct Breakfast {
[INFO] [stdout]   |                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `summer` is never used
[INFO] [stdout]   --> src/package_crate_use.rs:10:16
[INFO] [stdout]    |
[INFO] [stdout]  9 |     impl Breakfast {
[INFO] [stdout]    |     -------------- associated function in this implementation
[INFO] [stdout] 10 |         pub fn summer(toast: &str) -> Breakfast {
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Appetizer` is never used
[INFO] [stdout]   --> src/package_crate_use.rs:18:14
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub enum Appetizer {
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_use_` is never used
[INFO] [stdout]   --> src/package_crate_use.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub fn test_use_() {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SpreadsheetCell` is never used
[INFO] [stdout]   --> src/collect/vector.rs:63:6
[INFO] [stdout]    |
[INFO] [stdout] 63 | enum SpreadsheetCell {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vector_enum` is never used
[INFO] [stdout]   --> src/collect/vector.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub fn vector_enum() {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_username_from_file_question_mark` is never used
[INFO] [stdout]   --> src/panic/result.rs:72:8
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub fn read_username_from_file_question_mark() -> Result<String, std::io::Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_username_from_file_std_lib` is never used
[INFO] [stdout]   --> src/panic/result.rs:86:8
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub fn read_username_from_file_std_lib() -> Result<String, std::io::Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `content` is never read
[INFO] [stdout]   --> src/type_trait_life/trait_def.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct NewsArticle {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 23 |     content: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `content`, `reply`, and `retweet` are never read
[INFO] [stdout]   --> src/type_trait_life/trait_def.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct Tweet {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 28 |     username: String,
[INFO] [stdout] 29 |     content: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 30 |     reply: bool,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 31 |     retweet: bool,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_add` is never used
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:101:4
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn notify_add(item: &(impl Summary + Display)) {}
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_bound_add` is never used
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:102:4
[INFO] [stdout]     |
[INFO] [stdout] 102 | fn notify_bound_add<T: Summary + Display>(item: &T) {}
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_bound_where_no_res` is never used
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:104:4
[INFO] [stdout]     |
[INFO] [stdout] 104 | fn notify_bound_where_no_res<T, U>(t: &T, u: &U)
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_bound_where` is never used
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:109:4
[INFO] [stdout]     |
[INFO] [stdout] 109 | fn notify_bound_where<T, U>(t: &T, u: &U) -> i32
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `returns_summarizable` is never used
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:118:4
[INFO] [stdout]     |
[INFO] [stdout] 118 | fn returns_summarizable() -> impl Summary {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Pair` is never constructed
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:160:8
[INFO] [stdout]     |
[INFO] [stdout] 160 | struct Pair<T> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:166:8
[INFO] [stdout]     |
[INFO] [stdout] 165 | impl<T> Pair<T> {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 166 |     fn new(x: T, y: T) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `cmp_display` is never used
[INFO] [stdout]    --> src/type_trait_life/trait_def.rs:172:8
[INFO] [stdout]     |
[INFO] [stdout] 171 | impl<T: Display + PartialOrd> Pair<T> {
[INFO] [stdout]     | ------------------------------------- method in this implementation
[INFO] [stdout] 172 |     fn cmp_display(&self) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `first_demo` is never used
[INFO] [stdout]   --> src/type_trait_life/lifttime.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn first_demo() {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `borrow_checker` is never used
[INFO] [stdout]   --> src/type_trait_life/lifttime.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn borrow_checker() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cmp_str_len` is never used
[INFO] [stdout]   --> src/type_trait_life/lifttime.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn cmp_str_len() {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest` is never used
[INFO] [stdout]   --> src/type_trait_life/lifttime.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | 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/type_trait_life/lifttime.rs:73:8
[INFO] [stdout]    |
[INFO] [stdout] 73 | struct ImportantExcerpt<'a> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lifetime_struct` is never used
[INFO] [stdout]   --> src/type_trait_life/lifttime.rs:77:4
[INFO] [stdout]    |
[INFO] [stdout] 77 | fn lifetime_struct() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `level` and `announce_and_return_part` are never used
[INFO] [stdout]    --> src/type_trait_life/lifttime.rs:115:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | impl<'a> ImportantExcerpt<'a> {
[INFO] [stdout]     | ----------------------------- methods in this implementation
[INFO] [stdout] 115 |     fn level(&self) -> i32 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     fn announce_and_return_part(&self, announcement: &str) -> &str {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest_with_an_announcement` is never used
[INFO] [stdout]    --> src/type_trait_life/lifttime.rs:125:4
[INFO] [stdout]     |
[INFO] [stdout] 125 | fn longest_with_an_announcement<'a, T>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0603`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rust-learning` (test "integration_test") due to 1 previous error
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] running `Command { std: "docker" "inspect" "808d41f5ef8ea7fe3d094ce6358bb00eae9a5ccf3b9563d74782101a69668a60", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "808d41f5ef8ea7fe3d094ce6358bb00eae9a5ccf3b9563d74782101a69668a60", kill_on_drop: false }`
[INFO] [stdout] 808d41f5ef8ea7fe3d094ce6358bb00eae9a5ccf3b9563d74782101a69668a60
