[INFO] cloning repository https://github.com/lipz3352208640/my-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/lipz3352208640/my-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flipz3352208640%2Fmy-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flipz3352208640%2Fmy-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7d3952cdb589f736b2e1f08f30e1e26cc7d14962
[INFO] testing lipz3352208640/my-rust against 1.97.0-beta.6 for beta-1.98-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flipz3352208640%2Fmy-rust" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/lipz3352208640/my-rust
[INFO] finished tweaking git repo https://github.com/lipz3352208640/my-rust
[INFO] tweaked toml for git repo https://github.com/lipz3352208640/my-rust written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/lipz3352208640/my-rust on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/lipz3352208640/my-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" "+1.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 6f6399bf940b4abaa5863c50a0462b8007e7c807c10d315e7963c1c61b25a30a
[INFO] running `Command { std: "docker" "start" "6f6399bf940b4abaa5863c50a0462b8007e7c807c10d315e7963c1c61b25a30a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6f6399bf940b4abaa5863c50a0462b8007e7c807c10d315e7963c1c61b25a30a", 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" "6f6399bf940b4abaa5863c50a0462b8007e7c807c10d315e7963c1c61b25a30a" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6f6399bf940b4abaa5863c50a0462b8007e7c807c10d315e7963c1c61b25a30a", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6f6399bf940b4abaa5863c50a0462b8007e7c807c10d315e7963c1c61b25a30a" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling basic v0.1.0 (/opt/rustwide/workdir/basic)
[INFO] [stderr]    Compiling lesson_05_collections v0.1.0 (/opt/rustwide/workdir/lessons/05_collections)
[INFO] [stderr]    Compiling lesson_06_errors v0.1.0 (/opt/rustwide/workdir/lessons/06_errors)
[INFO] [stderr]    Compiling lesson_08_tests v0.1.0 (/opt/rustwide/workdir/lessons/08_tests)
[INFO] [stderr]    Compiling lesson_09_control_flow v0.1.0 (/opt/rustwide/workdir/lessons/09_control_flow)
[INFO] [stderr]    Compiling lesson_11_modules_visibility v0.1.0 (/opt/rustwide/workdir/lessons/11_modules_visibility)
[INFO] [stderr]    Compiling lesson_01_hello v0.1.0 (/opt/rustwide/workdir/lessons/01_hello)
[INFO] [stderr]    Compiling lesson_02_variables v0.1.0 (/opt/rustwide/workdir/lessons/02_variables)
[INFO] [stderr]    Compiling lesson_03_ownership v0.1.0 (/opt/rustwide/workdir/lessons/03_ownership)
[INFO] [stderr]    Compiling lesson_04_structs_traits v0.1.0 (/opt/rustwide/workdir/lessons/04_structs_traits)
[INFO] [stderr]    Compiling lesson_07_modules v0.1.0 (/opt/rustwide/workdir/lessons/07_modules)
[INFO] [stderr]    Compiling lesson_10_functions v0.1.0 (/opt/rustwide/workdir/lessons/10_functions)
[INFO] [stdout] warning: unused label
[INFO] [stdout]   --> lessons/04_structs_traits/src/main.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |         'B: 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: unreachable statement
[INFO] [stdout]   --> lessons/04_structs_traits/src/main.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |             break 'A;
[INFO] [stdout]    |             -------- any code following this expression is unreachable
[INFO] [stdout] 65 |         }
[INFO] [stdout] 66 |         println!("这一点永远不会到达");
[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: unused imports: `f32::consts::LN_10` and `fmt::Arguments`
[INFO] [stdout]  --> lessons/02_variables/src/main.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{f32::consts::LN_10, fmt::Arguments};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `value` is never read
[INFO] [stdout]   --> lessons/03_ownership/src/main.rs:71:5
[INFO] [stdout]    |
[INFO] [stdout] 70 | struct Number {
[INFO] [stdout]    |        ------ field in this struct
[INFO] [stdout] 71 |     value: i32,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Number` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PositiveNumber` is never constructed
[INFO] [stdout]   --> lessons/03_ownership/src/main.rs:90:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | struct PositiveNumber {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `logical`
[INFO] [stdout]   --> lessons/01_hello/src/main.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |     let logical: bool = true;
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_logical`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a_float`
[INFO] [stdout]   --> lessons/01_hello/src/main.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let a_float: f64 = 1.0; // 常规标注
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_a_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `an_integer`
[INFO] [stdout]   --> lessons/01_hello/src/main.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let an_integer = 5i32; // 后缀标注
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_an_integer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `default_float`
[INFO] [stdout]   --> lessons/01_hello/src/main.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let default_float = 3.0; // `f64`
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `default_integer`
[INFO] [stdout]   --> lessons/01_hello/src/main.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     let default_integer = 7; // `i32`
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_integer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `inferred_type` is assigned to, but never used
[INFO] [stdout]   --> lessons/01_hello/src/main.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let mut inferred_type = 12; // 从另一行推断出类型为 i64。
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_inferred_type` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `mutable` is assigned to, but never used
[INFO] [stdout]   --> lessons/01_hello/src/main.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |     let mut mutable = 12; // 可变的 `i32`
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_mutable` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mutable`
[INFO] [stdout]   --> lessons/01_hello/src/main.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let mutable = true;
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mutable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `my_array`
[INFO] [stdout]   --> lessons/01_hello/src/main.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let my_array: [i32; 5] = [1, 2, 3, 4, 5];
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_my_array`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `my_array_1`
[INFO] [stdout]   --> lessons/01_hello/src/main.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let my_array_1: [i64; 3] = [1, 5, 6];
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_my_array_1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `my_tuple`
[INFO] [stdout]   --> lessons/01_hello/src/main.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |     let my_tuple = (5u32, 1u8, true, -5.04f32);
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_my_tuple`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `inferred_type` is never read
[INFO] [stdout]   --> lessons/01_hello/src/main.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     inferred_type = 4294967296i64;
[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: value assigned to `mutable` is never read
[INFO] [stdout]   --> lessons/01_hello/src/main.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 |     mutable = 21;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_name`
[INFO] [stdout]    --> lessons/09_control_flow/src/main.rs:135:9
[INFO] [stdout]     |
[INFO] [stdout] 135 |     let maybe_name = Some("Alice");
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_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: `emoticon`
[INFO] [stdout]    --> lessons/09_control_flow/src/main.rs:139:9
[INFO] [stdout]     |
[INFO] [stdout] 139 |     let emoticon: Option<i32> = None;
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_emoticon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `name1` is never read
[INFO] [stdout]  --> lessons/02_variables/src/main.rs:7:21
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let mut name1 = "Alice";
[INFO] [stdout]   |                     ^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] 8 |     name1 = "tome";
[INFO] [stdout]   |     -------------- `name1` is overwritten here before the previous value is read
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `Name` and `Age` are never read
[INFO] [stdout]   --> lessons/02_variables/src/main.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 67 | struct Person {
[INFO] [stdout]    |        ------ fields in this struct
[INFO] [stdout] 68 |     Name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 69 |     Age: i8,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Person` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `myName` should have a snake case name
[INFO] [stdout]   --> lessons/02_variables/src/main.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let myName = "sb";
[INFO] [stdout]    |         ^^^^^^ help: convert the identifier to snake case: `my_name`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `myName` should have a snake case name
[INFO] [stdout]   --> lessons/02_variables/src/main.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let myName = "piter";
[INFO] [stdout]    |             ^^^^^^ help: convert the identifier to snake case: `my_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `myName` should have a snake case name
[INFO] [stdout]   --> lessons/02_variables/src/main.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let myName = "myy";
[INFO] [stdout]    |         ^^^^^^ help: convert the identifier to snake case: `my_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Name` should have a snake case name
[INFO] [stdout]   --> lessons/02_variables/src/main.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |     let Name = String::from("lily");
[INFO] [stdout]    |         ^^^^ help: convert the identifier to snake case: `name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Age` should have a snake case name
[INFO] [stdout]   --> lessons/02_variables/src/main.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let Age = 18;
[INFO] [stdout]    |         ^^^ help: convert the identifier to snake case: `age`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `instancePerson` should have a snake case name
[INFO] [stdout]   --> lessons/02_variables/src/main.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let instancePerson = Person {
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `instance_person`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `keyPress` should have a snake case name
[INFO] [stdout]   --> lessons/02_variables/src/main.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 |     let keyPress = WebEvent::KeyPress('h');
[INFO] [stdout]    |         ^^^^^^^^ help: convert the identifier to snake case: `key_press`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Name` should have a snake case name
[INFO] [stdout]   --> lessons/02_variables/src/main.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |     Name: String,
[INFO] [stdout]    |     ^^^^ help: convert the identifier to snake case: `name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Age` should have a snake case name
[INFO] [stdout]   --> lessons/02_variables/src/main.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 |     Age: i8,
[INFO] [stdout]    |     ^^^ help: convert the identifier to snake case: `age`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> lessons/04_structs_traits/src/main.rs:109:9
[INFO] [stdout]     |
[INFO] [stdout] 109 |     let mut vc = vec![String::from("123"), String::from("456")];
[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: function `iter_into` is never used
[INFO] [stdout]    --> lessons/04_structs_traits/src/main.rs:139:4
[INFO] [stdout]     |
[INFO] [stdout] 139 | fn iter_into() {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `loopTest` should have a snake case name
[INFO] [stdout]   --> lessons/04_structs_traits/src/main.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn loopTest() {
[INFO] [stdout]    |    ^^^^^^^^ help: convert the identifier to snake case: `loop_test`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `twoLoop` should have a snake case name
[INFO] [stdout]   --> lessons/04_structs_traits/src/main.rs:58:4
[INFO] [stdout]    |
[INFO] [stdout] 58 | fn twoLoop() {
[INFO] [stdout]    |    ^^^^^^^ help: convert the identifier to snake case: `two_loop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `returnLoop` should have a snake case name
[INFO] [stdout]   --> lessons/04_structs_traits/src/main.rs:72:4
[INFO] [stdout]    |
[INFO] [stdout] 72 | fn returnLoop() {
[INFO] [stdout]    |    ^^^^^^^^^^ help: convert the identifier to snake case: `return_loop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `whileTest` should have a snake case name
[INFO] [stdout]   --> lessons/04_structs_traits/src/main.rs:86:4
[INFO] [stdout]    |
[INFO] [stdout] 86 | fn whileTest() {
[INFO] [stdout]    |    ^^^^^^^^^ help: convert the identifier to snake case: `while_test`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `foTest` should have a snake case name
[INFO] [stdout]   --> lessons/04_structs_traits/src/main.rs:95:4
[INFO] [stdout]    |
[INFO] [stdout] 95 | fn foTest() {
[INFO] [stdout]    |    ^^^^^^ help: convert the identifier to snake case: `fo_test`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.96s
[INFO] running `Command { std: "docker" "inspect" "6f6399bf940b4abaa5863c50a0462b8007e7c807c10d315e7963c1c61b25a30a", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6f6399bf940b4abaa5863c50a0462b8007e7c807c10d315e7963c1c61b25a30a" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling lesson_09_control_flow v0.1.0 (/opt/rustwide/workdir/lessons/09_control_flow)
[INFO] [stderr]    Compiling lesson_10_functions v0.1.0 (/opt/rustwide/workdir/lessons/10_functions)
[INFO] [stderr]    Compiling lesson_11_modules_visibility v0.1.0 (/opt/rustwide/workdir/lessons/11_modules_visibility)
[INFO] [stderr]    Compiling lesson_01_hello v0.1.0 (/opt/rustwide/workdir/lessons/01_hello)
[INFO] [stderr]    Compiling lesson_08_tests v0.1.0 (/opt/rustwide/workdir/lessons/08_tests)
[INFO] [stderr]    Compiling basic v0.1.0 (/opt/rustwide/workdir/basic)
[INFO] [stderr]    Compiling lesson_03_ownership v0.1.0 (/opt/rustwide/workdir/lessons/03_ownership)
[INFO] [stderr]    Compiling lesson_04_structs_traits v0.1.0 (/opt/rustwide/workdir/lessons/04_structs_traits)
[INFO] [stderr]    Compiling lesson_06_errors v0.1.0 (/opt/rustwide/workdir/lessons/06_errors)
[INFO] [stderr]    Compiling lesson_05_collections v0.1.0 (/opt/rustwide/workdir/lessons/05_collections)
[INFO] [stderr]    Compiling lesson_07_modules v0.1.0 (/opt/rustwide/workdir/lessons/07_modules)
[INFO] [stderr]    Compiling lesson_02_variables v0.1.0 (/opt/rustwide/workdir/lessons/02_variables)
[INFO] [stdout] warning: unused variable: `maybe_name`
[INFO] [stdout]    --> lessons/09_control_flow/src/main.rs:135:9
[INFO] [stdout]     |
[INFO] [stdout] 135 |     let maybe_name = Some("Alice");
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_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: `emoticon`
[INFO] [stdout]    --> lessons/09_control_flow/src/main.rs:139:9
[INFO] [stdout]     |
[INFO] [stdout] 139 |     let emoticon: Option<i32> = None;
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_emoticon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused label
[INFO] [stdout]   --> lessons/04_structs_traits/src/main.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |         'B: 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: unreachable statement
[INFO] [stdout]   --> lessons/04_structs_traits/src/main.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |             break 'A;
[INFO] [stdout]    |             -------- any code following this expression is unreachable
[INFO] [stdout] 65 |         }
[INFO] [stdout] 66 |         println!("这一点永远不会到达");
[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: field `value` is never read
[INFO] [stdout]   --> lessons/03_ownership/src/main.rs:71:5
[INFO] [stdout]    |
[INFO] [stdout] 70 | struct Number {
[INFO] [stdout]    |        ------ field in this struct
[INFO] [stdout] 71 |     value: i32,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Number` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PositiveNumber` is never constructed
[INFO] [stdout]   --> lessons/03_ownership/src/main.rs:90:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | struct PositiveNumber {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `f32::consts::LN_10` and `fmt::Arguments`
[INFO] [stdout]  --> lessons/02_variables/src/main.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{f32::consts::LN_10, fmt::Arguments};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> lessons/04_structs_traits/src/main.rs:109:9
[INFO] [stdout]     |
[INFO] [stdout] 109 |     let mut vc = vec![String::from("123"), String::from("456")];
[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: function `iter_into` is never used
[INFO] [stdout]    --> lessons/04_structs_traits/src/main.rs:139:4
[INFO] [stdout]     |
[INFO] [stdout] 139 | fn iter_into() {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `loopTest` should have a snake case name
[INFO] [stdout]   --> lessons/04_structs_traits/src/main.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn loopTest() {
[INFO] [stdout]    |    ^^^^^^^^ help: convert the identifier to snake case: `loop_test`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `twoLoop` should have a snake case name
[INFO] [stdout]   --> lessons/04_structs_traits/src/main.rs:58:4
[INFO] [stdout]    |
[INFO] [stdout] 58 | fn twoLoop() {
[INFO] [stdout]    |    ^^^^^^^ help: convert the identifier to snake case: `two_loop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `returnLoop` should have a snake case name
[INFO] [stdout]   --> lessons/04_structs_traits/src/main.rs:72:4
[INFO] [stdout]    |
[INFO] [stdout] 72 | fn returnLoop() {
[INFO] [stdout]    |    ^^^^^^^^^^ help: convert the identifier to snake case: `return_loop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `whileTest` should have a snake case name
[INFO] [stdout]   --> lessons/04_structs_traits/src/main.rs:86:4
[INFO] [stdout]    |
[INFO] [stdout] 86 | fn whileTest() {
[INFO] [stdout]    |    ^^^^^^^^^ help: convert the identifier to snake case: `while_test`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `foTest` should have a snake case name
[INFO] [stdout]   --> lessons/04_structs_traits/src/main.rs:95:4
[INFO] [stdout]    |
[INFO] [stdout] 95 | fn foTest() {
[INFO] [stdout]    |    ^^^^^^ help: convert the identifier to snake case: `fo_test`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `name1` is never read
[INFO] [stdout]  --> lessons/02_variables/src/main.rs:7:21
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let mut name1 = "Alice";
[INFO] [stdout]   |                     ^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] 8 |     name1 = "tome";
[INFO] [stdout]   |     -------------- `name1` is overwritten here before the previous value is read
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `Name` and `Age` are never read
[INFO] [stdout]   --> lessons/02_variables/src/main.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 67 | struct Person {
[INFO] [stdout]    |        ------ fields in this struct
[INFO] [stdout] 68 |     Name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 69 |     Age: i8,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Person` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `myName` should have a snake case name
[INFO] [stdout]   --> lessons/02_variables/src/main.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let myName = "sb";
[INFO] [stdout]    |         ^^^^^^ help: convert the identifier to snake case: `my_name`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `myName` should have a snake case name
[INFO] [stdout]   --> lessons/02_variables/src/main.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let myName = "piter";
[INFO] [stdout]    |             ^^^^^^ help: convert the identifier to snake case: `my_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `myName` should have a snake case name
[INFO] [stdout]   --> lessons/02_variables/src/main.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let myName = "myy";
[INFO] [stdout]    |         ^^^^^^ help: convert the identifier to snake case: `my_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Name` should have a snake case name
[INFO] [stdout]   --> lessons/02_variables/src/main.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |     let Name = String::from("lily");
[INFO] [stdout]    |         ^^^^ help: convert the identifier to snake case: `name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Age` should have a snake case name
[INFO] [stdout]   --> lessons/02_variables/src/main.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let Age = 18;
[INFO] [stdout]    |         ^^^ help: convert the identifier to snake case: `age`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `instancePerson` should have a snake case name
[INFO] [stdout]   --> lessons/02_variables/src/main.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let instancePerson = Person {
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `instance_person`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `keyPress` should have a snake case name
[INFO] [stdout]   --> lessons/02_variables/src/main.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 |     let keyPress = WebEvent::KeyPress('h');
[INFO] [stdout]    |         ^^^^^^^^ help: convert the identifier to snake case: `key_press`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Name` should have a snake case name
[INFO] [stdout]   --> lessons/02_variables/src/main.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |     Name: String,
[INFO] [stdout]    |     ^^^^ help: convert the identifier to snake case: `name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Age` should have a snake case name
[INFO] [stdout]   --> lessons/02_variables/src/main.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 |     Age: i8,
[INFO] [stdout]    |     ^^^ help: convert the identifier to snake case: `age`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `logical`
[INFO] [stdout]   --> lessons/01_hello/src/main.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |     let logical: bool = true;
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_logical`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a_float`
[INFO] [stdout]   --> lessons/01_hello/src/main.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let a_float: f64 = 1.0; // 常规标注
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_a_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `an_integer`
[INFO] [stdout]   --> lessons/01_hello/src/main.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let an_integer = 5i32; // 后缀标注
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_an_integer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `default_float`
[INFO] [stdout]   --> lessons/01_hello/src/main.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let default_float = 3.0; // `f64`
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `default_integer`
[INFO] [stdout]   --> lessons/01_hello/src/main.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     let default_integer = 7; // `i32`
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_integer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `inferred_type` is assigned to, but never used
[INFO] [stdout]   --> lessons/01_hello/src/main.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let mut inferred_type = 12; // 从另一行推断出类型为 i64。
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_inferred_type` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `mutable` is assigned to, but never used
[INFO] [stdout]   --> lessons/01_hello/src/main.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |     let mut mutable = 12; // 可变的 `i32`
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_mutable` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mutable`
[INFO] [stdout]   --> lessons/01_hello/src/main.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let mutable = true;
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mutable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `my_array`
[INFO] [stdout]   --> lessons/01_hello/src/main.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let my_array: [i32; 5] = [1, 2, 3, 4, 5];
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_my_array`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `my_array_1`
[INFO] [stdout]   --> lessons/01_hello/src/main.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let my_array_1: [i64; 3] = [1, 5, 6];
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_my_array_1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `my_tuple`
[INFO] [stdout]   --> lessons/01_hello/src/main.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |     let my_tuple = (5u32, 1u8, true, -5.04f32);
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_my_tuple`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `inferred_type` is never read
[INFO] [stdout]   --> lessons/01_hello/src/main.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     inferred_type = 4294967296i64;
[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: value assigned to `mutable` is never read
[INFO] [stdout]   --> lessons/01_hello/src/main.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 |     mutable = 21;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.04s
[INFO] running `Command { std: "docker" "inspect" "6f6399bf940b4abaa5863c50a0462b8007e7c807c10d315e7963c1c61b25a30a", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6f6399bf940b4abaa5863c50a0462b8007e7c807c10d315e7963c1c61b25a30a" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: unused imports: `f32::consts::LN_10` and `fmt::Arguments`
[INFO] [stderr]  --> lessons/02_variables/src/main.rs:1:11
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::{f32::consts::LN_10, fmt::Arguments};
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `name1` is never read
[INFO] [stderr]  --> lessons/02_variables/src/main.rs:7:21
[INFO] [stderr]   |
[INFO] [stderr] 7 |     let mut name1 = "Alice";
[INFO] [stderr]   |                     ^^^^^^^ this value is reassigned later and never used
[INFO] [stderr] 8 |     name1 = "tome";
[INFO] [stderr]   |     -------------- `name1` is overwritten here before the previous value is read
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `Name` and `Age` are never read
[INFO] [stderr]   --> lessons/02_variables/src/main.rs:68:5
[INFO] [stderr]    |
[INFO] [stderr] 67 | struct Person {
[INFO] [stderr]    |        ------ fields in this struct
[INFO] [stderr] 68 |     Name: String,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 69 |     Age: i8,
[INFO] [stderr]    |     ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Person` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `myName` should have a snake case name
[INFO] [stderr]   --> lessons/02_variables/src/main.rs:26:9
[INFO] [stderr]    |
[INFO] [stderr] 26 |     let myName = "sb";
[INFO] [stderr]    |         ^^^^^^ help: convert the identifier to snake case: `my_name`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `myName` should have a snake case name
[INFO] [stderr]   --> lessons/02_variables/src/main.rs:28:13
[INFO] [stderr]    |
[INFO] [stderr] 28 |         let myName = "piter";
[INFO] [stderr]    |             ^^^^^^ help: convert the identifier to snake case: `my_name`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `myName` should have a snake case name
[INFO] [stderr]   --> lessons/02_variables/src/main.rs:33:9
[INFO] [stderr]    |
[INFO] [stderr] 33 |     let myName = "myy";
[INFO] [stderr]    |         ^^^^^^ help: convert the identifier to snake case: `my_name`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `Name` should have a snake case name
[INFO] [stderr]   --> lessons/02_variables/src/main.rs:36:9
[INFO] [stderr]    |
[INFO] [stderr] 36 |     let Name = String::from("lily");
[INFO] [stderr]    |         ^^^^ help: convert the identifier to snake case: `name`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `Age` should have a snake case name
[INFO] [stderr]   --> lessons/02_variables/src/main.rs:37:9
[INFO] [stderr]    |
[INFO] [stderr] 37 |     let Age = 18;
[INFO] [stderr]    |         ^^^ help: convert the identifier to snake case: `age`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `instancePerson` should have a snake case name
[INFO] [stderr]   --> lessons/02_variables/src/main.rs:41:9
[INFO] [stderr]    |
[INFO] [stderr] 41 |     let instancePerson = Person {
[INFO] [stderr]    |         ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `instance_person`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `keyPress` should have a snake case name
[INFO] [stderr]   --> lessons/02_variables/src/main.rs:55:9
[INFO] [stderr]    |
[INFO] [stderr] 55 |     let keyPress = WebEvent::KeyPress('h');
[INFO] [stderr]    |         ^^^^^^^^ help: convert the identifier to snake case: `key_press`
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `Name` should have a snake case name
[INFO] [stderr]   --> lessons/02_variables/src/main.rs:68:5
[INFO] [stderr]    |
[INFO] [stderr] 68 |     Name: String,
[INFO] [stderr]    |     ^^^^ help: convert the identifier to snake case: `name`
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `Age` should have a snake case name
[INFO] [stderr]   --> lessons/02_variables/src/main.rs:69:5
[INFO] [stderr]    |
[INFO] [stderr] 69 |     Age: i8,
[INFO] [stderr]    |     ^^^ help: convert the identifier to snake case: `age`
[INFO] [stderr] 
[INFO] [stderr] warning: `lesson_02_variables` (bin "lesson_02_variables" test) generated 12 warnings (run `cargo fix --bin "lesson_02_variables" -p lesson_02_variables --tests` to apply 1 suggestion)
[INFO] [stderr] warning: unused variable: `logical`
[INFO] [stderr]   --> lessons/01_hello/src/main.rs:31:9
[INFO] [stderr]    |
[INFO] [stderr] 31 |     let logical: bool = true;
[INFO] [stderr]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_logical`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `a_float`
[INFO] [stderr]   --> lessons/01_hello/src/main.rs:33:9
[INFO] [stderr]    |
[INFO] [stderr] 33 |     let a_float: f64 = 1.0; // 常规标注
[INFO] [stderr]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_a_float`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `an_integer`
[INFO] [stderr]   --> lessons/01_hello/src/main.rs:34:9
[INFO] [stderr]    |
[INFO] [stderr] 34 |     let an_integer = 5i32; // 后缀标注
[INFO] [stderr]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_an_integer`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `default_float`
[INFO] [stderr]   --> lessons/01_hello/src/main.rs:37:9
[INFO] [stderr]    |
[INFO] [stderr] 37 |     let default_float = 3.0; // `f64`
[INFO] [stderr]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_float`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `default_integer`
[INFO] [stderr]   --> lessons/01_hello/src/main.rs:38:9
[INFO] [stderr]    |
[INFO] [stderr] 38 |     let default_integer = 7; // `i32`
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_integer`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `inferred_type` is assigned to, but never used
[INFO] [stderr]   --> lessons/01_hello/src/main.rs:41:9
[INFO] [stderr]    |
[INFO] [stderr] 41 |     let mut inferred_type = 12; // 从另一行推断出类型为 i64。
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: consider using `_inferred_type` instead
[INFO] [stderr] 
[INFO] [stderr] warning: variable `mutable` is assigned to, but never used
[INFO] [stderr]   --> lessons/01_hello/src/main.rs:45:9
[INFO] [stderr]    |
[INFO] [stderr] 45 |     let mut mutable = 12; // 可变的 `i32`
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: consider using `_mutable` instead
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `mutable`
[INFO] [stderr]   --> lessons/01_hello/src/main.rs:52:9
[INFO] [stderr]    |
[INFO] [stderr] 52 |     let mutable = true;
[INFO] [stderr]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mutable`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `my_array`
[INFO] [stderr]   --> lessons/01_hello/src/main.rs:57:9
[INFO] [stderr]    |
[INFO] [stderr] 57 |     let my_array: [i32; 5] = [1, 2, 3, 4, 5];
[INFO] [stderr]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_my_array`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `my_array_1`
[INFO] [stderr]   --> lessons/01_hello/src/main.rs:58:9
[INFO] [stderr]    |
[INFO] [stderr] 58 |     let my_array_1: [i64; 3] = [1, 5, 6];
[INFO] [stderr]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_my_array_1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `my_tuple`
[INFO] [stderr]   --> lessons/01_hello/src/main.rs:62:9
[INFO] [stderr]    |
[INFO] [stderr] 62 |     let my_tuple = (5u32, 1u8, true, -5.04f32);
[INFO] [stderr]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_my_tuple`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `inferred_type` is never read
[INFO] [stderr]   --> lessons/01_hello/src/main.rs:42:5
[INFO] [stderr]    |
[INFO] [stderr] 42 |     inferred_type = 4294967296i64;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = help: maybe it is overwritten before being read?
[INFO] [stderr]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `mutable` is never read
[INFO] [stderr]   --> lessons/01_hello/src/main.rs:46:5
[INFO] [stderr]    |
[INFO] [stderr] 46 |     mutable = 21;
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused label
[INFO] [stderr]   --> lessons/04_structs_traits/src/main.rs:62:9
[INFO] [stderr]    |
[INFO] [stderr] 62 |         'B: loop {
[INFO] [stderr]    |         ^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_labels)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable statement
[INFO] [stderr]   --> lessons/04_structs_traits/src/main.rs:66:9
[INFO] [stderr]    |
[INFO] [stderr] 64 |             break 'A;
[INFO] [stderr]    |             -------- any code following this expression is unreachable
[INFO] [stderr] 65 |         }
[INFO] [stderr] 66 |         println!("这一点永远不会到达");
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> lessons/04_structs_traits/src/main.rs:109:9
[INFO] [stderr]     |
[INFO] [stderr] 109 |     let mut vc = vec![String::from("123"), String::from("456")];
[INFO] [stderr]     |         ----^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `iter_into` is never used
[INFO] [stderr]    --> lessons/04_structs_traits/src/main.rs:139:4
[INFO] [stderr]     |
[INFO] [stderr] 139 | fn iter_into() {
[INFO] [stderr]     |    ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `loopTest` should have a snake case name
[INFO] [stderr]   --> lessons/04_structs_traits/src/main.rs:47:4
[INFO] [stderr]    |
[INFO] [stderr] 47 | fn loopTest() {
[INFO] [stderr]    |    ^^^^^^^^ help: convert the identifier to snake case: `loop_test`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `twoLoop` should have a snake case name
[INFO] [stderr]   --> lessons/04_structs_traits/src/main.rs:58:4
[INFO] [stderr]    |
[INFO] [stderr] 58 | fn twoLoop() {
[INFO] [stderr]    |    ^^^^^^^ help: convert the identifier to snake case: `two_loop`
[INFO] [stderr] 
[INFO] [stderr] warning: function `returnLoop` should have a snake case name
[INFO] [stderr]   --> lessons/04_structs_traits/src/main.rs:72:4
[INFO] [stderr]    |
[INFO] [stderr] 72 | fn returnLoop() {
[INFO] [stderr]    |    ^^^^^^^^^^ help: convert the identifier to snake case: `return_loop`
[INFO] [stderr] 
[INFO] [stderr] warning: function `whileTest` should have a snake case name
[INFO] [stderr]   --> lessons/04_structs_traits/src/main.rs:86:4
[INFO] [stderr]    |
[INFO] [stderr] 86 | fn whileTest() {
[INFO] [stderr]    |    ^^^^^^^^^ help: convert the identifier to snake case: `while_test`
[INFO] [stderr] 
[INFO] [stderr] warning: function `foTest` should have a snake case name
[INFO] [stderr]   --> lessons/04_structs_traits/src/main.rs:95:4
[INFO] [stderr]    |
[INFO] [stderr] 95 | fn foTest() {
[INFO] [stderr]    |    ^^^^^^ help: convert the identifier to snake case: `fo_test`
[INFO] [stderr] 
[INFO] [stderr] warning: field `value` is never read
[INFO] [stderr]   --> lessons/03_ownership/src/main.rs:71:5
[INFO] [stderr]    |
[INFO] [stderr] 70 | struct Number {
[INFO] [stderr]    |        ------ field in this struct
[INFO] [stderr] 71 |     value: i32,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Number` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `PositiveNumber` is never constructed
[INFO] [stderr]   --> lessons/03_ownership/src/main.rs:90:8
[INFO] [stderr]    |
[INFO] [stderr] 90 | struct PositiveNumber {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `maybe_name`
[INFO] [stderr]    --> lessons/09_control_flow/src/main.rs:135:9
[INFO] [stderr]     |
[INFO] [stderr] 135 |     let maybe_name = Some("Alice");
[INFO] [stderr]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_name`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `emoticon`
[INFO] [stderr]    --> lessons/09_control_flow/src/main.rs:139:9
[INFO] [stderr]     |
[INFO] [stderr] 139 |     let emoticon: Option<i32> = None;
[INFO] [stderr]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_emoticon`
[INFO] [stderr] 
[INFO] [stderr] warning: `lesson_01_hello` (bin "lesson_01_hello" test) generated 13 warnings (run `cargo fix --bin "lesson_01_hello" -p lesson_01_hello --tests` to apply 9 suggestions)
[INFO] [stderr] warning: `lesson_04_structs_traits` (bin "lesson_04_structs_traits" test) generated 9 warnings (run `cargo fix --bin "lesson_04_structs_traits" -p lesson_04_structs_traits --tests` to apply 1 suggestion)
[INFO] [stderr] warning: `lesson_03_ownership` (bin "lesson_03_ownership" test) generated 2 warnings
[INFO] [stderr] warning: `lesson_09_control_flow` (bin "lesson_09_control_flow" test) generated 2 warnings (run `cargo fix --bin "lesson_09_control_flow" -p lesson_09_control_flow --tests` to apply 2 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.09s
[INFO] [stderr]      Running unittests main.rs (/opt/rustwide/target/debug/deps/basic-0fbb71aef6d1b546)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/lesson_01_hello-256887ed8a18294a)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/lesson_02_variables-5de7382eb9175447)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/lesson_03_ownership-8cfd3a00c3ca4fca)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/lesson_04_structs_traits-3ac5793e9de914af)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/lesson_05_collections-078197ba132e1592)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/lesson_06_errors-093fcbf355ec12e8)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/lesson_07_modules-ba592614e5144099)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/lesson_08_tests-b462b3e2171e6676)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test tests::add_two_numbers ... ok
[INFO] [stdout] test tests::check_even_number ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/lesson_09_control_flow-a81ac7f99fcd1935)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/lesson_10_functions-33c6dce3333c3f2d)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/lesson_11_modules_visibility-e32a78038117570c)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests lesson_08_tests
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "6f6399bf940b4abaa5863c50a0462b8007e7c807c10d315e7963c1c61b25a30a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6f6399bf940b4abaa5863c50a0462b8007e7c807c10d315e7963c1c61b25a30a", kill_on_drop: false }`
[INFO] [stdout] 6f6399bf940b4abaa5863c50a0462b8007e7c807c10d315e7963c1c61b25a30a
