[INFO] cloning repository https://github.com/coutcin-xw/rust_lerning [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/coutcin-xw/rust_lerning" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcoutcin-xw%2Frust_lerning", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcoutcin-xw%2Frust_lerning'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 337f245d5e2769dda06e90e0371373398f0b514e [INFO] checking coutcin-xw/rust_lerning against try#e622d8d7bed4f2668d446e06c6c1436ecae15796 for pr-156776 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcoutcin-xw%2Frust_lerning" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/coutcin-xw/rust_lerning [INFO] finished tweaking git repo https://github.com/coutcin-xw/rust_lerning [INFO] tweaked toml for git repo https://github.com/coutcin-xw/rust_lerning written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/coutcin-xw/rust_lerning on toolchain e622d8d7bed4f2668d446e06c6c1436ecae15796 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e622d8d7bed4f2668d446e06c6c1436ecae15796" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/coutcin-xw/rust_lerning 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" "+e622d8d7bed4f2668d446e06c6c1436ecae15796" "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-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+e622d8d7bed4f2668d446e06c6c1436ecae15796" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 3534056e77d4fb2be3350a1ccfc3e179d042f60b91d2ad0a45b894d6f0bb9e6f [INFO] running `Command { std: "docker" "start" "-a" "3534056e77d4fb2be3350a1ccfc3e179d042f60b91d2ad0a45b894d6f0bb9e6f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "3534056e77d4fb2be3350a1ccfc3e179d042f60b91d2ad0a45b894d6f0bb9e6f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3534056e77d4fb2be3350a1ccfc3e179d042f60b91d2ad0a45b894d6f0bb9e6f", kill_on_drop: false }` [INFO] [stdout] 3534056e77d4fb2be3350a1ccfc3e179d042f60b91d2ad0a45b894d6f0bb9e6f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+e622d8d7bed4f2668d446e06c6c1436ecae15796" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] c4f9e3ae10053235aeebe8eca3dbf7f5a6b4bac98da9bde1395c982e7caac3aa [INFO] running `Command { std: "docker" "start" "-a" "c4f9e3ae10053235aeebe8eca3dbf7f5a6b4bac98da9bde1395c982e7caac3aa", kill_on_drop: false }` [INFO] [stderr] Checking rust_learning v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `animals::*` [INFO] [stdout] --> src/14_modules.rs:203:9 [INFO] [stdout] | [INFO] [stdout] 203 | use animals::*; [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: `backend::Database` [INFO] [stdout] --> src/14_modules.rs:372:13 [INFO] [stdout] | [INFO] [stdout] 372 | pub use backend::Database; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `animals::*` [INFO] [stdout] --> src/14_modules.rs:203:9 [INFO] [stdout] | [INFO] [stdout] 203 | use animals::*; [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: `backend::Database` [INFO] [stdout] --> src/14_modules.rs:372:13 [INFO] [stdout] | [INFO] [stdout] 372 | pub use backend::Database; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> src/01_basics.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | let x = x + 1; // 新的x,类型可以不同 [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `y` is never read [INFO] [stdout] --> src/01_basics.rs:39:17 [INFO] [stdout] | [INFO] [stdout] 39 | let mut y = 10; // mut = mutable,可变变量 [INFO] [stdout] | ^^ this value is reassigned later and never used [INFO] [stdout] 40 | y = 20; // OK,可以修改 [INFO] [stdout] | ------ `y` 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: unused variable: `i` [INFO] [stdout] --> src/01_basics.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | let i: i32 = 42; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `big` [INFO] [stdout] --> src/01_basics.rs:77:9 [INFO] [stdout] | [INFO] [stdout] 77 | let big: u128 = 100_000_000; // 下划线提高可读性 [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_big` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/01_basics.rs:82:9 [INFO] [stdout] | [INFO] [stdout] 82 | let f: f64 = 3.14; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f2` [INFO] [stdout] --> src/01_basics.rs:83:9 [INFO] [stdout] | [INFO] [stdout] 83 | let f2 = 2.0_f32; // 类型后缀 [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_f2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `b` [INFO] [stdout] --> src/01_basics.rs:86:9 [INFO] [stdout] | [INFO] [stdout] 86 | let b: bool = true; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_b` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s2` [INFO] [stdout] --> src/02_ownership.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | let s2 = s1; // 所有权从s1转移到s2 [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_s2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/02_ownership.rs:183:9 [INFO] [stdout] | [INFO] [stdout] 183 | let c = CustomSmartPointer { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `literal` [INFO] [stdout] --> src/03_borrowing.rs:146:9 [INFO] [stdout] | [INFO] [stdout] 146 | let literal: &str = "hello"; // 字面量,编译期确定 [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_literal` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `slice` [INFO] [stdout] --> src/03_borrowing.rs:148:9 [INFO] [stdout] | [INFO] [stdout] 148 | let slice: &str = &string; // String可以转成&str [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_slice` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> src/01_basics.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | let x = x + 1; // 新的x,类型可以不同 [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `y` is never read [INFO] [stdout] --> src/01_basics.rs:39:17 [INFO] [stdout] | [INFO] [stdout] 39 | let mut y = 10; // mut = mutable,可变变量 [INFO] [stdout] | ^^ this value is reassigned later and never used [INFO] [stdout] 40 | y = 20; // OK,可以修改 [INFO] [stdout] | ------ `y` 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: unused variable: `origin` [INFO] [stdout] --> src/04_struct_enum.rs:88:9 [INFO] [stdout] | [INFO] [stdout] 88 | let origin = Point(0.0, 0.0); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/01_basics.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | let i: i32 = 42; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `big` [INFO] [stdout] --> src/01_basics.rs:77:9 [INFO] [stdout] | [INFO] [stdout] 77 | let big: u128 = 100_000_000; // 下划线提高可读性 [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_big` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/01_basics.rs:82:9 [INFO] [stdout] | [INFO] [stdout] 82 | let f: f64 = 3.14; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f2` [INFO] [stdout] --> src/01_basics.rs:83:9 [INFO] [stdout] | [INFO] [stdout] 83 | let f2 = 2.0_f32; // 类型后缀 [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_f2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `b` [INFO] [stdout] --> src/01_basics.rs:86:9 [INFO] [stdout] | [INFO] [stdout] 86 | let b: bool = true; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_b` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s2` [INFO] [stdout] --> src/02_ownership.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | let s2 = s1; // 所有权从s1转移到s2 [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_s2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/02_ownership.rs:183:9 [INFO] [stdout] | [INFO] [stdout] 183 | let c = CustomSmartPointer { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `literal` [INFO] [stdout] --> src/03_borrowing.rs:146:9 [INFO] [stdout] | [INFO] [stdout] 146 | let literal: &str = "hello"; // 字面量,编译期确定 [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_literal` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `slice` [INFO] [stdout] --> src/03_borrowing.rs:148:9 [INFO] [stdout] | [INFO] [stdout] 148 | let slice: &str = &string; // String可以转成&str [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_slice` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/06_error_handling.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | let f = File::open("Cargo.toml").unwrap(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `origin` [INFO] [stdout] --> src/04_struct_enum.rs:88:9 [INFO] [stdout] | [INFO] [stdout] 88 | let origin = Point(0.0, 0.0); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> src/07_trait_generics.rs:256:24 [INFO] [stdout] | [INFO] [stdout] 256 | fn some_function(t: &T, u: &U) -> String [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `u` [INFO] [stdout] --> src/07_trait_generics.rs:256:31 [INFO] [stdout] | [INFO] [stdout] 256 | fn some_function(t: &T, u: &U) -> String [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_u` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `r` is assigned to, but never used [INFO] [stdout] --> src/08_lifetime.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 35 | let r; // ---------+-- 'a [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_r` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `r` is never read [INFO] [stdout] --> src/08_lifetime.rs:40:9 [INFO] [stdout] | [INFO] [stdout] 40 | r = &x; // | | [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/06_error_handling.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | let f = File::open("Cargo.toml").unwrap(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> src/07_trait_generics.rs:256:24 [INFO] [stdout] | [INFO] [stdout] 256 | fn some_function(t: &T, u: &U) -> String [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `u` [INFO] [stdout] --> src/07_trait_generics.rs:256:31 [INFO] [stdout] | [INFO] [stdout] 256 | fn some_function(t: &T, u: &U) -> String [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_u` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `r` is assigned to, but never used [INFO] [stdout] --> src/08_lifetime.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 35 | let r; // ---------+-- 'a [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_r` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `r` is never read [INFO] [stdout] --> src/08_lifetime.rs:40:9 [INFO] [stdout] | [INFO] [stdout] 40 | r = &x; // | | [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `iter` [INFO] [stdout] --> src/11_iterators.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | let iter: std::slice::Iter = v.iter(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_iter` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `iter_mut` [INFO] [stdout] --> src/11_iterators.rs:42:9 [INFO] [stdout] | [INFO] [stdout] 42 | let iter_mut: std::slice::IterMut = v2.iter_mut(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_iter_mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `iter_own` [INFO] [stdout] --> src/11_iterators.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 46 | let iter_own: std::vec::IntoIter = v.into_iter(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_iter_own` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `iter` [INFO] [stdout] --> src/11_iterators.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | let iter: std::slice::Iter = v.iter(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_iter` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `iter_mut` [INFO] [stdout] --> src/11_iterators.rs:42:9 [INFO] [stdout] | [INFO] [stdout] 42 | let iter_mut: std::slice::IterMut = v2.iter_mut(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_iter_mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `iter_own` [INFO] [stdout] --> src/11_iterators.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 46 | let iter_own: std::vec::IntoIter = v.into_iter(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_iter_own` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `large` [INFO] [stdout] --> src/12_smart_pointers.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 64 | let large = Box::new(LargeData { data: [0; 1000] }); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_large` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tool` [INFO] [stdout] --> src/12_smart_pointers.rs:173:9 [INFO] [stdout] | [INFO] [stdout] 173 | let tool = Rc::new(Tool { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_tool` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/12_smart_pointers.rs:286:9 [INFO] [stdout] | [INFO] [stdout] 286 | let mut s = MyBox::new(String::from("hello")); [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: `s` [INFO] [stdout] --> src/12_smart_pointers.rs:286:9 [INFO] [stdout] | [INFO] [stdout] 286 | let mut s = MyBox::new(String::from("hello")); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/12_smart_pointers.rs:318:9 [INFO] [stdout] | [INFO] [stdout] 318 | let mut p = CustomPointer { [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `future` [INFO] [stdout] --> src/13_async_await.rs:49:9 [INFO] [stdout] | [INFO] [stdout] 49 | let future = async { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_future` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `future` [INFO] [stdout] --> src/13_async_await.rs:151:9 [INFO] [stdout] | [INFO] [stdout] 151 | let future = async { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_future` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `future1` [INFO] [stdout] --> src/13_async_await.rs:159:9 [INFO] [stdout] | [INFO] [stdout] 159 | let future1 = fetch_data(1); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_future1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `future2` [INFO] [stdout] --> src/13_async_await.rs:160:9 [INFO] [stdout] | [INFO] [stdout] 160 | let future2 = fetch_data(2); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_future2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `large` [INFO] [stdout] --> src/12_smart_pointers.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 64 | let large = Box::new(LargeData { data: [0; 1000] }); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_large` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tool` [INFO] [stdout] --> src/12_smart_pointers.rs:173:9 [INFO] [stdout] | [INFO] [stdout] 173 | let tool = Rc::new(Tool { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_tool` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/12_smart_pointers.rs:286:9 [INFO] [stdout] | [INFO] [stdout] 286 | let mut s = MyBox::new(String::from("hello")); [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: `s` [INFO] [stdout] --> src/12_smart_pointers.rs:286:9 [INFO] [stdout] | [INFO] [stdout] 286 | let mut s = MyBox::new(String::from("hello")); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/12_smart_pointers.rs:318:9 [INFO] [stdout] | [INFO] [stdout] 318 | let mut p = CustomPointer { [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `future` [INFO] [stdout] --> src/13_async_await.rs:49:9 [INFO] [stdout] | [INFO] [stdout] 49 | let future = async { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_future` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `future` [INFO] [stdout] --> src/13_async_await.rs:151:9 [INFO] [stdout] | [INFO] [stdout] 151 | let future = async { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_future` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `future1` [INFO] [stdout] --> src/13_async_await.rs:159:9 [INFO] [stdout] | [INFO] [stdout] 159 | let future1 = fetch_data(1); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_future1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `future2` [INFO] [stdout] --> src/13_async_await.rs:160:9 [INFO] [stdout] | [INFO] [stdout] 160 | let future2 = fetch_data(2); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_future2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `no_return` is never used [INFO] [stdout] --> src/01_basics.rs:150:4 [INFO] [stdout] | [INFO] [stdout] 150 | fn no_return() { [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 `take_and_give` is never used [INFO] [stdout] --> src/02_ownership.rs:77:4 [INFO] [stdout] | [INFO] [stdout] 77 | fn take_and_give(s: String) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `username`, `active`, and `sign_in_count` are never read [INFO] [stdout] --> src/04_struct_enum.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 34 | struct User { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 37 | username: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 38 | email: String, [INFO] [stdout] 39 | active: bool, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 40 | sign_in_count: u64, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `User` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/04_struct_enum.rs:85:18 [INFO] [stdout] | [INFO] [stdout] 85 | struct Point(f64, f64); // 2D坐标 [INFO] [stdout] | ----- ^^^ ^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this struct [INFO] [stdout] | [INFO] [stdout] = help: consider removing these fields [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Down`, `Left`, and `Right` are never constructed [INFO] [stdout] --> src/04_struct_enum.rs:185:5 [INFO] [stdout] | [INFO] [stdout] 183 | enum Direction { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 184 | Up, // 无数据的变体 [INFO] [stdout] 185 | Down, [INFO] [stdout] | ^^^^ [INFO] [stdout] 186 | Left, [INFO] [stdout] | ^^^^ [INFO] [stdout] 187 | Right, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Direction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `y` is never read [INFO] [stdout] --> src/05_pattern_match.rs:210:9 [INFO] [stdout] | [INFO] [stdout] 208 | struct Point { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 209 | x: i32, [INFO] [stdout] 210 | y: i32, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Sub` is never constructed [INFO] [stdout] --> src/05_pattern_match.rs:331:5 [INFO] [stdout] | [INFO] [stdout] 328 | enum Expr { [INFO] [stdout] | ---- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 331 | Sub(Box, Box), // 减法 [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_file_contents` is never used [INFO] [stdout] --> src/06_error_handling.rs:37:4 [INFO] [stdout] | [INFO] [stdout] 37 | fn read_file_contents(path: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_config` is never used [INFO] [stdout] --> src/06_error_handling.rs:83:4 [INFO] [stdout] | [INFO] [stdout] 83 | fn read_config(path: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unwrap_usage` is never used [INFO] [stdout] --> src/06_error_handling.rs:105:4 [INFO] [stdout] | [INFO] [stdout] 105 | fn unwrap_usage() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `with_match` is never used [INFO] [stdout] --> src/06_error_handling.rs:135:8 [INFO] [stdout] | [INFO] [stdout] 135 | fn with_match() -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `with_question_mark` is never used [INFO] [stdout] --> src/06_error_handling.rs:145:8 [INFO] [stdout] | [INFO] [stdout] 145 | fn with_question_mark() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_number_from_file` is never used [INFO] [stdout] --> src/06_error_handling.rs:154:4 [INFO] [stdout] | [INFO] [stdout] 154 | fn read_number_from_file() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `MyError` is never used [INFO] [stdout] --> src/06_error_handling.rs:162:6 [INFO] [stdout] | [INFO] [stdout] 162 | enum MyError { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `custom_error_demo` is never used [INFO] [stdout] --> src/06_error_handling.rs:183:4 [INFO] [stdout] | [INFO] [stdout] 183 | fn custom_error_demo() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `summarize_author` and `summarize_with_author` are never used [INFO] [stdout] --> src/07_trait_generics.rs:39:8 [INFO] [stdout] | [INFO] [stdout] 32 | trait Summary { [INFO] [stdout] | ------- methods in this trait [INFO] [stdout] ... [INFO] [stdout] 39 | fn summarize_author(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 44 | fn summarize_with_author(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Display` is never used [INFO] [stdout] --> src/07_trait_generics.rs:50:7 [INFO] [stdout] | [INFO] [stdout] 50 | trait Display { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `content` is never read [INFO] [stdout] --> src/07_trait_generics.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 57 | struct NewsArticle { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 61 | content: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `reply` and `retweet` are never read [INFO] [stdout] --> src/07_trait_generics.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 84 | struct Tweet { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 87 | reply: bool, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 88 | retweet: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `notify2` is never used [INFO] [stdout] --> src/07_trait_generics.rs:113:4 [INFO] [stdout] | [INFO] [stdout] 113 | fn notify2(item: &T) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `notify_same` is never used [INFO] [stdout] --> src/07_trait_generics.rs:120:4 [INFO] [stdout] | [INFO] [stdout] 120 | fn notify_same(item1: &T, item2: &T) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `notify3` is never used [INFO] [stdout] --> src/07_trait_generics.rs:128:4 [INFO] [stdout] | [INFO] [stdout] 128 | fn notify3(item: &(impl Summary + Display)) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `notify4` is never used [INFO] [stdout] --> src/07_trait_generics.rs:135:4 [INFO] [stdout] | [INFO] [stdout] 135 | fn notify4(item: &T) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `returns_summarizable` is never used [INFO] [stdout] --> src/07_trait_generics.rs:142:4 [INFO] [stdout] | [INFO] [stdout] 142 | fn returns_summarizable() -> impl Summary { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `x` and `y` are never used [INFO] [stdout] --> src/07_trait_generics.rs:244:8 [INFO] [stdout] | [INFO] [stdout] 242 | impl Point { [INFO] [stdout] | --------------------- methods in this implementation [INFO] [stdout] 243 | // 只为 y 是 f64 的 Point 实现 [INFO] [stdout] 244 | fn x(&self) -> &T { [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 248 | fn y(&self) -> &f64 { [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `some_function` is never used [INFO] [stdout] --> src/07_trait_generics.rs:256:4 [INFO] [stdout] | [INFO] [stdout] 256 | fn some_function(t: &T, u: &U) -> String [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Iterator2` is never used [INFO] [stdout] --> src/07_trait_generics.rs:343:7 [INFO] [stdout] | [INFO] [stdout] 343 | trait Iterator2 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Counter` is never constructed [INFO] [stdout] --> src/07_trait_generics.rs:364:8 [INFO] [stdout] | [INFO] [stdout] 364 | struct Counter { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/07_trait_generics.rs:370:8 [INFO] [stdout] | [INFO] [stdout] 369 | impl Counter { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] 370 | fn new(max: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Wrapper` is never constructed [INFO] [stdout] --> src/07_trait_generics.rs:391:8 [INFO] [stdout] | [INFO] [stdout] 391 | struct Wrapper> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `announce_and_return` is never used [INFO] [stdout] --> src/08_lifetime.rs:126:8 [INFO] [stdout] | [INFO] [stdout] 125 | impl<'a> ImportantExcerpt<'a> { [INFO] [stdout] | ----------------------------- method in this implementation [INFO] [stdout] 126 | fn announce_and_return(&self, announcement: &str) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `level` and `announce_and_return2` are never used [INFO] [stdout] --> src/08_lifetime.rs:153:8 [INFO] [stdout] | [INFO] [stdout] 152 | impl<'a> ImportantExcerpt<'a> { [INFO] [stdout] | ----------------------------- methods in this implementation [INFO] [stdout] 153 | fn level(&self) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 158 | fn announce_and_return2<'b>(&self, announcement: &'b str) -> &'a str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `first_word` is never used [INFO] [stdout] --> src/08_lifetime.rs:197:4 [INFO] [stdout] | [INFO] [stdout] 197 | fn first_word(s: &str) -> &str { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `longest_with_announcement` is never used [INFO] [stdout] --> src/08_lifetime.rs:228:4 [INFO] [stdout] | [INFO] [stdout] 228 | fn longest_with_announcement<'a, T>(x: &'a str, y: &'a str, ann: T) -> &'a str [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `call_with_fn` is never used [INFO] [stdout] --> src/10_closures.rs:183:4 [INFO] [stdout] | [INFO] [stdout] 183 | fn call_with_fn(f: &impl Fn() -> i32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `call_with_fn_mut` is never used [INFO] [stdout] --> src/10_closures.rs:188:4 [INFO] [stdout] | [INFO] [stdout] 188 | fn call_with_fn_mut(f: &mut impl FnMut() -> i32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `call_with_fn_once` is never used [INFO] [stdout] --> src/10_closures.rs:193:4 [INFO] [stdout] | [INFO] [stdout] 193 | fn call_with_fn_once(f: impl FnOnce()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/12_smart_pointers.rs:51:14 [INFO] [stdout] | [INFO] [stdout] 51 | Cons(i32, Box), // Box 有固定大小(指针大小) [INFO] [stdout] | ---- ^^^ ^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `List` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 51 - Cons(i32, Box), // Box 有固定大小(指针大小) [INFO] [stdout] 51 + Cons((), ()), // Box 有固定大小(指针大小) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `data` is never read [INFO] [stdout] --> src/12_smart_pointers.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 60 | struct LargeData { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 61 | data: [u8; 1000], [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `value` is never read [INFO] [stdout] --> src/12_smart_pointers.rs:130:9 [INFO] [stdout] | [INFO] [stdout] 129 | struct Node { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] 130 | value: i32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `tools` are never read [INFO] [stdout] --> src/12_smart_pointers.rs:159:9 [INFO] [stdout] | [INFO] [stdout] 158 | struct Owner { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 159 | name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 160 | tools: Vec>, // Weak引用,不增加strong_count [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `owner` are never read [INFO] [stdout] --> src/12_smart_pointers.rs:164:9 [INFO] [stdout] | [INFO] [stdout] 163 | struct Tool { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 164 | name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 165 | owner: Rc, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `hello_async` is never used [INFO] [stdout] --> src/13_async_await.rs:44:14 [INFO] [stdout] | [INFO] [stdout] 44 | async fn hello_async() { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SimpleFuture` is never constructed [INFO] [stdout] --> src/13_async_await.rs:74:8 [INFO] [stdout] | [INFO] [stdout] 74 | struct SimpleFuture { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Delay` is never constructed [INFO] [stdout] --> src/13_async_await.rs:111:12 [INFO] [stdout] | [INFO] [stdout] 111 | struct Delay { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sequential` is never used [INFO] [stdout] --> src/13_async_await.rs:168:14 [INFO] [stdout] | [INFO] [stdout] 168 | async fn sequential() { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Service` is never constructed [INFO] [stdout] --> src/13_async_await.rs:219:12 [INFO] [stdout] | [INFO] [stdout] 219 | struct Service { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `fetch` and `process` are never used [INFO] [stdout] --> src/13_async_await.rs:224:18 [INFO] [stdout] | [INFO] [stdout] 223 | impl Service { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 224 | async fn fetch(&self) -> String { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 228 | async fn process(&self, data: &str) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `crate_fn` is never used [INFO] [stdout] --> src/14_modules.rs:86:23 [INFO] [stdout] | [INFO] [stdout] 86 | pub(crate) fn crate_fn() { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `super_fn` is never used [INFO] [stdout] --> src/14_modules.rs:91:23 [INFO] [stdout] | [INFO] [stdout] 91 | pub(super) fn super_fn() { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `path_fn` is never used [INFO] [stdout] --> src/14_modules.rs:96:16 [INFO] [stdout] | [INFO] [stdout] 96 | pub fn path_fn() { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `internal_id` is never read [INFO] [stdout] --> src/14_modules.rs:131:13 [INFO] [stdout] | [INFO] [stdout] 128 | pub struct Rectangle { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 131 | internal_id: u32, // 私有字段 [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Rectangle` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_id` is never used [INFO] [stdout] --> src/14_modules.rs:145:20 [INFO] [stdout] | [INFO] [stdout] 134 | impl Rectangle { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 145 | pub fn get_id(&self) -> u32 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Unit` is never constructed [INFO] [stdout] --> src/14_modules.rs:154:20 [INFO] [stdout] | [INFO] [stdout] 154 | pub struct Unit; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `use_absolute` is never used [INFO] [stdout] --> src/14_modules.rs:249:20 [INFO] [stdout] | [INFO] [stdout] 249 | pub fn use_absolute() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add` is never used [INFO] [stdout] --> src/14_modules.rs:393:16 [INFO] [stdout] | [INFO] [stdout] 393 | pub fn add(a: i32, b: i32) -> i32 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `test_add` is never used [INFO] [stdout] --> src/14_modules.rs:403:16 [INFO] [stdout] | [INFO] [stdout] 403 | fn test_add() { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `age` are never read [INFO] [stdout] --> src/15_macros.rs:392:9 [INFO] [stdout] | [INFO] [stdout] 391 | struct User { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 392 | name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 393 | age: u32, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `User` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `no_return` is never used [INFO] [stdout] --> src/01_basics.rs:150:4 [INFO] [stdout] | [INFO] [stdout] 150 | fn no_return() { [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 `take_and_give` is never used [INFO] [stdout] --> src/02_ownership.rs:77:4 [INFO] [stdout] | [INFO] [stdout] 77 | fn take_and_give(s: String) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `username`, `active`, and `sign_in_count` are never read [INFO] [stdout] --> src/04_struct_enum.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 34 | struct User { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 37 | username: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 38 | email: String, [INFO] [stdout] 39 | active: bool, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 40 | sign_in_count: u64, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `User` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/04_struct_enum.rs:85:18 [INFO] [stdout] | [INFO] [stdout] 85 | struct Point(f64, f64); // 2D坐标 [INFO] [stdout] | ----- ^^^ ^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this struct [INFO] [stdout] | [INFO] [stdout] = help: consider removing these fields [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Down`, `Left`, and `Right` are never constructed [INFO] [stdout] --> src/04_struct_enum.rs:185:5 [INFO] [stdout] | [INFO] [stdout] 183 | enum Direction { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 184 | Up, // 无数据的变体 [INFO] [stdout] 185 | Down, [INFO] [stdout] | ^^^^ [INFO] [stdout] 186 | Left, [INFO] [stdout] | ^^^^ [INFO] [stdout] 187 | Right, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Direction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `y` is never read [INFO] [stdout] --> src/05_pattern_match.rs:210:9 [INFO] [stdout] | [INFO] [stdout] 208 | struct Point { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 209 | x: i32, [INFO] [stdout] 210 | y: i32, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Sub` is never constructed [INFO] [stdout] --> src/05_pattern_match.rs:331:5 [INFO] [stdout] | [INFO] [stdout] 328 | enum Expr { [INFO] [stdout] | ---- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 331 | Sub(Box, Box), // 减法 [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_file_contents` is never used [INFO] [stdout] --> src/06_error_handling.rs:37:4 [INFO] [stdout] | [INFO] [stdout] 37 | fn read_file_contents(path: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_config` is never used [INFO] [stdout] --> src/06_error_handling.rs:83:4 [INFO] [stdout] | [INFO] [stdout] 83 | fn read_config(path: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unwrap_usage` is never used [INFO] [stdout] --> src/06_error_handling.rs:105:4 [INFO] [stdout] | [INFO] [stdout] 105 | fn unwrap_usage() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `with_match` is never used [INFO] [stdout] --> src/06_error_handling.rs:135:8 [INFO] [stdout] | [INFO] [stdout] 135 | fn with_match() -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `with_question_mark` is never used [INFO] [stdout] --> src/06_error_handling.rs:145:8 [INFO] [stdout] | [INFO] [stdout] 145 | fn with_question_mark() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_number_from_file` is never used [INFO] [stdout] --> src/06_error_handling.rs:154:4 [INFO] [stdout] | [INFO] [stdout] 154 | fn read_number_from_file() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `MyError` is never used [INFO] [stdout] --> src/06_error_handling.rs:162:6 [INFO] [stdout] | [INFO] [stdout] 162 | enum MyError { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `custom_error_demo` is never used [INFO] [stdout] --> src/06_error_handling.rs:183:4 [INFO] [stdout] | [INFO] [stdout] 183 | fn custom_error_demo() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `summarize_author` and `summarize_with_author` are never used [INFO] [stdout] --> src/07_trait_generics.rs:39:8 [INFO] [stdout] | [INFO] [stdout] 32 | trait Summary { [INFO] [stdout] | ------- methods in this trait [INFO] [stdout] ... [INFO] [stdout] 39 | fn summarize_author(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 44 | fn summarize_with_author(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Display` is never used [INFO] [stdout] --> src/07_trait_generics.rs:50:7 [INFO] [stdout] | [INFO] [stdout] 50 | trait Display { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `content` is never read [INFO] [stdout] --> src/07_trait_generics.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 57 | struct NewsArticle { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 61 | content: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `reply` and `retweet` are never read [INFO] [stdout] --> src/07_trait_generics.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 84 | struct Tweet { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 87 | reply: bool, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 88 | retweet: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `notify2` is never used [INFO] [stdout] --> src/07_trait_generics.rs:113:4 [INFO] [stdout] | [INFO] [stdout] 113 | fn notify2(item: &T) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `notify_same` is never used [INFO] [stdout] --> src/07_trait_generics.rs:120:4 [INFO] [stdout] | [INFO] [stdout] 120 | fn notify_same(item1: &T, item2: &T) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `notify3` is never used [INFO] [stdout] --> src/07_trait_generics.rs:128:4 [INFO] [stdout] | [INFO] [stdout] 128 | fn notify3(item: &(impl Summary + Display)) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `notify4` is never used [INFO] [stdout] --> src/07_trait_generics.rs:135:4 [INFO] [stdout] | [INFO] [stdout] 135 | fn notify4(item: &T) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `returns_summarizable` is never used [INFO] [stdout] --> src/07_trait_generics.rs:142:4 [INFO] [stdout] | [INFO] [stdout] 142 | fn returns_summarizable() -> impl Summary { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `x` and `y` are never used [INFO] [stdout] --> src/07_trait_generics.rs:244:8 [INFO] [stdout] | [INFO] [stdout] 242 | impl Point { [INFO] [stdout] | --------------------- methods in this implementation [INFO] [stdout] 243 | // 只为 y 是 f64 的 Point 实现 [INFO] [stdout] 244 | fn x(&self) -> &T { [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 248 | fn y(&self) -> &f64 { [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `some_function` is never used [INFO] [stdout] --> src/07_trait_generics.rs:256:4 [INFO] [stdout] | [INFO] [stdout] 256 | fn some_function(t: &T, u: &U) -> String [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Iterator2` is never used [INFO] [stdout] --> src/07_trait_generics.rs:343:7 [INFO] [stdout] | [INFO] [stdout] 343 | trait Iterator2 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Counter` is never constructed [INFO] [stdout] --> src/07_trait_generics.rs:364:8 [INFO] [stdout] | [INFO] [stdout] 364 | struct Counter { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/07_trait_generics.rs:370:8 [INFO] [stdout] | [INFO] [stdout] 369 | impl Counter { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] 370 | fn new(max: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Wrapper` is never constructed [INFO] [stdout] --> src/07_trait_generics.rs:391:8 [INFO] [stdout] | [INFO] [stdout] 391 | struct Wrapper> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `announce_and_return` is never used [INFO] [stdout] --> src/08_lifetime.rs:126:8 [INFO] [stdout] | [INFO] [stdout] 125 | impl<'a> ImportantExcerpt<'a> { [INFO] [stdout] | ----------------------------- method in this implementation [INFO] [stdout] 126 | fn announce_and_return(&self, announcement: &str) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `level` and `announce_and_return2` are never used [INFO] [stdout] --> src/08_lifetime.rs:153:8 [INFO] [stdout] | [INFO] [stdout] 152 | impl<'a> ImportantExcerpt<'a> { [INFO] [stdout] | ----------------------------- methods in this implementation [INFO] [stdout] 153 | fn level(&self) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 158 | fn announce_and_return2<'b>(&self, announcement: &'b str) -> &'a str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `first_word` is never used [INFO] [stdout] --> src/08_lifetime.rs:197:4 [INFO] [stdout] | [INFO] [stdout] 197 | fn first_word(s: &str) -> &str { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `longest_with_announcement` is never used [INFO] [stdout] --> src/08_lifetime.rs:228:4 [INFO] [stdout] | [INFO] [stdout] 228 | fn longest_with_announcement<'a, T>(x: &'a str, y: &'a str, ann: T) -> &'a str [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `call_with_fn` is never used [INFO] [stdout] --> src/10_closures.rs:183:4 [INFO] [stdout] | [INFO] [stdout] 183 | fn call_with_fn(f: &impl Fn() -> i32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `call_with_fn_mut` is never used [INFO] [stdout] --> src/10_closures.rs:188:4 [INFO] [stdout] | [INFO] [stdout] 188 | fn call_with_fn_mut(f: &mut impl FnMut() -> i32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `call_with_fn_once` is never used [INFO] [stdout] --> src/10_closures.rs:193:4 [INFO] [stdout] | [INFO] [stdout] 193 | fn call_with_fn_once(f: impl FnOnce()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/12_smart_pointers.rs:51:14 [INFO] [stdout] | [INFO] [stdout] 51 | Cons(i32, Box), // Box 有固定大小(指针大小) [INFO] [stdout] | ---- ^^^ ^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `List` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 51 - Cons(i32, Box), // Box 有固定大小(指针大小) [INFO] [stdout] 51 + Cons((), ()), // Box 有固定大小(指针大小) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `data` is never read [INFO] [stdout] --> src/12_smart_pointers.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 60 | struct LargeData { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 61 | data: [u8; 1000], [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `value` is never read [INFO] [stdout] --> src/12_smart_pointers.rs:130:9 [INFO] [stdout] | [INFO] [stdout] 129 | struct Node { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] 130 | value: i32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `tools` are never read [INFO] [stdout] --> src/12_smart_pointers.rs:159:9 [INFO] [stdout] | [INFO] [stdout] 158 | struct Owner { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 159 | name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 160 | tools: Vec>, // Weak引用,不增加strong_count [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `owner` are never read [INFO] [stdout] --> src/12_smart_pointers.rs:164:9 [INFO] [stdout] | [INFO] [stdout] 163 | struct Tool { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 164 | name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 165 | owner: Rc, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `hello_async` is never used [INFO] [stdout] --> src/13_async_await.rs:44:14 [INFO] [stdout] | [INFO] [stdout] 44 | async fn hello_async() { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SimpleFuture` is never constructed [INFO] [stdout] --> src/13_async_await.rs:74:8 [INFO] [stdout] | [INFO] [stdout] 74 | struct SimpleFuture { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Delay` is never constructed [INFO] [stdout] --> src/13_async_await.rs:111:12 [INFO] [stdout] | [INFO] [stdout] 111 | struct Delay { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sequential` is never used [INFO] [stdout] --> src/13_async_await.rs:168:14 [INFO] [stdout] | [INFO] [stdout] 168 | async fn sequential() { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Service` is never constructed [INFO] [stdout] --> src/13_async_await.rs:219:12 [INFO] [stdout] | [INFO] [stdout] 219 | struct Service { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `fetch` and `process` are never used [INFO] [stdout] --> src/13_async_await.rs:224:18 [INFO] [stdout] | [INFO] [stdout] 223 | impl Service { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 224 | async fn fetch(&self) -> String { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 228 | async fn process(&self, data: &str) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `crate_fn` is never used [INFO] [stdout] --> src/14_modules.rs:86:23 [INFO] [stdout] | [INFO] [stdout] 86 | pub(crate) fn crate_fn() { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `super_fn` is never used [INFO] [stdout] --> src/14_modules.rs:91:23 [INFO] [stdout] | [INFO] [stdout] 91 | pub(super) fn super_fn() { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `path_fn` is never used [INFO] [stdout] --> src/14_modules.rs:96:16 [INFO] [stdout] | [INFO] [stdout] 96 | pub fn path_fn() { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `internal_id` is never read [INFO] [stdout] --> src/14_modules.rs:131:13 [INFO] [stdout] | [INFO] [stdout] 128 | pub struct Rectangle { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 131 | internal_id: u32, // 私有字段 [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Rectangle` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_id` is never used [INFO] [stdout] --> src/14_modules.rs:145:20 [INFO] [stdout] | [INFO] [stdout] 134 | impl Rectangle { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 145 | pub fn get_id(&self) -> u32 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Unit` is never constructed [INFO] [stdout] --> src/14_modules.rs:154:20 [INFO] [stdout] | [INFO] [stdout] 154 | pub struct Unit; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `use_absolute` is never used [INFO] [stdout] --> src/14_modules.rs:249:20 [INFO] [stdout] | [INFO] [stdout] 249 | pub fn use_absolute() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add` is never used [INFO] [stdout] --> src/14_modules.rs:393:16 [INFO] [stdout] | [INFO] [stdout] 393 | pub fn add(a: i32, b: i32) -> i32 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `age` are never read [INFO] [stdout] --> src/15_macros.rs:392:9 [INFO] [stdout] | [INFO] [stdout] 391 | struct User { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 392 | name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 393 | age: u32, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `User` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.36s [INFO] running `Command { std: "docker" "inspect" "c4f9e3ae10053235aeebe8eca3dbf7f5a6b4bac98da9bde1395c982e7caac3aa", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c4f9e3ae10053235aeebe8eca3dbf7f5a6b4bac98da9bde1395c982e7caac3aa", kill_on_drop: false }` [INFO] [stdout] c4f9e3ae10053235aeebe8eca3dbf7f5a6b4bac98da9bde1395c982e7caac3aa