[INFO] cloning repository https://github.com/Dizans/rust_book
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Dizans/rust_book" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDizans%2Frust_book", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDizans%2Frust_book'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c6a028c8bd55bffe94e7acc67b5d6633545d51c3
[INFO] checking Dizans/rust_book against try#f77b5bc6c7c84df104f86b0dd01d9490e3923fa8 for pr-147834
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDizans%2Frust_book" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Dizans/rust_book
[INFO] finished tweaking git repo https://github.com/Dizans/rust_book
[INFO] tweaked toml for git repo https://github.com/Dizans/rust_book written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Dizans/rust_book on toolchain f77b5bc6c7c84df104f86b0dd01d9490e3923fa8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f77b5bc6c7c84df104f86b0dd01d9490e3923fa8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Dizans/rust_book 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" "+f77b5bc6c7c84df104f86b0dd01d9490e3923fa8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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" "+f77b5bc6c7c84df104f86b0dd01d9490e3923fa8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 56aafb17c8865509e3179e68a10e4e86a118243ec71dcdf0a5828081bb935789
[INFO] running `Command { std: "docker" "start" "-a" "56aafb17c8865509e3179e68a10e4e86a118243ec71dcdf0a5828081bb935789", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "56aafb17c8865509e3179e68a10e4e86a118243ec71dcdf0a5828081bb935789", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "56aafb17c8865509e3179e68a10e4e86a118243ec71dcdf0a5828081bb935789", kill_on_drop: false }`
[INFO] [stdout] 56aafb17c8865509e3179e68a10e4e86a118243ec71dcdf0a5828081bb935789
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+f77b5bc6c7c84df104f86b0dd01d9490e3923fa8" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cfb73e7f124dcbb1a3c8987baaffe45d759565a9df52ce5f9a62d55d701e07a6
[INFO] running `Command { std: "docker" "start" "-a" "cfb73e7f124dcbb1a3c8987baaffe45d759565a9df52ce5f9a62d55d701e07a6", kill_on_drop: false }`
[INFO] [stderr]     Checking thebook v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `Tweet` in this scope
[INFO] [stdout]    --> src/main.rs:702:5
[INFO] [stdout]     |
[INFO] [stdout] 702 |     Tweet {
[INFO] [stdout]     |     ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `Tweet` in this scope
[INFO] [stdout]    --> src/main.rs:702:5
[INFO] [stdout]     |
[INFO] [stdout] 702 |     Tweet {
[INFO] [stdout]     |     ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:628:16
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl<T,U> TUPoint<T,U>{
[INFO] [stdout]     |      - expected type parameter
[INFO] [stdout] 625 |     fn mixup<V,W>(self, other: TUPoint<V,W>) -> TUPoint<T,W>{
[INFO] [stdout]     |                - found type parameter
[INFO] [stdout] ...
[INFO] [stdout] 628 |             y: other.y,
[INFO] [stdout]     |                ^^^^^^^ expected type parameter `T`, found type parameter `W`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected type parameter `T`
[INFO] [stdout]                found type parameter `W`
[INFO] [stdout]     = note: a type parameter was expected, but a different one was found; you might be missing a type parameter or trait bound
[INFO] [stdout]     = note: for more information, visit https://doc.rust-lang.org/book/ch10-02-traits.html#traits-as-parameters
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:628:16
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl<T,U> TUPoint<T,U>{
[INFO] [stdout]     |      - expected type parameter
[INFO] [stdout] 625 |     fn mixup<V,W>(self, other: TUPoint<V,W>) -> TUPoint<T,W>{
[INFO] [stdout]     |                - found type parameter
[INFO] [stdout] ...
[INFO] [stdout] 628 |             y: other.y,
[INFO] [stdout]     |                ^^^^^^^ expected type parameter `T`, found type parameter `W`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected type parameter `T`
[INFO] [stdout]                found type parameter `W`
[INFO] [stdout]     = note: a type parameter was expected, but a different one was found; you might be missing a type parameter or trait bound
[INFO] [stdout]     = note: for more information, visit https://doc.rust-lang.org/book/ch10-02-traits.html#traits-as-parameters
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:626:9
[INFO] [stdout]     |
[INFO] [stdout] 625 |       fn mixup<V,W>(self, other: TUPoint<V,W>) -> TUPoint<T,W>{
[INFO] [stdout]     |                                                   ------------ expected `TUPoint<T, W>` because of return type
[INFO] [stdout] 626 | /         Point{
[INFO] [stdout] 627 | |             x: self.x,
[INFO] [stdout] 628 | |             y: other.y,
[INFO] [stdout] 629 | |         }
[INFO] [stdout]     | |_________^ expected `TUPoint<T, W>`, found `Point<T>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `TUPoint<T, W>`
[INFO] [stdout]                found struct `Point<T>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:626:9
[INFO] [stdout]     |
[INFO] [stdout] 625 |       fn mixup<V,W>(self, other: TUPoint<V,W>) -> TUPoint<T,W>{
[INFO] [stdout]     |                                                   ------------ expected `TUPoint<T, W>` because of return type
[INFO] [stdout] 626 | /         Point{
[INFO] [stdout] 627 | |             x: self.x,
[INFO] [stdout] 628 | |             y: other.y,
[INFO] [stdout] 629 | |         }
[INFO] [stdout]     | |_________^ expected `TUPoint<T, W>`, found `Point<T>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `TUPoint<T, W>`
[INFO] [stdout]                found struct `Point<T>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_name`
[INFO] [stdout]   --> src/main.rs:28:14
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn read_file(file_name: &str){
[INFO] [stdout]    |              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_name`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_name`
[INFO] [stdout]   --> src/main.rs:28:14
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn read_file(file_name: &str){
[INFO] [stdout]    |              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_name`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/main.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let y = x;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s2`
[INFO] [stdout]   --> src/main.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     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: `s2`
[INFO] [stdout]   --> src/main.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let s2 = s1.clone();
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_s2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/main.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let y = x;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s2`
[INFO] [stdout]   --> src/main.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     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: `s2`
[INFO] [stdout]   --> src/main.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let s2 = s1.clone();
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_s2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user2`
[INFO] [stdout]    --> src/main.rs:100:9
[INFO] [stdout]     |
[INFO] [stdout] 100 |     let user2 = User {
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_user2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `black`
[INFO] [stdout]    --> src/main.rs:111:9
[INFO] [stdout]     |
[INFO] [stdout] 111 |     let black = Color(0, 0, 0);
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_black`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `origin`
[INFO] [stdout]    --> src/main.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let origin = Point(0, 0, 0);
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `four`
[INFO] [stdout]    --> src/main.rs:159:9
[INFO] [stdout]     |
[INFO] [stdout] 159 |     let four = IpAddrKind::V4;
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_four`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user2`
[INFO] [stdout]    --> src/main.rs:100:9
[INFO] [stdout]     |
[INFO] [stdout] 100 |     let user2 = User {
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_user2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `six`
[INFO] [stdout]    --> src/main.rs:160:9
[INFO] [stdout]     |
[INFO] [stdout] 160 |     let six = IpAddrKind::V6;
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_six`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `black`
[INFO] [stdout]    --> src/main.rs:111:9
[INFO] [stdout]     |
[INFO] [stdout] 111 |     let black = Color(0, 0, 0);
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_black`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `origin`
[INFO] [stdout]    --> src/main.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let origin = Point(0, 0, 0);
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `z`
[INFO] [stdout]    --> src/main.rs:195:9
[INFO] [stdout]     |
[INFO] [stdout] 195 |     let z = match x {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_z`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/main.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 214 |     let v = match some_u8_value {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `four`
[INFO] [stdout]    --> src/main.rs:159:9
[INFO] [stdout]     |
[INFO] [stdout] 159 |     let four = IpAddrKind::V4;
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_four`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `six`
[INFO] [stdout]    --> src/main.rs:160:9
[INFO] [stdout]     |
[INFO] [stdout] 160 |     let six = IpAddrKind::V6;
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_six`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/main.rs:372:9
[INFO] [stdout]     |
[INFO] [stdout] 372 |     let v:Vec<i32> = Vec::new();
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `z`
[INFO] [stdout]    --> src/main.rs:195:9
[INFO] [stdout]     |
[INFO] [stdout] 195 |     let z = match x {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_z`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/main.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 214 |     let v = match some_u8_value {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/main.rs:373:9
[INFO] [stdout]     |
[INFO] [stdout] 373 |     let v = vec![1,2,3];
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/main.rs:400:9
[INFO] [stdout]     |
[INFO] [stdout] 400 |     let s = data.to_string();
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/main.rs:402:9
[INFO] [stdout]     |
[INFO] [stdout] 402 |     let s = "initial contents".to_string();
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/main.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |     let s = String::from("initial contents");
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s3`
[INFO] [stdout]    --> src/main.rs:411:9
[INFO] [stdout]     |
[INFO] [stdout] 411 |     let s3 = s1 + &s2; //s1失效  fn add(self, s: &str) -> String
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_s3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:437:9
[INFO] [stdout]     |
[INFO] [stdout] 437 |     let mut scores:HashMap<_,_> = teams.iter().zip(initial_scores.iter()).collect();
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/main.rs:372:9
[INFO] [stdout]     |
[INFO] [stdout] 372 |     let v:Vec<i32> = Vec::new();
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/main.rs:373:9
[INFO] [stdout]     |
[INFO] [stdout] 373 |     let v = vec![1,2,3];
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `score`
[INFO] [stdout]    --> src/main.rs:451:9
[INFO] [stdout]     |
[INFO] [stdout] 451 |     let score = scores.get(&team_name); //option<T>
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_score`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/main.rs:400:9
[INFO] [stdout]     |
[INFO] [stdout] 400 |     let s = data.to_string();
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/main.rs:402:9
[INFO] [stdout]     |
[INFO] [stdout] 402 |     let s = "initial contents".to_string();
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/main.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |     let s = String::from("initial contents");
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s3`
[INFO] [stdout]    --> src/main.rs:411:9
[INFO] [stdout]     |
[INFO] [stdout] 411 |     let s3 = s1 + &s2; //s1失效  fn add(self, s: &str) -> String
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_s3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> src/main.rs:497:9
[INFO] [stdout]     |
[INFO] [stdout] 497 |     let f = match f{
[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/main.rs:512:9
[INFO] [stdout]     |
[INFO] [stdout] 512 |     let f = File::open("hello.txt").map_err(|error|{
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:437:9
[INFO] [stdout]     |
[INFO] [stdout] 437 |     let mut scores:HashMap<_,_> = teams.iter().zip(initial_scores.iter()).collect();
[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: `score`
[INFO] [stdout]    --> src/main.rs:451:9
[INFO] [stdout]     |
[INFO] [stdout] 451 |     let score = scores.get(&team_name); //option<T>
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_score`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> src/main.rs:497:9
[INFO] [stdout]     |
[INFO] [stdout] 497 |     let f = match f{
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/main.rs:692:24
[INFO] [stdout]     |
[INFO] [stdout] 692 | fn some_function<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/main.rs:692:30
[INFO] [stdout]     |
[INFO] [stdout] 692 | fn some_function<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: `f`
[INFO] [stdout]    --> src/main.rs:512:9
[INFO] [stdout]     |
[INFO] [stdout] 512 |     let f = File::open("hello.txt").map_err(|error|{
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `thebook` (bin "thebook" test) due to 3 previous errors; 23 warnings emitted
[INFO] [stdout] Some errors have detailed explanations: E0308, E0422.
[INFO] [stdout] 
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] For more information about an error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/main.rs:692:24
[INFO] [stdout]     |
[INFO] [stdout] 692 | fn some_function<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/main.rs:692:30
[INFO] [stdout]     |
[INFO] [stdout] 692 | fn some_function<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] Some errors have detailed explanations: E0308, E0422.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `thebook` (bin "thebook") due to 3 previous errors; 23 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "cfb73e7f124dcbb1a3c8987baaffe45d759565a9df52ce5f9a62d55d701e07a6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cfb73e7f124dcbb1a3c8987baaffe45d759565a9df52ce5f9a62d55d701e07a6", kill_on_drop: false }`
[INFO] [stdout] cfb73e7f124dcbb1a3c8987baaffe45d759565a9df52ce5f9a62d55d701e07a6
