[INFO] cloning repository https://github.com/xianhu/hello-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/xianhu/hello-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fxianhu%2Fhello-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fxianhu%2Fhello-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] eaf4f04ded05f2b5de02f91969e9a1493becfc83
[INFO] checking xianhu/hello-rust against f4dd856795debe636f2ba39a900f162f5abeb7e8 for pr-160904
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fxianhu%2Fhello-rust" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/xianhu/hello-rust
[INFO] finished tweaking git repo https://github.com/xianhu/hello-rust
[INFO] tweaked toml for git repo https://github.com/xianhu/hello-rust written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/xianhu/hello-rust on toolchain f4dd856795debe636f2ba39a900f162f5abeb7e8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f4dd856795debe636f2ba39a900f162f5abeb7e8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/xianhu/hello-rust 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" "+f4dd856795debe636f2ba39a900f162f5abeb7e8" "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-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 62ae039d7ca1ed1693587ebbf5eb44f85b2d182ad6a98f85696bbb304a3618c1
[INFO] running `Command { std: "docker" "start" "62ae039d7ca1ed1693587ebbf5eb44f85b2d182ad6a98f85696bbb304a3618c1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "62ae039d7ca1ed1693587ebbf5eb44f85b2d182ad6a98f85696bbb304a3618c1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "62ae039d7ca1ed1693587ebbf5eb44f85b2d182ad6a98f85696bbb304a3618c1" "/opt/rustwide/cargo-home/bin/cargo" "+f4dd856795debe636f2ba39a900f162f5abeb7e8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "62ae039d7ca1ed1693587ebbf5eb44f85b2d182ad6a98f85696bbb304a3618c1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "62ae039d7ca1ed1693587ebbf5eb44f85b2d182ad6a98f85696bbb304a3618c1" "/opt/rustwide/cargo-home/bin/cargo" "+f4dd856795debe636f2ba39a900f162f5abeb7e8" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking hello-rust v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::f64::consts::PI`
[INFO] [stdout]    --> src/main.rs:561:5
[INFO] [stdout]     |
[INFO] [stdout] 561 | use std::f64::consts::PI;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f64::consts::PI`
[INFO] [stdout]    --> src/main.rs:561:5
[INFO] [stdout]     |
[INFO] [stdout] 561 | use std::f64::consts::PI;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/main.rs:578:5
[INFO] [stdout]     |
[INFO] [stdout] 577 |     panic!("error occured");
[INFO] [stdout]     |     ----------------------- any code following this expression is unreachable
[INFO] [stdout] 578 |     println!("Hello, Rust");
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/main.rs:578:5
[INFO] [stdout]     |
[INFO] [stdout] 577 |     panic!("error occured");
[INFO] [stdout]     |     ----------------------- any code following this expression is unreachable
[INFO] [stdout] 578 |     println!("Hello, Rust");
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `>` cannot be applied to type `T`
[INFO] [stdout]    --> src/main.rs:639:21
[INFO] [stdout]     |
[INFO] [stdout] 639 |         if array[i] > array[max_index] {
[INFO] [stdout]     |            -------- ^ ---------------- T
[INFO] [stdout]     |            |
[INFO] [stdout]     |            T
[INFO] [stdout]     |
[INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialOrd`
[INFO] [stdout]     |
[INFO] [stdout] 635 | fn max1<T: std::cmp::PartialOrd>(array: &[T]) -> T {
[INFO] [stdout]     |          ++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `>` cannot be applied to type `T`
[INFO] [stdout]    --> src/main.rs:639:21
[INFO] [stdout]     |
[INFO] [stdout] 639 |         if array[i] > array[max_index] {
[INFO] [stdout]     |            -------- ^ ---------------- T
[INFO] [stdout]     |            |
[INFO] [stdout]     |            T
[INFO] [stdout]     |
[INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialOrd`
[INFO] [stdout]     |
[INFO] [stdout] 635 | fn max1<T: std::cmp::PartialOrd>(array: &[T]) -> T {
[INFO] [stdout]     |          ++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/main.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let a = 123;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `a1` is assigned to, but never used
[INFO] [stdout]   --> src/main.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let mut a1 = 123;
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_a1` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a1`
[INFO] [stdout]   --> src/main.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let a1 = 123;
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_a1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a1`
[INFO] [stdout]   --> src/main.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let a1 = "abc";
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_a1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `a1` is never read
[INFO] [stdout]   --> src/main.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     a1 = 456;
[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: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |     let mut a = [1, 2, 3, 4];
[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: `x`
[INFO] [stdout]   --> src/main.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |     let x = 2.0; // f64
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/main.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let y: f32 = 3.0; // f32
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/main.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let a = 123;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `a1` is assigned to, but never used
[INFO] [stdout]   --> src/main.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let mut a1 = 123;
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_a1` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a1`
[INFO] [stdout]   --> src/main.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let a1 = 123;
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_a1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sum`
[INFO] [stdout]   --> src/main.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |     let sum = 5 + 10; // 加
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_sum`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `difference`
[INFO] [stdout]   --> src/main.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let difference = 95.5 - 4.3; // 减
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_difference`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `product`
[INFO] [stdout]   --> src/main.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let product = 4 * 30; // 乘
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_product`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `quotient`
[INFO] [stdout]   --> src/main.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |     let quotient = 56.7 / 32.2; // 除
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_quotient`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `remainder`
[INFO] [stdout]   --> src/main.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 67 |     let remainder = 43 % 5; // 求余
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_remainder`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b1`
[INFO] [stdout]   --> src/main.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 70 |     let b1 = true;
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_b1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b2`
[INFO] [stdout]   --> src/main.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let b2 = false;
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_b2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/main.rs:75:10
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let (x, y, z) = tup;
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/main.rs:75:13
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let (x, y, z) = tup;
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `z`
[INFO] [stdout]   --> src/main.rs:75:16
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let (x, y, z) = tup;
[INFO] [stdout]    |                ^ help: if this is intentional, prefix it with an underscore: `_z`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/main.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |     let a = [1, 2, 3, 4, 5];
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/main.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |     let mut a = [1, 2, 3, 4];
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/main.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 80 |     let b = ["January", "February", "March"];
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]   --> src/main.rs:81:9
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let c: [i32; 5] = [1, 2, 3, 4, 5];
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]   --> src/main.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 82 |     let d = [3; 5];
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a1`
[INFO] [stdout]   --> src/main.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let a1 = "abc";
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_a1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `a1` is never read
[INFO] [stdout]   --> src/main.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     a1 = 456;
[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: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |     let mut a = [1, 2, 3, 4];
[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: `x`
[INFO] [stdout]   --> src/main.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |     let x = 2.0; // f64
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/main.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let y: f32 = 3.0; // f32
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sum`
[INFO] [stdout]   --> src/main.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |     let sum = 5 + 10; // 加
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_sum`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `difference`
[INFO] [stdout]   --> src/main.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let difference = 95.5 - 4.3; // 减
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_difference`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `product`
[INFO] [stdout]   --> src/main.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let product = 4 * 30; // 乘
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_product`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `quotient`
[INFO] [stdout]   --> src/main.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |     let quotient = 56.7 / 32.2; // 除
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_quotient`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `remainder`
[INFO] [stdout]   --> src/main.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 67 |     let remainder = 43 % 5; // 求余
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_remainder`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b1`
[INFO] [stdout]   --> src/main.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 70 |     let b1 = true;
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_b1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b2`
[INFO] [stdout]   --> src/main.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let b2 = false;
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_b2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/main.rs:75:10
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let (x, y, z) = tup;
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/main.rs:75:13
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let (x, y, z) = tup;
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `z`
[INFO] [stdout]   --> src/main.rs:75:16
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let (x, y, z) = tup;
[INFO] [stdout]    |                ^ help: if this is intentional, prefix it with an underscore: `_z`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/main.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |     let a = [1, 2, 3, 4, 5];
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/main.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |     let mut a = [1, 2, 3, 4];
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/main.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 80 |     let b = ["January", "February", "March"];
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]   --> src/main.rs:81:9
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let c: [i32; 5] = [1, 2, 3, 4, 5];
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]   --> src/main.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 82 |     let d = [3; 5];
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s2`
[INFO] [stdout]    --> src/main.rs:187:9
[INFO] [stdout]     |
[INFO] [stdout] 187 |     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/main.rs:224:9
[INFO] [stdout]     |
[INFO] [stdout] 224 |     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/main.rs:233:9
[INFO] [stdout]     |
[INFO] [stdout] 233 |     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: `s2`
[INFO] [stdout]    --> src/main.rs:187:9
[INFO] [stdout]     |
[INFO] [stdout] 187 |     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: `r1`
[INFO] [stdout]    --> src/main.rs:274:9
[INFO] [stdout]     |
[INFO] [stdout] 274 |     let r1 = &mut s;
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_r1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s1`
[INFO] [stdout]    --> src/main.rs:224:9
[INFO] [stdout]     |
[INFO] [stdout] 224 |     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/main.rs:233:9
[INFO] [stdout]     |
[INFO] [stdout] 233 |     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: value assigned to `s2` is never read
[INFO] [stdout]    --> src/main.rs:253:18
[INFO] [stdout]     |
[INFO] [stdout] 253 |     let mut s2 = &s1;
[INFO] [stdout]     |                  ^^^ this value is reassigned later and never used
[INFO] [stdout] 254 |     let s3 = s1;
[INFO] [stdout] 255 |     s2 = &s3; // 重新从 s3 租借所有权
[INFO] [stdout]     |     -------- `s2` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r1`
[INFO] [stdout]    --> src/main.rs:274:9
[INFO] [stdout]     |
[INFO] [stdout] 274 |     let r1 = &mut s;
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_r1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `s2` is never read
[INFO] [stdout]    --> src/main.rs:253:18
[INFO] [stdout]     |
[INFO] [stdout] 253 |     let mut s2 = &s1;
[INFO] [stdout]     |                  ^^^ this value is reassigned later and never used
[INFO] [stdout] 254 |     let s3 = s1;
[INFO] [stdout] 255 |     s2 = &s3; // 重新从 s3 租借所有权
[INFO] [stdout]     |     -------- `s2` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:293:9
[INFO] [stdout]     |
[INFO] [stdout] 293 |     let mut s = String::from("runoob");
[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/main.rs:293:9
[INFO] [stdout]     |
[INFO] [stdout] 293 |     let mut s = String::from("runoob");
[INFO] [stdout]     |         ----^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `runoob`
[INFO] [stdout]    --> src/main.rs:317:9
[INFO] [stdout]     |
[INFO] [stdout] 317 |     let runoob = Site {
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_runoob`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `site`
[INFO] [stdout]    --> src/main.rs:335:9
[INFO] [stdout]     |
[INFO] [stdout] 335 |     let site = Site {
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_site`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `runoob`
[INFO] [stdout]    --> src/main.rs:317:9
[INFO] [stdout]     |
[INFO] [stdout] 317 |     let runoob = Site {
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_runoob`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `site`
[INFO] [stdout]    --> src/main.rs:335:9
[INFO] [stdout]     |
[INFO] [stdout] 335 |     let site = Site {
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_site`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `book`
[INFO] [stdout]    --> src/main.rs:415:9
[INFO] [stdout]     |
[INFO] [stdout] 415 |     let book = Book1::Papery(1001);
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_book`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ebook`
[INFO] [stdout]    --> src/main.rs:416:9
[INFO] [stdout]     |
[INFO] [stdout] 416 |     let ebook = Book1::Electronic(String::from("url://..."));
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_ebook`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `book`
[INFO] [stdout]    --> src/main.rs:423:9
[INFO] [stdout]     |
[INFO] [stdout] 423 |     let book = Book2::Papery { index: 1001 };
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_book`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `book`
[INFO] [stdout]    --> src/main.rs:415:9
[INFO] [stdout]     |
[INFO] [stdout] 415 |     let book = Book1::Papery(1001);
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_book`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ebook`
[INFO] [stdout]    --> src/main.rs:416:9
[INFO] [stdout]     |
[INFO] [stdout] 416 |     let ebook = Book1::Electronic(String::from("url://..."));
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_ebook`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `book`
[INFO] [stdout]    --> src/main.rs:423:9
[INFO] [stdout]     |
[INFO] [stdout] 423 |     let book = Book2::Papery { index: 1001 };
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_book`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `x` does not live long enough
[INFO] [stdout]    --> src/main.rs:728:13
[INFO] [stdout]     |
[INFO] [stdout] 727 |         let x = 5;
[INFO] [stdout]     |             - binding `x` declared here
[INFO] [stdout] 728 |         r = &x;
[INFO] [stdout]     |             ^^ borrowed value does not live long enough
[INFO] [stdout] 729 |     }
[INFO] [stdout]     |     - `x` dropped here while still borrowed
[INFO] [stdout] 730 |     println!("r: {}", r);
[INFO] [stdout]     |                       - borrow later used here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `x` does not live long enough
[INFO] [stdout]    --> src/main.rs:728:13
[INFO] [stdout]     |
[INFO] [stdout] 727 |         let x = 5;
[INFO] [stdout]     |             - binding `x` declared here
[INFO] [stdout] 728 |         r = &x;
[INFO] [stdout]     |             ^^ borrowed value does not live long enough
[INFO] [stdout] 729 |     }
[INFO] [stdout]     |     - `x` dropped here while still borrowed
[INFO] [stdout] 730 |     println!("r: {}", r);
[INFO] [stdout]     |                       - borrow later used here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:809:9
[INFO] [stdout]     |
[INFO] [stdout] 809 |     let mut v = vec![1, 2, 4, 8];
[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/main.rs:809:9
[INFO] [stdout]     |
[INFO] [stdout] 809 |     let mut v = vec![1, 2, 4, 8];
[INFO] [stdout]     |         ----^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vector`
[INFO] [stdout]    --> src/main.rs:795:9
[INFO] [stdout]     |
[INFO] [stdout] 795 |     let vector: Vec<i32> = Vec::new(); // 创建类型为 i32 的空向量
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_vector`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vector`
[INFO] [stdout]    --> src/main.rs:795:9
[INFO] [stdout]     |
[INFO] [stdout] 795 |     let vector: Vec<i32> = Vec::new(); // 创建类型为 i32 的空向量
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_vector`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vector`
[INFO] [stdout]    --> src/main.rs:796:9
[INFO] [stdout]     |
[INFO] [stdout] 796 |     let vector = vec![1, 2, 4, 8]; // 通过数组创建向量
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_vector`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `string`
[INFO] [stdout]    --> src/main.rs:829:9
[INFO] [stdout]     |
[INFO] [stdout] 829 |     let string = String::new();
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `one`
[INFO] [stdout]    --> src/main.rs:830:9
[INFO] [stdout]     |
[INFO] [stdout] 830 |     let one = 1.to_string(); // 整数到字符串
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_one`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `float`
[INFO] [stdout]    --> src/main.rs:831:9
[INFO] [stdout]     |
[INFO] [stdout] 831 |     let float = 1.3.to_string(); // 浮点数到字符串
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slice`
[INFO] [stdout]    --> src/main.rs:832:9
[INFO] [stdout]     |
[INFO] [stdout] 832 |     let slice = "slice".to_string(); // 字符串切片到字符串
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_slice`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s3`
[INFO] [stdout]    --> src/main.rs:840:9
[INFO] [stdout]     |
[INFO] [stdout] 840 |     let s3 = s1 + &s2;
[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/main.rs:845:9
[INFO] [stdout]     |
[INFO] [stdout] 845 |     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: `vector`
[INFO] [stdout]    --> src/main.rs:796:9
[INFO] [stdout]     |
[INFO] [stdout] 796 |     let vector = vec![1, 2, 4, 8]; // 通过数组创建向量
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_vector`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `string`
[INFO] [stdout]    --> src/main.rs:829:9
[INFO] [stdout]     |
[INFO] [stdout] 829 |     let string = String::new();
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `one`
[INFO] [stdout]    --> src/main.rs:830:9
[INFO] [stdout]     |
[INFO] [stdout] 830 |     let one = 1.to_string(); // 整数到字符串
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_one`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/main.rs:850:9
[INFO] [stdout]     |
[INFO] [stdout] 850 |     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: `float`
[INFO] [stdout]    --> src/main.rs:831:9
[INFO] [stdout]     |
[INFO] [stdout] 831 |     let float = 1.3.to_string(); // 浮点数到字符串
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slice`
[INFO] [stdout]    --> src/main.rs:832:9
[INFO] [stdout]     |
[INFO] [stdout] 832 |     let slice = "slice".to_string(); // 字符串切片到字符串
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_slice`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s3`
[INFO] [stdout]    --> src/main.rs:840:9
[INFO] [stdout]     |
[INFO] [stdout] 840 |     let s3 = s1 + &s2;
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_s3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `len`
[INFO] [stdout]    --> src/main.rs:853:9
[INFO] [stdout]     |
[INFO] [stdout] 853 |     let len = s.len();
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/main.rs:845:9
[INFO] [stdout]     |
[INFO] [stdout] 845 |     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/main.rs:850:9
[INFO] [stdout]     |
[INFO] [stdout] 850 |     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: `len`
[INFO] [stdout]    --> src/main.rs:853:9
[INFO] [stdout]     |
[INFO] [stdout] 853 |     let len = s.len();
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `len`
[INFO] [stdout]    --> src/main.rs:854:9
[INFO] [stdout]     |
[INFO] [stdout] 854 |     let len = s.chars().count();
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `len`
[INFO] [stdout]    --> src/main.rs:854:9
[INFO] [stdout]     |
[INFO] [stdout] 854 |     let len = s.chars().count();
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0369, E0597.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0369`.
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0369, E0597.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0369`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `hello-rust` (bin "hello-rust" test) due to 2 previous errors; 48 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `hello-rust` (bin "hello-rust") due to 2 previous errors; 48 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "62ae039d7ca1ed1693587ebbf5eb44f85b2d182ad6a98f85696bbb304a3618c1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "62ae039d7ca1ed1693587ebbf5eb44f85b2d182ad6a98f85696bbb304a3618c1", kill_on_drop: false }`
[INFO] [stdout] 62ae039d7ca1ed1693587ebbf5eb44f85b2d182ad6a98f85696bbb304a3618c1
