[INFO] cloning repository https://github.com/DreamLarva/learn-rust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/DreamLarva/learn-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDreamLarva%2Flearn-rust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDreamLarva%2Flearn-rust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 49c030b6911434276057c0fec515fe8be82aaa3d [INFO] checking DreamLarva/learn-rust/49c030b6911434276057c0fec515fe8be82aaa3d against master#ab869e094a907cc5d19b4080f22eccaf347f1f95 for pr-129604 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDreamLarva%2Flearn-rust" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/DreamLarva/learn-rust on toolchain ab869e094a907cc5d19b4080f22eccaf347f1f95 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/DreamLarva/learn-rust [INFO] finished tweaking git repo https://github.com/DreamLarva/learn-rust [INFO] tweaked toml for git repo https://github.com/DreamLarva/learn-rust written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/DreamLarva/learn-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" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded adder v0.1.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 8efb46cb86c0785ec12cd50fa98ab2ea8e1c6c20984bef317863cdafaa153879 [INFO] running `Command { std: "docker" "start" "-a" "8efb46cb86c0785ec12cd50fa98ab2ea8e1c6c20984bef317863cdafaa153879", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "8efb46cb86c0785ec12cd50fa98ab2ea8e1c6c20984bef317863cdafaa153879", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8efb46cb86c0785ec12cd50fa98ab2ea8e1c6c20984bef317863cdafaa153879", kill_on_drop: false }` [INFO] [stdout] 8efb46cb86c0785ec12cd50fa98ab2ea8e1c6c20984bef317863cdafaa153879 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 58a20a8dd2dcab3b9d64663014beb5c2c33a7694c0589c49d6b84e023b73b266 [INFO] running `Command { std: "docker" "start" "-a" "58a20a8dd2dcab3b9d64663014beb5c2c33a7694c0589c49d6b84e023b73b266", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.29 [INFO] [stderr] Compiling syn v1.0.76 [INFO] [stderr] Checking unicode-xid v0.2.2 [INFO] [stderr] Compiling libc v0.2.88 [INFO] [stderr] Compiling memchr v2.5.0 [INFO] [stderr] Checking threadPool v0.1.0 (/opt/rustwide/workdir/threadPool) [INFO] [stderr] Checking adder v0.1.0 [INFO] [stderr] Checking regex-syntax v0.6.27 [INFO] [stderr] Checking rand_core v0.3.1 [INFO] [stdout] warning: crate `threadPool` should have a snake case name [INFO] [stdout] | [INFO] [stdout] = help: convert the identifier to snake case: `thread_pool` [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking quote v1.0.9 [INFO] [stderr] Checking aho-corasick v0.7.18 [INFO] [stderr] Checking getrandom v0.2.2 [INFO] [stderr] Checking rand v0.5.6 [INFO] [stderr] Checking rand_core v0.6.2 [INFO] [stderr] Checking rand_chacha v0.3.0 [INFO] [stderr] Checking rand v0.8.3 [INFO] [stderr] Checking regex v1.6.0 [INFO] [stderr] Checking add-one v0.1.0 (/opt/rustwide/workdir/add-one) [INFO] [stderr] Checking adder v0.1.0 (/opt/rustwide/workdir/adder) [INFO] [stderr] Checking proc_marco v0.1.0 (/opt/rustwide/workdir/proc_marco) [INFO] [stderr] Checking attribute_macro v0.1.0 (/opt/rustwide/workdir/attribute_macro) [INFO] [stderr] Checking hello_macro_derive v0.1.0 (/opt/rustwide/workdir/derive_macro/hello_macro_derive) [INFO] [stdout] warning: unused import: `quote::quote` [INFO] [stdout] --> attribute_macro/src/lib.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use quote::quote; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `syn` [INFO] [stdout] --> attribute_macro/src/lib.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use syn; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `quote::quote` [INFO] [stdout] --> attribute_macro/src/lib.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use quote::quote; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `syn` [INFO] [stdout] --> attribute_macro/src/lib.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use syn; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking av v0.1.0 (/opt/rustwide/workdir/av) [INFO] [stdout] warning: unused import: `quote::quote` [INFO] [stdout] --> attribute_macro/src/lib.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use quote::quote; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `syn` [INFO] [stdout] --> attribute_macro/src/lib.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use syn; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] attr: "GET, "/"" [INFO] [stdout] item: "pub fn macro_attribute() { println!("fn macro_attribute") }" [INFO] [stdout] attr: "GET, "/"" [INFO] [stdout] item: "pub fn macro_attribute() { println!("fn macro_attribute") }" [INFO] [stderr] Checking hello_macro v0.1.0 (/opt/rustwide/workdir/derive_macro) [INFO] [stderr] Checking the_rust_programming_language v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `crate::front_of_house::hosting::add_to_waitlist` [INFO] [stdout] --> src/lib.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | use crate::front_of_house::hosting::add_to_waitlist; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::any::Any` [INFO] [stdout] --> src/ch07/mod.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | use std::any::Any; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/ch07/mod.rs:124:9 [INFO] [stdout] | [INFO] [stdout] 124 | use std::collections::HashMap; // 引入HashMap 的习惯用法 而不是 use std::collections; 在使用 collections::HashMap [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::Result` [INFO] [stdout] --> src/ch07/mod.rs:145:13 [INFO] [stdout] | [INFO] [stdout] 145 | use std::fmt::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Result as IoResult` [INFO] [stdout] --> src/ch07/mod.rs:146:13 [INFO] [stdout] | [INFO] [stdout] 146 | use std::io::Result as IoResult; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/ch07/mod.rs:180:58 [INFO] [stdout] | [INFO] [stdout] 180 | let secret_number = rand::thread_rng().gen_range((1..100)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 180 - let secret_number = rand::thread_rng().gen_range((1..100)); [INFO] [stdout] 180 + let secret_number = rand::thread_rng().gen_range(1..100); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/ch07/mod.rs:181:58 [INFO] [stdout] | [INFO] [stdout] 181 | let secret_number = rand::thread_rng().gen_range((1..=100)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 181 - let secret_number = rand::thread_rng().gen_range((1..=100)); [INFO] [stdout] 181 + let secret_number = rand::thread_rng().gen_range(1..=100); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cmp::Ordering` [INFO] [stdout] --> src/ch07/mod.rs:188:13 [INFO] [stdout] | [INFO] [stdout] 188 | use std::cmp::Ordering; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/ch07/mod.rs:189:13 [INFO] [stdout] | [INFO] [stdout] 189 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `cmp::Ordering` and `io` [INFO] [stdout] --> src/ch07/mod.rs:193:19 [INFO] [stdout] | [INFO] [stdout] 193 | use std::{cmp::Ordering, io}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/ch07/mod.rs:198:13 [INFO] [stdout] | [INFO] [stdout] 198 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Write` [INFO] [stdout] --> src/ch07/mod.rs:199:13 [INFO] [stdout] | [INFO] [stdout] 199 | use std::io::Write; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Write` and `self` [INFO] [stdout] --> src/ch07/mod.rs:203:23 [INFO] [stdout] | [INFO] [stdout] 203 | use std::io::{self, Write}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::*` [INFO] [stdout] --> src/ch07/mod.rs:209:13 [INFO] [stdout] | [INFO] [stdout] 209 | use std::collections::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/lib.rs:106:5 [INFO] [stdout] | [INFO] [stdout] 106 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Result as IoResult` [INFO] [stdout] --> src/lib.rs:116:5 [INFO] [stdout] | [INFO] [stdout] 116 | use std::io::Result as IoResult; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `borrow` and `cmp::Ordering` [INFO] [stdout] --> src/lib.rs:130:11 [INFO] [stdout] | [INFO] [stdout] 130 | use std::{borrow, cmp::Ordering}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Write` and `self` [INFO] [stdout] --> src/lib.rs:134:15 [INFO] [stdout] | [INFO] [stdout] 134 | use std::io::{self, Write}; // use io 本身 和 io::Write [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::*` [INFO] [stdout] --> src/lib.rs:137:5 [INFO] [stdout] | [INFO] [stdout] 137 | use std::collections::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::process` [INFO] [stdout] --> src/lib.rs:143:5 [INFO] [stdout] | [INFO] [stdout] 143 | use std::process; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::front_of_house::hosting::add_to_waitlist` [INFO] [stdout] --> src/lib.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | use crate::front_of_house::hosting::add_to_waitlist; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::any::Any` [INFO] [stdout] --> src/ch07/mod.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | use std::any::Any; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/ch07/mod.rs:124:9 [INFO] [stdout] | [INFO] [stdout] 124 | use std::collections::HashMap; // 引入HashMap 的习惯用法 而不是 use std::collections; 在使用 collections::HashMap [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::Result` [INFO] [stdout] --> src/ch07/mod.rs:145:13 [INFO] [stdout] | [INFO] [stdout] 145 | use std::fmt::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Result as IoResult` [INFO] [stdout] --> src/ch07/mod.rs:146:13 [INFO] [stdout] | [INFO] [stdout] 146 | use std::io::Result as IoResult; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/ch07/mod.rs:180:58 [INFO] [stdout] | [INFO] [stdout] 180 | let secret_number = rand::thread_rng().gen_range((1..100)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 180 - let secret_number = rand::thread_rng().gen_range((1..100)); [INFO] [stdout] 180 + let secret_number = rand::thread_rng().gen_range(1..100); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/ch07/mod.rs:181:58 [INFO] [stdout] | [INFO] [stdout] 181 | let secret_number = rand::thread_rng().gen_range((1..=100)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 181 - let secret_number = rand::thread_rng().gen_range((1..=100)); [INFO] [stdout] 181 + let secret_number = rand::thread_rng().gen_range(1..=100); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cmp::Ordering` [INFO] [stdout] --> src/ch07/mod.rs:188:13 [INFO] [stdout] | [INFO] [stdout] 188 | use std::cmp::Ordering; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/ch07/mod.rs:189:13 [INFO] [stdout] | [INFO] [stdout] 189 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `cmp::Ordering` and `io` [INFO] [stdout] --> src/ch07/mod.rs:193:19 [INFO] [stdout] | [INFO] [stdout] 193 | use std::{cmp::Ordering, io}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/ch07/mod.rs:198:13 [INFO] [stdout] | [INFO] [stdout] 198 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Write` [INFO] [stdout] --> src/ch07/mod.rs:199:13 [INFO] [stdout] | [INFO] [stdout] 199 | use std::io::Write; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Write` and `self` [INFO] [stdout] --> src/ch07/mod.rs:203:23 [INFO] [stdout] | [INFO] [stdout] 203 | use std::io::{self, Write}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::*` [INFO] [stdout] --> src/ch07/mod.rs:209:13 [INFO] [stdout] | [INFO] [stdout] 209 | use std::collections::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/lib.rs:106:5 [INFO] [stdout] | [INFO] [stdout] 106 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Result as IoResult` [INFO] [stdout] --> src/lib.rs:116:5 [INFO] [stdout] | [INFO] [stdout] 116 | use std::io::Result as IoResult; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `borrow` and `cmp::Ordering` [INFO] [stdout] --> src/lib.rs:130:11 [INFO] [stdout] | [INFO] [stdout] 130 | use std::{borrow, cmp::Ordering}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Write` and `self` [INFO] [stdout] --> src/lib.rs:134:15 [INFO] [stdout] | [INFO] [stdout] 134 | use std::io::{self, Write}; // use io 本身 和 io::Write [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::*` [INFO] [stdout] --> src/lib.rs:137:5 [INFO] [stdout] | [INFO] [stdout] 137 | use std::collections::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::process` [INFO] [stdout] --> src/lib.rs:143:5 [INFO] [stdout] | [INFO] [stdout] 143 | use std::process; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `a` [INFO] [stdout] --> src/ch07/mod.rs:22:13 [INFO] [stdout] | [INFO] [stdout] 22 | let a = super::plant::generate_struct(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_a` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `order1` [INFO] [stdout] --> src/ch07/mod.rs:109:9 [INFO] [stdout] | [INFO] [stdout] 109 | let order1 = menu::Appetizer::Soup; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_order1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `order2` [INFO] [stdout] --> src/ch07/mod.rs:110:9 [INFO] [stdout] | [INFO] [stdout] 110 | let order2 = menu::Appetizer::Salad; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_order2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `secret_number` [INFO] [stdout] --> src/ch07/mod.rs:180:13 [INFO] [stdout] | [INFO] [stdout] 180 | let secret_number = rand::thread_rng().gen_range((1..100)); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_secret_number` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `order1` [INFO] [stdout] --> src/lib.rs:98:13 [INFO] [stdout] | [INFO] [stdout] 98 | let order1 = back_of_house::Appetizer::Soup; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_order1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `order2` [INFO] [stdout] --> src/lib.rs:99:13 [INFO] [stdout] | [INFO] [stdout] 99 | let order2 = back_of_house::Appetizer::Salad; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_order2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c1` [INFO] [stdout] --> src/lib.rs:313:16 [INFO] [stdout] | [INFO] [stdout] 313 | pub fn mix(c1: PrimaryColor, c2: PrimaryColor) -> SecondaryColor { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_c1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c2` [INFO] [stdout] --> src/lib.rs:313:34 [INFO] [stdout] | [INFO] [stdout] 313 | pub fn mix(c1: PrimaryColor, c2: PrimaryColor) -> SecondaryColor { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_c2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `serve_order` is never used [INFO] [stdout] --> src/lib.rs:21:4 [INFO] [stdout] | [INFO] [stdout] 21 | fn serve_order() {} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/lib.rs:23:4 [INFO] [stdout] | [INFO] [stdout] 23 | fn main() {} [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `eat_at_restaurant` is never used [INFO] [stdout] --> src/lib.rs:97:12 [INFO] [stdout] | [INFO] [stdout] 97 | pub fn eat_at_restaurant() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fix_incorrect_order` is never used [INFO] [stdout] --> src/lib.rs:27:8 [INFO] [stdout] | [INFO] [stdout] 27 | fn fix_incorrect_order() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `cook_order` is never used [INFO] [stdout] --> src/lib.rs:33:8 [INFO] [stdout] | [INFO] [stdout] 33 | fn cook_order() {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `seasonal_fruit` is never read [INFO] [stdout] --> src/lib.rs:42:9 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct Breakfast { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 42 | seasonal_fruit: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Appetizer` is never used [INFO] [stdout] --> src/lib.rs:55:14 [INFO] [stdout] | [INFO] [stdout] 55 | pub enum Appetizer { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/ch07/mod.rs:85:8 [INFO] [stdout] | [INFO] [stdout] 85 | pub fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `breathe_in` is never used [INFO] [stdout] --> src/ch07/mod.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | fn breathe_in() { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clarinet` is never used [INFO] [stdout] --> src/ch07/mod.rs:9:16 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn clarinet() { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `private_fn` is never used [INFO] [stdout] --> src/ch07/mod.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | fn private_fn() {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Vegetable` is never constructed [INFO] [stdout] --> src/ch07/mod.rs:32:16 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Vegetable { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/ch07/mod.rs:38:16 [INFO] [stdout] | [INFO] [stdout] 37 | impl Vegetable { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 38 | pub fn new(name: &str) -> Vegetable { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_struct` is never used [INFO] [stdout] --> src/ch07/mod.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn generate_struct() -> Vegetable { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Appetizer` is never used [INFO] [stdout] --> src/ch07/mod.rs:56:14 [INFO] [stdout] | [INFO] [stdout] 56 | pub enum Appetizer { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clarinet_trio` is never used [INFO] [stdout] --> src/ch07/mod.rs:69:12 [INFO] [stdout] | [INFO] [stdout] 69 | pub fn clarinet_trio() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clarinet` is never used [INFO] [stdout] --> src/ch07/sound1.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | pub fn clarinet() { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clarinet` is never used [INFO] [stdout] --> src/ch07/sound2/instrument.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn clarinet() { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clarinet` is never used [INFO] [stdout] --> src/ch07/mod.rs:156:24 [INFO] [stdout] | [INFO] [stdout] 156 | pub fn clarinet() { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clarinet_trio` is never used [INFO] [stdout] --> src/ch07/mod.rs:166:20 [INFO] [stdout] | [INFO] [stdout] 166 | pub fn clarinet_trio() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `a` [INFO] [stdout] --> src/ch07/mod.rs:22:13 [INFO] [stdout] | [INFO] [stdout] 22 | let a = super::plant::generate_struct(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_a` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `order1` [INFO] [stdout] --> src/ch07/mod.rs:109:9 [INFO] [stdout] | [INFO] [stdout] 109 | let order1 = menu::Appetizer::Soup; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_order1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `order2` [INFO] [stdout] --> src/ch07/mod.rs:110:9 [INFO] [stdout] | [INFO] [stdout] 110 | let order2 = menu::Appetizer::Salad; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_order2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `secret_number` [INFO] [stdout] --> src/ch07/mod.rs:180:13 [INFO] [stdout] | [INFO] [stdout] 180 | let secret_number = rand::thread_rng().gen_range((1..100)); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_secret_number` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `order1` [INFO] [stdout] --> src/lib.rs:98:13 [INFO] [stdout] | [INFO] [stdout] 98 | let order1 = back_of_house::Appetizer::Soup; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_order1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `order2` [INFO] [stdout] --> src/lib.rs:99:13 [INFO] [stdout] | [INFO] [stdout] 99 | let order2 = back_of_house::Appetizer::Salad; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_order2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 48 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c1` [INFO] [stdout] --> src/lib.rs:313:16 [INFO] [stdout] | [INFO] [stdout] 313 | pub fn mix(c1: PrimaryColor, c2: PrimaryColor) -> SecondaryColor { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_c1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c2` [INFO] [stdout] --> src/lib.rs:313:34 [INFO] [stdout] | [INFO] [stdout] 313 | pub fn mix(c1: PrimaryColor, c2: PrimaryColor) -> SecondaryColor { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_c2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `serve_order` is never used [INFO] [stdout] --> src/lib.rs:21:4 [INFO] [stdout] | [INFO] [stdout] 21 | fn serve_order() {} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `eat_at_restaurant` is never used [INFO] [stdout] --> src/lib.rs:97:12 [INFO] [stdout] | [INFO] [stdout] 97 | pub fn eat_at_restaurant() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fix_incorrect_order` is never used [INFO] [stdout] --> src/lib.rs:27:8 [INFO] [stdout] | [INFO] [stdout] 27 | fn fix_incorrect_order() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `cook_order` is never used [INFO] [stdout] --> src/lib.rs:33:8 [INFO] [stdout] | [INFO] [stdout] 33 | fn cook_order() {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `seasonal_fruit` is never read [INFO] [stdout] --> src/lib.rs:42:9 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct Breakfast { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 42 | seasonal_fruit: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Appetizer` is never used [INFO] [stdout] --> src/lib.rs:55:14 [INFO] [stdout] | [INFO] [stdout] 55 | pub enum Appetizer { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/ch07/mod.rs:85:8 [INFO] [stdout] | [INFO] [stdout] 85 | pub fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `breathe_in` is never used [INFO] [stdout] --> src/ch07/mod.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | fn breathe_in() { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clarinet` is never used [INFO] [stdout] --> src/ch07/mod.rs:9:16 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn clarinet() { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `private_fn` is never used [INFO] [stdout] --> src/ch07/mod.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | fn private_fn() {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Vegetable` is never constructed [INFO] [stdout] --> src/ch07/mod.rs:32:16 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Vegetable { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/ch07/mod.rs:38:16 [INFO] [stdout] | [INFO] [stdout] 37 | impl Vegetable { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 38 | pub fn new(name: &str) -> Vegetable { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_struct` is never used [INFO] [stdout] --> src/ch07/mod.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn generate_struct() -> Vegetable { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Appetizer` is never used [INFO] [stdout] --> src/ch07/mod.rs:56:14 [INFO] [stdout] | [INFO] [stdout] 56 | pub enum Appetizer { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clarinet_trio` is never used [INFO] [stdout] --> src/ch07/mod.rs:69:12 [INFO] [stdout] | [INFO] [stdout] 69 | pub fn clarinet_trio() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clarinet` is never used [INFO] [stdout] --> src/ch07/sound1.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | pub fn clarinet() { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clarinet` is never used [INFO] [stdout] --> src/ch07/sound2/instrument.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn clarinet() { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clarinet` is never used [INFO] [stdout] --> src/ch07/mod.rs:156:24 [INFO] [stdout] | [INFO] [stdout] 156 | pub fn clarinet() { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clarinet_trio` is never used [INFO] [stdout] --> src/ch07/mod.rs:166:20 [INFO] [stdout] | [INFO] [stdout] 166 | pub fn clarinet_trio() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 47 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `test2` is never used [INFO] [stdout] --> tests/integration_test.rs:38:4 [INFO] [stdout] | [INFO] [stdout] 38 | fn test2() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/ch02.rs:17:54 [INFO] [stdout] | [INFO] [stdout] 17 | let secret_number = rand::thread_rng().gen_range((1..=100)); // 这个也能运行 [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 17 - let secret_number = rand::thread_rng().gen_range((1..=100)); // 这个也能运行 [INFO] [stdout] 17 + let secret_number = rand::thread_rng().gen_range(1..=100); // 这个也能运行 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/ch03.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | /** 基本类型 */ [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 7 | // 直接的赋值能够直接推断出值的类型 [INFO] [stdout] 8 | let a = 1; // 默认为 i32 [INFO] [stdout] | ---------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::any::Any` [INFO] [stdout] --> src/ch07/mod.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | use std::any::Any; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/ch07/mod.rs:124:9 [INFO] [stdout] | [INFO] [stdout] 124 | use std::collections::HashMap; // 引入HashMap 的习惯用法 而不是 use std::collections; 在使用 collections::HashMap [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::Result` [INFO] [stdout] --> src/ch07/mod.rs:145:13 [INFO] [stdout] | [INFO] [stdout] 145 | use std::fmt::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Result as IoResult` [INFO] [stdout] --> src/ch07/mod.rs:146:13 [INFO] [stdout] | [INFO] [stdout] 146 | use std::io::Result as IoResult; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/ch07/mod.rs:180:58 [INFO] [stdout] | [INFO] [stdout] 180 | let secret_number = rand::thread_rng().gen_range((1..100)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 180 - let secret_number = rand::thread_rng().gen_range((1..100)); [INFO] [stdout] 180 + let secret_number = rand::thread_rng().gen_range(1..100); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/ch07/mod.rs:181:58 [INFO] [stdout] | [INFO] [stdout] 181 | let secret_number = rand::thread_rng().gen_range((1..=100)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 181 - let secret_number = rand::thread_rng().gen_range((1..=100)); [INFO] [stdout] 181 + let secret_number = rand::thread_rng().gen_range(1..=100); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cmp::Ordering` [INFO] [stdout] --> src/ch07/mod.rs:188:13 [INFO] [stdout] | [INFO] [stdout] 188 | use std::cmp::Ordering; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/ch07/mod.rs:189:13 [INFO] [stdout] | [INFO] [stdout] 189 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `cmp::Ordering` and `io` [INFO] [stdout] --> src/ch07/mod.rs:193:19 [INFO] [stdout] | [INFO] [stdout] 193 | use std::{cmp::Ordering, io}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/ch07/mod.rs:198:13 [INFO] [stdout] | [INFO] [stdout] 198 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Write` [INFO] [stdout] --> src/ch07/mod.rs:199:13 [INFO] [stdout] | [INFO] [stdout] 199 | use std::io::Write; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Write` and `self` [INFO] [stdout] --> src/ch07/mod.rs:203:23 [INFO] [stdout] | [INFO] [stdout] 203 | use std::io::{self, Write}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::*` [INFO] [stdout] --> src/ch07/mod.rs:209:13 [INFO] [stdout] | [INFO] [stdout] 209 | use std::collections::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::env::temp_dir` [INFO] [stdout] --> src/ch08_hashmap.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::env::temp_dir; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `File` and `self` [INFO] [stdout] --> src/ch08_hashmap.rs:5:15 [INFO] [stdout] | [INFO] [stdout] 5 | use std::fs::{self, File}; [INFO] [stdout] | ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/ch08_hashmap.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::ErrorKind` [INFO] [stdout] --> src/ch08_hashmap.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::io::ErrorKind; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Read` [INFO] [stdout] --> src/ch08_hashmap.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::io::Read; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Add` [INFO] [stdout] --> src/ch08_hashmap.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::ops::Add; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::*` [INFO] [stdout] --> src/ch08_string.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::collections::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `File` and `self` [INFO] [stdout] --> src/ch08_string.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | use std::fs::{self, File}; [INFO] [stdout] | ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/ch08_string.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::ErrorKind` [INFO] [stdout] --> src/ch08_string.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io::ErrorKind; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::*` [INFO] [stdout] --> src/ch08_vec.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::collections::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `File` and `self` [INFO] [stdout] --> src/ch08_vec.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | use std::fs::{self, File}; [INFO] [stdout] | ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/ch08_vec.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::ErrorKind` [INFO] [stdout] --> src/ch08_vec.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io::ErrorKind; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Read` [INFO] [stdout] --> src/ch08_vec.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::io::Read; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Add` [INFO] [stdout] --> src/ch08_vec.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::ops::Add; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/ch09.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::future::Future` [INFO] [stdout] --> src/ch09.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::future::Future; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::Display` [INFO] [stdout] --> src/ch13.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fmt::Display; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::DerefMut` [INFO] [stdout] --> src/ch15.rs:303:5 [INFO] [stdout] | [INFO] [stdout] 303 | use std::ops::DerefMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Ref` [INFO] [stdout] --> src/ch15_04.rs:1:17 [INFO] [stdout] | [INFO] [stdout] 1 | use std::cell::{Ref, RefCell}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ptr::read_volatile` [INFO] [stdout] --> src/ch16.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | use std::ptr::read_volatile; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> src/ch16.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> src/ch17.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::panic::RefUnwindSafe` [INFO] [stdout] --> src/ch19.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::panic::RefUnwindSafe; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/ch19.rs:507:13 [INFO] [stdout] | [INFO] [stdout] 507 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Error` [INFO] [stdout] --> src/ch19.rs:508:13 [INFO] [stdout] | [INFO] [stdout] 508 | use std::io::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self::proc_macro::TokenStream` [INFO] [stdout] --> src/ch19_06.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | use self::proc_macro::TokenStream; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `quote::quote` [INFO] [stdout] --> src/ch19_06.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | use quote::quote; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `syn` [INFO] [stdout] --> src/ch19_06.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | use syn; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::*` [INFO] [stdout] --> src/ch15_05.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::collections::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `hex::hex` [INFO] [stdout] --> src/main.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | use hex::hex; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Ref` [INFO] [stdout] --> src/main.rs:62:17 [INFO] [stdout] | [INFO] [stdout] 62 | use std::cell::{Ref, RefCell}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HashMap` and `hash_map` [INFO] [stdout] --> src/main.rs:63:24 [INFO] [stdout] | [INFO] [stdout] 63 | use std::collections::{hash_map, HashMap}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Debug` and `Display` [INFO] [stdout] --> src/main.rs:64:16 [INFO] [stdout] | [INFO] [stdout] 64 | use std::fmt::{Debug, Display}; [INFO] [stdout] | ^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Write` [INFO] [stdout] --> src/main.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | use std::io::Write; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::slice::from_raw_parts` [INFO] [stdout] --> src/main.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 67 | use std::slice::from_raw_parts; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::from_utf8_unchecked` [INFO] [stdout] --> src/main.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 68 | use std::str::from_utf8_unchecked; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `env`, `fs`, and `process` [INFO] [stdout] --> src/main.rs:69:11 [INFO] [stdout] | [INFO] [stdout] 69 | use std::{env, fs, process}; [INFO] [stdout] | ^^^ ^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `the_rust_programming_language::Config` [INFO] [stdout] --> src/main.rs:70:5 [INFO] [stdout] | [INFO] [stdout] 70 | use the_rust_programming_language::Config; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/ch02.rs:17:54 [INFO] [stdout] | [INFO] [stdout] 17 | let secret_number = rand::thread_rng().gen_range((1..=100)); // 这个也能运行 [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 17 - let secret_number = rand::thread_rng().gen_range((1..=100)); // 这个也能运行 [INFO] [stdout] 17 + let secret_number = rand::thread_rng().gen_range(1..=100); // 这个也能运行 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/ch03.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | /** 基本类型 */ [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 7 | // 直接的赋值能够直接推断出值的类型 [INFO] [stdout] 8 | let a = 1; // 默认为 i32 [INFO] [stdout] | ---------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::any::Any` [INFO] [stdout] --> src/ch07/mod.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | use std::any::Any; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/ch07/mod.rs:124:9 [INFO] [stdout] | [INFO] [stdout] 124 | use std::collections::HashMap; // 引入HashMap 的习惯用法 而不是 use std::collections; 在使用 collections::HashMap [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::Result` [INFO] [stdout] --> src/ch07/mod.rs:145:13 [INFO] [stdout] | [INFO] [stdout] 145 | use std::fmt::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Result as IoResult` [INFO] [stdout] --> src/ch07/mod.rs:146:13 [INFO] [stdout] | [INFO] [stdout] 146 | use std::io::Result as IoResult; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/ch07/mod.rs:180:58 [INFO] [stdout] | [INFO] [stdout] 180 | let secret_number = rand::thread_rng().gen_range((1..100)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 180 - let secret_number = rand::thread_rng().gen_range((1..100)); [INFO] [stdout] 180 + let secret_number = rand::thread_rng().gen_range(1..100); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/ch07/mod.rs:181:58 [INFO] [stdout] | [INFO] [stdout] 181 | let secret_number = rand::thread_rng().gen_range((1..=100)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 181 - let secret_number = rand::thread_rng().gen_range((1..=100)); [INFO] [stdout] 181 + let secret_number = rand::thread_rng().gen_range(1..=100); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cmp::Ordering` [INFO] [stdout] --> src/ch07/mod.rs:188:13 [INFO] [stdout] | [INFO] [stdout] 188 | use std::cmp::Ordering; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/ch07/mod.rs:189:13 [INFO] [stdout] | [INFO] [stdout] 189 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `cmp::Ordering` and `io` [INFO] [stdout] --> src/ch07/mod.rs:193:19 [INFO] [stdout] | [INFO] [stdout] 193 | use std::{cmp::Ordering, io}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/ch07/mod.rs:198:13 [INFO] [stdout] | [INFO] [stdout] 198 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Write` [INFO] [stdout] --> src/ch07/mod.rs:199:13 [INFO] [stdout] | [INFO] [stdout] 199 | use std::io::Write; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Write` and `self` [INFO] [stdout] --> src/ch07/mod.rs:203:23 [INFO] [stdout] | [INFO] [stdout] 203 | use std::io::{self, Write}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::*` [INFO] [stdout] --> src/ch07/mod.rs:209:13 [INFO] [stdout] | [INFO] [stdout] 209 | use std::collections::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::env::temp_dir` [INFO] [stdout] --> src/ch08_hashmap.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::env::temp_dir; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `File` and `self` [INFO] [stdout] --> src/ch08_hashmap.rs:5:15 [INFO] [stdout] | [INFO] [stdout] 5 | use std::fs::{self, File}; [INFO] [stdout] | ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/ch08_hashmap.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::ErrorKind` [INFO] [stdout] --> src/ch08_hashmap.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::io::ErrorKind; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Read` [INFO] [stdout] --> src/ch08_hashmap.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::io::Read; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Add` [INFO] [stdout] --> src/ch08_hashmap.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::ops::Add; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::*` [INFO] [stdout] --> src/ch08_string.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::collections::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `File` and `self` [INFO] [stdout] --> src/ch08_string.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | use std::fs::{self, File}; [INFO] [stdout] | ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/ch08_string.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::ErrorKind` [INFO] [stdout] --> src/ch08_string.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io::ErrorKind; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::*` [INFO] [stdout] --> src/ch08_vec.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::collections::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `File` and `self` [INFO] [stdout] --> src/ch08_vec.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | use std::fs::{self, File}; [INFO] [stdout] | ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/ch08_vec.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::ErrorKind` [INFO] [stdout] --> src/ch08_vec.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io::ErrorKind; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Read` [INFO] [stdout] --> src/ch08_vec.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::io::Read; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Add` [INFO] [stdout] --> src/ch08_vec.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::ops::Add; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/ch09.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::future::Future` [INFO] [stdout] --> src/ch09.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::future::Future; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::Display` [INFO] [stdout] --> src/ch13.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fmt::Display; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: cannot test inner items [INFO] [stdout] --> src/ch13.rs:389:9 [INFO] [stdout] | [INFO] [stdout] 389 | #[test] [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unnameable_test_items)]` on by default [INFO] [stdout] = note: this warning originates in the attribute macro `test` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::DerefMut` [INFO] [stdout] --> src/ch15.rs:303:5 [INFO] [stdout] | [INFO] [stdout] 303 | use std::ops::DerefMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Ref` [INFO] [stdout] --> src/ch15_04.rs:1:17 [INFO] [stdout] | [INFO] [stdout] 1 | use std::cell::{Ref, RefCell}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ptr::read_volatile` [INFO] [stdout] --> src/ch16.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | use std::ptr::read_volatile; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> src/ch16.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> src/ch17.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::panic::RefUnwindSafe` [INFO] [stdout] --> src/ch19.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::panic::RefUnwindSafe; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/ch19.rs:507:13 [INFO] [stdout] | [INFO] [stdout] 507 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Error` [INFO] [stdout] --> src/ch19.rs:508:13 [INFO] [stdout] | [INFO] [stdout] 508 | use std::io::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self::proc_macro::TokenStream` [INFO] [stdout] --> src/ch19_06.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | use self::proc_macro::TokenStream; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `quote::quote` [INFO] [stdout] --> src/ch19_06.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | use quote::quote; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `syn` [INFO] [stdout] --> src/ch19_06.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | use syn; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::*` [INFO] [stdout] --> src/ch15_05.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::collections::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `hex::hex` [INFO] [stdout] --> src/main.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | use hex::hex; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Ref` [INFO] [stdout] --> src/main.rs:62:17 [INFO] [stdout] | [INFO] [stdout] 62 | use std::cell::{Ref, RefCell}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HashMap` and `hash_map` [INFO] [stdout] --> src/main.rs:63:24 [INFO] [stdout] | [INFO] [stdout] 63 | use std::collections::{hash_map, HashMap}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Debug` and `Display` [INFO] [stdout] --> src/main.rs:64:16 [INFO] [stdout] | [INFO] [stdout] 64 | use std::fmt::{Debug, Display}; [INFO] [stdout] | ^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Write` [INFO] [stdout] --> src/main.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | use std::io::Write; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::slice::from_raw_parts` [INFO] [stdout] --> src/main.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 67 | use std::slice::from_raw_parts; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::from_utf8_unchecked` [INFO] [stdout] --> src/main.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 68 | use std::str::from_utf8_unchecked; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `env`, `fs`, and `process` [INFO] [stdout] --> src/main.rs:69:11 [INFO] [stdout] | [INFO] [stdout] 69 | use std::{env, fs, process}; [INFO] [stdout] | ^^^ ^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `the_rust_programming_language::Config` [INFO] [stdout] --> src/main.rs:70:5 [INFO] [stdout] | [INFO] [stdout] 70 | use the_rust_programming_language::Config; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Read` [INFO] [stdout] --> src/ch08_string.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::io::Read; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `a` is never read [INFO] [stdout] --> src/ch03.rs:123:5 [INFO] [stdout] | [INFO] [stdout] 123 | a = [1, 2, 3, 4, 5]; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ch04.rs:212:13 [INFO] [stdout] | [INFO] [stdout] 212 | let mut s = String::from("hello"); [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ch04.rs:299:13 [INFO] [stdout] | [INFO] [stdout] 299 | let mut s = String::from("hello world"); [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `count` is never read [INFO] [stdout] --> src/ch06.rs:285:18 [INFO] [stdout] | [INFO] [stdout] 285 | _ => count += 1, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `count` is never read [INFO] [stdout] --> src/ch06.rs:295:13 [INFO] [stdout] | [INFO] [stdout] 295 | count += 1; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ch08_string.rs:20:13 [INFO] [stdout] | [INFO] [stdout] 20 | let mut a = String::new(); // 使用类似Vector 的方法 新建一个空的字符串 [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ch08_string.rs:61:13 [INFO] [stdout] | [INFO] [stdout] 61 | let mut s3 = s1 + &s2 + &s4; // 注意 s1 被移动了,不能继续使用 s2 s3 可以继续使用 [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ch08_string.rs:62:13 [INFO] [stdout] | [INFO] [stdout] 62 | let mut t3 = String::from("") + &s2 + &s3; [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/ch08_vec.rs:137:13 [INFO] [stdout] | [INFO] [stdout] 136 | Float => (), [INFO] [stdout] | ----- matches any value [INFO] [stdout] 137 | Text => (), [INFO] [stdout] | ^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/ch08_vec.rs:138:13 [INFO] [stdout] | [INFO] [stdout] 136 | Float => (), [INFO] [stdout] | ----- matches any value [INFO] [stdout] 137 | Text => (), [INFO] [stdout] 138 | Int => (), [INFO] [stdout] | ^^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ch10.rs:82:13 [INFO] [stdout] | [INFO] [stdout] 82 | let mut p = Point { x: 5, y: 10 }; [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `result` is never read [INFO] [stdout] --> src/ch10.rs:744:13 [INFO] [stdout] | [INFO] [stdout] 744 | result = longest(string1.as_str(), string2.as_str()); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ch10.rs:904:13 [INFO] [stdout] | [INFO] [stdout] 904 | let mut s: &'static str = "I have a static lifetime."; [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `z` is never read [INFO] [stdout] --> src/ch15.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 113 | z = &mut 4; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Read` [INFO] [stdout] --> src/ch08_string.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::io::Read; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ch15.rs:157:13 [INFO] [stdout] | [INFO] [stdout] 157 | let mut z = MyBox::new(x); [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `a` is never read [INFO] [stdout] --> src/ch03.rs:123:5 [INFO] [stdout] | [INFO] [stdout] 123 | a = [1, 2, 3, 4, 5]; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ch15_03.rs:112:13 [INFO] [stdout] | [INFO] [stdout] 112 | let mut log = self.log.borrow(); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ch04.rs:212:13 [INFO] [stdout] | [INFO] [stdout] 212 | let mut s = String::from("hello"); [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ch04.rs:299:13 [INFO] [stdout] | [INFO] [stdout] 299 | let mut s = String::from("hello world"); [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `count` is never read [INFO] [stdout] --> src/ch06.rs:285:18 [INFO] [stdout] | [INFO] [stdout] 285 | _ => count += 1, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `count` is never read [INFO] [stdout] --> src/ch06.rs:295:13 [INFO] [stdout] | [INFO] [stdout] 295 | count += 1; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function cannot return without recursing [INFO] [stdout] --> src/ch18.rs:85:9 [INFO] [stdout] | [INFO] [stdout] 85 | fn print_coordinates(&(x, y): &(i32, i32)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing [INFO] [stdout] ... [INFO] [stdout] 89 | print_coordinates(&point); [INFO] [stdout] | ------------------------- recursive call site [INFO] [stdout] | [INFO] [stdout] = help: a `loop` may express intention better if this is on purpose [INFO] [stdout] = note: `#[warn(unconditional_recursion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ch08_string.rs:20:13 [INFO] [stdout] | [INFO] [stdout] 20 | let mut a = String::new(); // 使用类似Vector 的方法 新建一个空的字符串 [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ch08_string.rs:61:13 [INFO] [stdout] | [INFO] [stdout] 61 | let mut s3 = s1 + &s2 + &s4; // 注意 s1 被移动了,不能继续使用 s2 s3 可以继续使用 [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ch08_string.rs:62:13 [INFO] [stdout] | [INFO] [stdout] 62 | let mut t3 = String::from("") + &s2 + &s3; [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/ch08_vec.rs:137:13 [INFO] [stdout] | [INFO] [stdout] 136 | Float => (), [INFO] [stdout] | ----- matches any value [INFO] [stdout] 137 | Text => (), [INFO] [stdout] | ^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/ch01.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch02_00_guessing_game_tutorial` is never used [INFO] [stdout] --> src/ch02.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn ch02_00_guessing_game_tutorial() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch03_02_data_types` is never used [INFO] [stdout] --> src/ch03.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn ch03_02_data_types() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch03_03_how_functions_work` is never used [INFO] [stdout] --> src/ch03.rs:135:8 [INFO] [stdout] | [INFO] [stdout] 135 | pub fn ch03_03_how_functions_work() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch03_05_control_flow` is never used [INFO] [stdout] --> src/ch03.rs:181:8 [INFO] [stdout] | [INFO] [stdout] 181 | pub fn ch03_05_control_flow() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fun_2` is never used [INFO] [stdout] --> src/ch03.rs:267:4 [INFO] [stdout] | [INFO] [stdout] 267 | fn fun_2() {} [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch04_01_what_is_ownership` is never used [INFO] [stdout] --> src/ch04.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn ch04_01_what_is_ownership() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch04_02_references_and_borrowing` is never used [INFO] [stdout] --> src/ch04.rs:140:8 [INFO] [stdout] | [INFO] [stdout] 140 | pub fn ch04_02_references_and_borrowing() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch04_03_slices` is never used [INFO] [stdout] --> src/ch04.rs:239:8 [INFO] [stdout] | [INFO] [stdout] 239 | pub fn ch04_03_slices() { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch05_01_defining_structs` is never used [INFO] [stdout] --> src/ch05.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn ch05_01_defining_structs() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch05_02_example_structs` is never used [INFO] [stdout] --> src/ch05.rs:166:8 [INFO] [stdout] | [INFO] [stdout] 166 | pub fn ch05_02_example_structs() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch05_03_method_syntax` is never used [INFO] [stdout] --> src/ch05.rs:235:8 [INFO] [stdout] | [INFO] [stdout] 235 | pub fn ch05_03_method_syntax() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `area`, `set_height`, `set_weight`, and `test1` are never used [INFO] [stdout] --> src/ch05.rs:248:16 [INFO] [stdout] | [INFO] [stdout] 247 | impl Rectangle { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] 248 | fn area(&self) -> u32 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 254 | fn set_height(&mut self, new_value: u32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 258 | fn set_weight(&mut self, new_value: u32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 263 | fn test1(self) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `area` and `can_hold` are never used [INFO] [stdout] --> src/ch05.rs:306:16 [INFO] [stdout] | [INFO] [stdout] 305 | impl Rectangle { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] 306 | fn area(&self) -> u32 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 310 | fn can_hold(&self, other: &Rectangle) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `square` is never used [INFO] [stdout] --> src/ch05.rs:346:16 [INFO] [stdout] | [INFO] [stdout] 344 | impl Rectangle { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 345 | // 参数中 没有 &self 相当于一个静态方法 [INFO] [stdout] 346 | fn square(size: u32) -> Rectangle { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `square` is never used [INFO] [stdout] --> src/ch05.rs:367:16 [INFO] [stdout] | [INFO] [stdout] 366 | impl Rectangle { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 367 | fn square(size: u32) -> Rectangle { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `area` is never used [INFO] [stdout] --> src/ch05.rs:376:16 [INFO] [stdout] | [INFO] [stdout] 375 | impl Rectangle { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] 376 | fn area(&self) -> u32 { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `can_hold` is never used [INFO] [stdout] --> src/ch05.rs:382:16 [INFO] [stdout] | [INFO] [stdout] 381 | impl Rectangle { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] 382 | fn can_hold(&self, other: &Rectangle) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch06_01_defining_an_enum` is never used [INFO] [stdout] --> src/ch06.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn ch06_01_defining_an_enum() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `call` is never used [INFO] [stdout] --> src/ch06.rs:91:16 [INFO] [stdout] | [INFO] [stdout] 90 | impl Message { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] 91 | fn call(&self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch06_02_match` is never used [INFO] [stdout] --> src/ch06.rs:134:8 [INFO] [stdout] | [INFO] [stdout] 134 | pub fn ch06_02_match() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `UsState` is never used [INFO] [stdout] --> src/ch06.rs:236:6 [INFO] [stdout] | [INFO] [stdout] 236 | enum UsState { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `B1` is never used [INFO] [stdout] --> src/ch06.rs:243:6 [INFO] [stdout] | [INFO] [stdout] 243 | enum B1 { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Coin` is never used [INFO] [stdout] --> src/ch06.rs:249:6 [INFO] [stdout] | [INFO] [stdout] 249 | enum Coin { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch06_03_if_let` is never used [INFO] [stdout] --> src/ch06.rs:257:8 [INFO] [stdout] | [INFO] [stdout] 257 | pub fn ch06_03_if_let() { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch06_03_matches` is never used [INFO] [stdout] --> src/ch06.rs:303:8 [INFO] [stdout] | [INFO] [stdout] 303 | pub fn ch06_03_matches() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/ch07/mod.rs:85:8 [INFO] [stdout] | [INFO] [stdout] 85 | pub fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `breathe_in` is never used [INFO] [stdout] --> src/ch07/mod.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | fn breathe_in() { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clarinet` is never used [INFO] [stdout] --> src/ch07/mod.rs:9:16 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn clarinet() { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `private_fn` is never used [INFO] [stdout] --> src/ch07/mod.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | fn private_fn() {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Vegetable` is never constructed [INFO] [stdout] --> src/ch07/mod.rs:32:16 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Vegetable { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/ch07/mod.rs:38:16 [INFO] [stdout] | [INFO] [stdout] 37 | impl Vegetable { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 38 | pub fn new(name: &str) -> Vegetable { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_struct` is never used [INFO] [stdout] --> src/ch07/mod.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn generate_struct() -> Vegetable { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Appetizer` is never used [INFO] [stdout] --> src/ch07/mod.rs:56:14 [INFO] [stdout] | [INFO] [stdout] 56 | pub enum Appetizer { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clarinet_trio` is never used [INFO] [stdout] --> src/ch07/mod.rs:69:12 [INFO] [stdout] | [INFO] [stdout] 69 | pub fn clarinet_trio() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clarinet` is never used [INFO] [stdout] --> src/ch07/sound1.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | pub fn clarinet() { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clarinet` is never used [INFO] [stdout] --> src/ch07/sound2/instrument.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn clarinet() { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clarinet` is never used [INFO] [stdout] --> src/ch07/sound3/instrument.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn clarinet() { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clarinet` is never used [INFO] [stdout] --> src/ch07/mod.rs:156:24 [INFO] [stdout] | [INFO] [stdout] 156 | pub fn clarinet() { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clarinet_trio` is never used [INFO] [stdout] --> src/ch07/mod.rs:166:20 [INFO] [stdout] | [INFO] [stdout] 166 | pub fn clarinet_trio() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch08_03_hash_maps` is never used [INFO] [stdout] --> src/ch08_hashmap.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn ch08_03_hash_maps() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch08_02_strings` is never used [INFO] [stdout] --> src/ch08_string.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn ch08_02_strings() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch08_01_vectors` is never used [INFO] [stdout] --> src/ch08_vec.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn ch08_01_vectors() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch09_01_unrecoverable_errors_with_panic` is never used [INFO] [stdout] --> src/ch09.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn ch09_01_unrecoverable_errors_with_panic() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch09_02_recoverable_errors_with_result` is never used [INFO] [stdout] --> src/ch09.rs:31:8 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn ch09_02_recoverable_errors_with_result() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch09_03_to_panic_or_not_to_panic` is never used [INFO] [stdout] --> src/ch09.rs:195:8 [INFO] [stdout] | [INFO] [stdout] 195 | pub fn ch09_03_to_panic_or_not_to_panic() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch10_00_generics` is never used [INFO] [stdout] --> src/ch10.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn ch10_00_generics() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch10_01_syntax` is never used [INFO] [stdout] --> src/ch10.rs:32:8 [INFO] [stdout] | [INFO] [stdout] 32 | pub fn ch10_01_syntax() { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `x` is never used [INFO] [stdout] --> src/ch10.rs:71:16 [INFO] [stdout] | [INFO] [stdout] 70 | impl Point { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] 71 | fn x(&self) -> &A { [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `distance_from_origin` is never used [INFO] [stdout] --> src/ch10.rs:77:16 [INFO] [stdout] | [INFO] [stdout] 76 | impl Point { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 77 | fn distance_from_origin(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `mix_up` is never used [INFO] [stdout] --> src/ch10.rs:101:16 [INFO] [stdout] | [INFO] [stdout] 98 | impl Point { [INFO] [stdout] | ---------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 101 | fn mix_up(self, other: Point) -> Point { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch10_02_traits` is never used [INFO] [stdout] --> src/ch10.rs:160:8 [INFO] [stdout] | [INFO] [stdout] 160 | pub fn ch10_02_traits() { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `summarize` is never used [INFO] [stdout] --> src/ch10.rs:177:16 [INFO] [stdout] | [INFO] [stdout] 176 | pub trait Summary { [INFO] [stdout] | ------- method in this trait [INFO] [stdout] 177 | fn summarize(&self) -> String; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/ch08_vec.rs:138:13 [INFO] [stdout] | [INFO] [stdout] 136 | Float => (), [INFO] [stdout] | ----- matches any value [INFO] [stdout] 137 | Text => (), [INFO] [stdout] 138 | Int => (), [INFO] [stdout] | ^^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `content` is never read [INFO] [stdout] --> src/ch10.rs:183:17 [INFO] [stdout] | [INFO] [stdout] 179 | pub struct NewsArticle { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 183 | pub content: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `reply` and `retweet` are never read [INFO] [stdout] --> src/ch10.rs:195:17 [INFO] [stdout] | [INFO] [stdout] 192 | pub struct Tweet { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 195 | pub reply: bool, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 196 | pub retweet: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `x` and `y` are never read [INFO] [stdout] --> src/ch10.rs:216:13 [INFO] [stdout] | [INFO] [stdout] 215 | struct Point { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 216 | x: T, [INFO] [stdout] | ^ [INFO] [stdout] 217 | y: U, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `summarize1` is never used [INFO] [stdout] --> src/ch10.rs:221:16 [INFO] [stdout] | [INFO] [stdout] 220 | pub trait Summary1 { [INFO] [stdout] | -------- method in this trait [INFO] [stdout] 221 | fn summarize1(&self) -> Point; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `summarize2` is never used [INFO] [stdout] --> src/ch10.rs:227:16 [INFO] [stdout] | [INFO] [stdout] 226 | pub trait Summary2 { [INFO] [stdout] | -------- method in this trait [INFO] [stdout] 227 | fn summarize2(&self, x: T) -> T; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `a` and `b` are never read [INFO] [stdout] --> src/ch10.rs:231:13 [INFO] [stdout] | [INFO] [stdout] 230 | pub struct Tweet { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 231 | a: A, [INFO] [stdout] | ^ [INFO] [stdout] 232 | b: B, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `content`, `reply`, and `retweet` are never read [INFO] [stdout] --> src/ch10.rs:309:17 [INFO] [stdout] | [INFO] [stdout] 307 | pub struct Tweet { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 308 | pub username: String, [INFO] [stdout] 309 | pub content: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 310 | pub reply: bool, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 311 | pub retweet: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `summarize_author` and `summarize` are never used [INFO] [stdout] --> src/ch10.rs:314:16 [INFO] [stdout] | [INFO] [stdout] 313 | pub trait Summary { [INFO] [stdout] | ------- methods in this trait [INFO] [stdout] 314 | fn summarize_author(&self) -> String; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 315 | [INFO] [stdout] 316 | fn summarize(&self) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/ch10.rs:647:16 [INFO] [stdout] | [INFO] [stdout] 646 | impl Pair { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] 647 | fn new(x: T, y: T) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `cmp_display` is never used [INFO] [stdout] --> src/ch10.rs:654:16 [INFO] [stdout] | [INFO] [stdout] 653 | impl Pair { [INFO] [stdout] | ------------------------------------- method in this implementation [INFO] [stdout] 654 | fn cmp_display(&self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch10_03_lifetime_syntax` is never used [INFO] [stdout] --> src/ch10.rs:682:8 [INFO] [stdout] | [INFO] [stdout] 682 | pub fn ch10_03_lifetime_syntax() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `level` is never used [INFO] [stdout] --> src/ch10.rs:860:16 [INFO] [stdout] | [INFO] [stdout] 859 | impl ImportantExcerpt { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] 860 | fn level(&self) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `level` and `announce_and_return_part` are never used [INFO] [stdout] --> src/ch10.rs:878:16 [INFO] [stdout] | [INFO] [stdout] 877 | impl<'a> ImportantExcerpt<'a> { [INFO] [stdout] | ----------------------------- methods in this implementation [INFO] [stdout] 878 | fn level(&self) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 881 | fn announce_and_return_part(&self, announcement: &str) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `a` is never used [INFO] [stdout] --> src/ch10.rs:894:16 [INFO] [stdout] | [INFO] [stdout] 893 | impl ImportantExcerpt<'_> { [INFO] [stdout] | ------------------------- method in this implementation [INFO] [stdout] 894 | fn a(&self, announcement: &str) -> &str { [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Rectangle` is never constructed [INFO] [stdout] --> src/ch11_01.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Rectangle { [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 `can_hold` is never used [INFO] [stdout] --> src/ch11_01.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl Rectangle { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] 10 | pub fn can_hold(&self, other: &Rectangle) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TestStruct` is never constructed [INFO] [stdout] --> src/ch11_01.rs:78:8 [INFO] [stdout] | [INFO] [stdout] 78 | struct TestStruct { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_two` is never used [INFO] [stdout] --> src/ch11_01.rs:82:8 [INFO] [stdout] | [INFO] [stdout] 82 | pub fn add_two(a: i32) -> i32 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `greeting` is never used [INFO] [stdout] --> src/ch11_01.rs:112:8 [INFO] [stdout] | [INFO] [stdout] 112 | pub fn greeting(name: &str) -> String { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Guess` is never constructed [INFO] [stdout] --> src/ch11_01.rs:132:12 [INFO] [stdout] | [INFO] [stdout] 132 | pub struct Guess { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/ch11_01.rs:137:12 [INFO] [stdout] | [INFO] [stdout] 136 | impl Guess { [INFO] [stdout] | ---------- associated function in this implementation [INFO] [stdout] 137 | pub fn new(value: i32) -> Guess { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `prints_and_returns_10` is never used [INFO] [stdout] --> src/ch11_02.rs:12:4 [INFO] [stdout] | [INFO] [stdout] 12 | fn prints_and_returns_10(a: i32) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_two` is never used [INFO] [stdout] --> src/ch11_02.rs:38:8 [INFO] [stdout] | [INFO] [stdout] 38 | pub fn add_two(a: i32) -> i32 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_two` is never used [INFO] [stdout] --> src/ch11_03.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn add_two(a: i32) -> i32 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `internal_adder` is never used [INFO] [stdout] --> src/ch11_03.rs:22:4 [INFO] [stdout] | [INFO] [stdout] 22 | fn internal_adder(a: i32, b: i32) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Config` is never constructed [INFO] [stdout] --> src/ch12.rs:20:8 [INFO] [stdout] | [INFO] [stdout] 20 | struct Config<'a> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/ch12.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 25 | impl Config<'_> { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] 26 | fn new(args: &[String]) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `minigrep` is never used [INFO] [stdout] --> src/ch12.rs:38:8 [INFO] [stdout] | [INFO] [stdout] 38 | pub fn minigrep() { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/ch12.rs:61:4 [INFO] [stdout] | [INFO] [stdout] 61 | fn run(config: Config) -> Result<(), Box> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `search` is never used [INFO] [stdout] --> src/ch12.rs:72:8 [INFO] [stdout] | [INFO] [stdout] 72 | pub fn search<'a>(query: &str, contents: &'a str) -> Vec<&'a str> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch13_01_closures` is never used [INFO] [stdout] --> src/ch13.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn ch13_01_closures() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `value` are never used [INFO] [stdout] --> src/ch13.rs:96:16 [INFO] [stdout] | [INFO] [stdout] 92 | / impl Cacher [INFO] [stdout] 93 | | where [INFO] [stdout] 94 | | T: Fn(u32) -> u32, // 还得再写一遍 [INFO] [stdout] | |______________________________- associated items in this implementation [INFO] [stdout] 95 | { [INFO] [stdout] 96 | fn new(calculation: T) -> Cacher { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | fn value(&mut self, arg: u32) -> u32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `value` are never used [INFO] [stdout] --> src/ch13.rs:156:16 [INFO] [stdout] | [INFO] [stdout] 152 | / impl Cacher [INFO] [stdout] 153 | | where [INFO] [stdout] 154 | | T: Fn(u32) -> u32, [INFO] [stdout] | |______________________________- associated items in this implementation [INFO] [stdout] 155 | { [INFO] [stdout] 156 | fn new(calculation: T) -> Cacher { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 162 | fn value(&mut self, arg: u32) -> u32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `value` are never used [INFO] [stdout] --> src/ch13.rs:199:16 [INFO] [stdout] | [INFO] [stdout] 194 | / impl Cacher1 [INFO] [stdout] 195 | | where [INFO] [stdout] 196 | | U: Eq + Hash + Clone, [INFO] [stdout] 197 | | T: Fn(U) -> u32, // 获取所有权 [INFO] [stdout] | |____________________________- associated items in this implementation [INFO] [stdout] 198 | { [INFO] [stdout] 199 | fn new(calculation: T) -> Cacher1 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 205 | fn value(&mut self, arg: U) -> u32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `value` are never used [INFO] [stdout] --> src/ch13.rs:239:16 [INFO] [stdout] | [INFO] [stdout] 234 | / impl Cacher2 [INFO] [stdout] 235 | | where [INFO] [stdout] 236 | | U: Eq + Hash + Clone, [INFO] [stdout] 237 | | T: Fn(&U) -> u32, [INFO] [stdout] | |_____________________________- associated items in this implementation [INFO] [stdout] 238 | { [INFO] [stdout] 239 | fn new(calculation: T) -> Cacher2 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 245 | fn value(&mut self, arg: U) -> u32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch13_02_iterators` is never used [INFO] [stdout] --> src/ch13.rs:317:8 [INFO] [stdout] | [INFO] [stdout] 317 | pub fn ch13_02_iterators() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/ch13.rs:434:16 [INFO] [stdout] | [INFO] [stdout] 433 | impl Counter { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] 434 | fn new() -> Counter { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch13_04_performance` is never used [INFO] [stdout] --> src/ch13.rs:487:8 [INFO] [stdout] | [INFO] [stdout] 487 | pub fn ch13_04_performance(buffer: &mut [i32], coefficients: [i64; 12], qlp_shift: i16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch14_01_release_profiles` is never used [INFO] [stdout] --> src/ch14.rs:22:4 [INFO] [stdout] | [INFO] [stdout] 22 | fn ch14_01_release_profiles() {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch14_02_publishing_to_crates_io` is never used [INFO] [stdout] --> src/ch14.rs:27:4 [INFO] [stdout] | [INFO] [stdout] 27 | fn ch14_02_publishing_to_crates_io() {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch15_01_box` is never used [INFO] [stdout] --> src/ch15.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn ch15_01_box() { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch15_02_deref` is never used [INFO] [stdout] --> src/ch15.rs:94:8 [INFO] [stdout] | [INFO] [stdout] 94 | pub fn ch15_02_deref() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/ch15.rs:136:12 [INFO] [stdout] | [INFO] [stdout] 135 | impl MyBox { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] 136 | fn new(x: T) -> MyBox { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/ch15.rs:213:16 [INFO] [stdout] | [INFO] [stdout] 212 | impl MyBox { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] 213 | fn new(x: T) -> MyBox { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch15_03_drop` is never used [INFO] [stdout] --> src/ch15.rs:240:8 [INFO] [stdout] | [INFO] [stdout] 240 | pub fn ch15_03_drop() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `List` is never used [INFO] [stdout] --> src/ch15.rs:306:6 [INFO] [stdout] | [INFO] [stdout] 306 | enum List { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch15_04_rc` is never used [INFO] [stdout] --> src/ch15.rs:311:8 [INFO] [stdout] | [INFO] [stdout] 311 | pub fn ch15_04_rc() { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Messenger` is never used [INFO] [stdout] --> src/ch15.rs:405:11 [INFO] [stdout] | [INFO] [stdout] 405 | pub trait Messenger { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LimitTracker` is never constructed [INFO] [stdout] --> src/ch15.rs:409:12 [INFO] [stdout] | [INFO] [stdout] 409 | pub struct LimitTracker<'a, T: Messenger> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `set_value` are never used [INFO] [stdout] --> src/ch15.rs:419:12 [INFO] [stdout] | [INFO] [stdout] 415 | / impl<'a, T> LimitTracker<'a, T> [INFO] [stdout] 416 | | where [INFO] [stdout] 417 | | T: Messenger, [INFO] [stdout] | |_________________- associated items in this implementation [INFO] [stdout] 418 | { [INFO] [stdout] 419 | pub fn new(messenger: &T, max: usize) -> LimitTracker { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 427 | pub fn set_value(&mut self, value: usize) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `List` is never used [INFO] [stdout] --> src/ch15_02.rs:9:6 [INFO] [stdout] | [INFO] [stdout] 9 | enum List { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/ch15_02.rs:16:8 [INFO] [stdout] | [INFO] [stdout] 16 | pub fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `List` is never used [INFO] [stdout] --> src/ch15_03.rs:12:6 [INFO] [stdout] | [INFO] [stdout] 12 | enum List { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `tail` is never used [INFO] [stdout] --> src/ch15_03.rs:20:8 [INFO] [stdout] | [INFO] [stdout] 18 | impl List { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] 19 | // 我们希望能够修改 Cons 成员所指向的 List。这 ... [INFO] [stdout] 20 | fn tail(&self) -> Option<&RefCell>> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/ch15_03.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Worker` is never constructed [INFO] [stdout] --> src/ch15_03.rs:64:12 [INFO] [stdout] | [INFO] [stdout] 64 | pub struct Worker { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `run` are never used [INFO] [stdout] --> src/ch15_03.rs:70:12 [INFO] [stdout] | [INFO] [stdout] 69 | impl Worker { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 70 | pub fn new(id: usize, log: Rc>>) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn run(&self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Engine` is never constructed [INFO] [stdout] --> src/ch15_03.rs:81:12 [INFO] [stdout] | [INFO] [stdout] 81 | pub struct Engine { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add_worker`, `run`, and `print_log` are never used [INFO] [stdout] --> src/ch15_03.rs:87:12 [INFO] [stdout] | [INFO] [stdout] 86 | impl Engine { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 87 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 94 | pub fn add_worker(&mut self, id: usize) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 104 | pub fn run(&self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | pub fn print_log(&self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Node` is never constructed [INFO] [stdout] --> src/ch15_04.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | struct Node { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/ch15_04.rs:30:8 [INFO] [stdout] | [INFO] [stdout] 30 | pub fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch16_01_threads` is never used [INFO] [stdout] --> src/ch16.rs:16:8 [INFO] [stdout] | [INFO] [stdout] 16 | pub fn ch16_01_threads() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch16_02_message_passing` is never used [INFO] [stdout] --> src/ch16.rs:52:8 [INFO] [stdout] | [INFO] [stdout] 52 | pub fn ch16_02_message_passing() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch16_03_shared_state` is never used [INFO] [stdout] --> src/ch16.rs:140:8 [INFO] [stdout] | [INFO] [stdout] 140 | pub fn ch16_03_shared_state() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch16_04_extensible_concurrency_sync_and_send` is never used [INFO] [stdout] --> src/ch16.rs:218:8 [INFO] [stdout] | [INFO] [stdout] 218 | pub fn ch16_04_extensible_concurrency_sync_and_send() {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch17_01whatis_oo` is never used [INFO] [stdout] --> src/ch17.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn ch17_01whatis_oo() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `add`, `remove`, `average`, and `update_average` are never used [INFO] [stdout] --> src/ch17.rs:10:16 [INFO] [stdout] | [INFO] [stdout] 9 | impl AveragedCollection { [INFO] [stdout] | ----------------------- methods in this implementation [INFO] [stdout] 10 | pub fn add(&mut self, value: i32) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | pub fn remove(&mut self) -> Option { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 26 | pub fn average(&self) -> f64 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | fn update_average(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch17_02_trait_objects` is never used [INFO] [stdout] --> src/ch17.rs:37:8 [INFO] [stdout] | [INFO] [stdout] 37 | pub fn ch17_02_trait_objects() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `draw` is never used [INFO] [stdout] --> src/ch17.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 38 | pub trait Draw { [INFO] [stdout] | ---- method in this trait [INFO] [stdout] 39 | fn draw(&self); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `run` is never used [INFO] [stdout] --> src/ch17.rs:49:16 [INFO] [stdout] | [INFO] [stdout] 48 | impl Screen { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] 49 | pub fn run(&self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `run` is never used [INFO] [stdout] --> src/ch17.rs:70:20 [INFO] [stdout] | [INFO] [stdout] 66 | / impl Screen [INFO] [stdout] 67 | | where [INFO] [stdout] 68 | | T: Draw, [INFO] [stdout] | |____________________- method in this implementation [INFO] [stdout] 69 | { [INFO] [stdout] 70 | pub fn run(&self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `width`, `height`, and `label` are never read [INFO] [stdout] --> src/ch17.rs:81:13 [INFO] [stdout] | [INFO] [stdout] 80 | pub struct Button { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 81 | pub width: u32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 82 | pub height: u32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 83 | pub label: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch17_03_oo_design_patterns` is never used [INFO] [stdout] --> src/ch17.rs:226:8 [INFO] [stdout] | [INFO] [stdout] 226 | pub fn ch17_03_oo_design_patterns() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add_text`, `content`, `request_review`, `approve`, and `reject` are never used [INFO] [stdout] --> src/ch17.rs:241:20 [INFO] [stdout] | [INFO] [stdout] 240 | impl Post { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 241 | pub fn new() -> Post { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 249 | pub fn add_text(&mut self, text: &str) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 255 | pub fn content(&self) -> &str { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 266 | pub fn request_review(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 273 | pub fn approve(&mut self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 280 | pub fn reject(&mut self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `content` are never used [INFO] [stdout] --> src/ch17.rs:386:20 [INFO] [stdout] | [INFO] [stdout] 385 | impl Post { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 386 | pub fn new() -> DraftPost { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 391 | pub fn content(&self) -> &str { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `add_text` and `request_review` are never used [INFO] [stdout] --> src/ch17.rs:397:20 [INFO] [stdout] | [INFO] [stdout] 396 | impl DraftPost { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] 397 | pub fn add_text(&mut self, text: &str) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 401 | pub fn request_review(self) -> PendingReviewPost { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `approve` is never used [INFO] [stdout] --> src/ch17.rs:413:20 [INFO] [stdout] | [INFO] [stdout] 412 | impl PendingReviewPost { [INFO] [stdout] | ---------------------- method in this implementation [INFO] [stdout] 413 | pub fn approve(self) -> Post { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch18_01_all_the_places_for_patterns` is never used [INFO] [stdout] --> src/ch18.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 2 | pub fn ch18_01_all_the_places_for_patterns() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch18_02_refutability` is never used [INFO] [stdout] --> src/ch18.rs:95:8 [INFO] [stdout] | [INFO] [stdout] 95 | pub fn ch18_02_refutability() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch18_03_pattern_syntax` is never used [INFO] [stdout] --> src/ch18.rs:104:8 [INFO] [stdout] | [INFO] [stdout] 104 | pub fn ch18_03_pattern_syntax() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch19_01_unsafe_rust` is never used [INFO] [stdout] --> src/ch19.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub fn ch19_01_unsafe_rust() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch19_03_advanced_traits` is never used [INFO] [stdout] --> src/ch19.rs:213:8 [INFO] [stdout] | [INFO] [stdout] 213 | pub fn ch19_03_advanced_traits() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `fly` is never used [INFO] [stdout] --> src/ch19.rs:361:16 [INFO] [stdout] | [INFO] [stdout] 360 | impl Human { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] 361 | fn fly(&self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `baby_name` is never used [INFO] [stdout] --> src/ch19.rs:383:16 [INFO] [stdout] | [INFO] [stdout] 382 | impl Dog { [INFO] [stdout] | -------- associated function in this implementation [INFO] [stdout] 383 | fn baby_name() -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch19_04_advanced_types` is never used [INFO] [stdout] --> src/ch19.rs:475:8 [INFO] [stdout] | [INFO] [stdout] 475 | pub fn ch19_04_advanced_types() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch19_05_advanced_functions_and_closures` is never used [INFO] [stdout] --> src/ch19.rs:661:8 [INFO] [stdout] | [INFO] [stdout] 661 | pub fn ch19_05_advanced_functions_and_closures() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `abs` is never used [INFO] [stdout] --> src/ch19.rs:134:12 [INFO] [stdout] | [INFO] [stdout] 134 | fn abs(input: i32) -> i32; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/ch19_06.rs:35:4 [INFO] [stdout] | [INFO] [stdout] 35 | fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/ch20.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `handle_connection` is never used [INFO] [stdout] --> src/ch20.rs:19:4 [INFO] [stdout] | [INFO] [stdout] 19 | fn handle_connection(mut stream: TcpStream) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `abs_all` is never used [INFO] [stdout] --> src/ch15_05.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn abs_all<'a, 'b>(input: &'a mut Cow<'b, [i32]>) -> &'a mut Cow<'b, [i32]> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SomeStruct` is never constructed [INFO] [stdout] --> src/ch15_05.rs:62:8 [INFO] [stdout] | [INFO] [stdout] 62 | struct SomeStruct { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Switcher` is never constructed [INFO] [stdout] --> src/ch15_05.rs:86:12 [INFO] [stdout] | [INFO] [stdout] 86 | pub struct Switcher<'a> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `switch` are never used [INFO] [stdout] --> src/ch15_05.rs:91:12 [INFO] [stdout] | [INFO] [stdout] 90 | impl<'a> Switcher<'a> { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 91 | pub fn new(lamp: &'a Cell) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 94 | pub fn switch(&mut self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `on` is never read [INFO] [stdout] --> src/ch15_05.rs:109:5 [INFO] [stdout] | [INFO] [stdout] 108 | pub struct Lamp { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] 109 | on: bool, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `Lamp` 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: methods `is_on`, `switch_on`, and `switch_off` are never used [INFO] [stdout] --> src/ch15_05.rs:113:12 [INFO] [stdout] | [INFO] [stdout] 112 | impl Lamp { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] 113 | pub fn is_on(&self) -> bool { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | pub fn switch_on(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | pub fn switch_off(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `Float` should have a snake case name [INFO] [stdout] --> src/ch08_vec.rs:136:13 [INFO] [stdout] | [INFO] [stdout] 136 | Float => (), [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case (notice the capitalization): `float` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `Text` should have a snake case name [INFO] [stdout] --> src/ch08_vec.rs:137:13 [INFO] [stdout] | [INFO] [stdout] 137 | Text => (), [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `text` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `Int` should have a snake case name [INFO] [stdout] --> src/ch08_vec.rs:138:13 [INFO] [stdout] | [INFO] [stdout] 138 | Int => (), [INFO] [stdout] | ^^^ help: convert the identifier to snake case (notice the capitalization): `int` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `Value` should have a snake case name [INFO] [stdout] --> src/ch17.rs:18:22 [INFO] [stdout] | [INFO] [stdout] 18 | Some(Value) => { [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case (notice the capitalization): `value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ch10.rs:82:13 [INFO] [stdout] | [INFO] [stdout] 82 | let mut p = Point { x: 5, y: 10 }; [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `result` is never read [INFO] [stdout] --> src/ch10.rs:744:13 [INFO] [stdout] | [INFO] [stdout] 744 | result = longest(string1.as_str(), string2.as_str()); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ch10.rs:904:13 [INFO] [stdout] | [INFO] [stdout] 904 | let mut s: &'static str = "I have a static lifetime."; [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 226 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `z` is never read [INFO] [stdout] --> src/ch15.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 113 | z = &mut 4; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ch15.rs:157:13 [INFO] [stdout] | [INFO] [stdout] 157 | let mut z = MyBox::new(x); [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ch15_03.rs:112:13 [INFO] [stdout] | [INFO] [stdout] 112 | let mut log = self.log.borrow(); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function cannot return without recursing [INFO] [stdout] --> src/ch18.rs:85:9 [INFO] [stdout] | [INFO] [stdout] 85 | fn print_coordinates(&(x, y): &(i32, i32)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing [INFO] [stdout] ... [INFO] [stdout] 89 | print_coordinates(&point); [INFO] [stdout] | ------------------------- recursive call site [INFO] [stdout] | [INFO] [stdout] = help: a `loop` may express intention better if this is on purpose [INFO] [stdout] = note: `#[warn(unconditional_recursion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/ch01.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch02_00_guessing_game_tutorial` is never used [INFO] [stdout] --> src/ch02.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn ch02_00_guessing_game_tutorial() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch03_02_data_types` is never used [INFO] [stdout] --> src/ch03.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn ch03_02_data_types() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch03_03_how_functions_work` is never used [INFO] [stdout] --> src/ch03.rs:135:8 [INFO] [stdout] | [INFO] [stdout] 135 | pub fn ch03_03_how_functions_work() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch03_05_control_flow` is never used [INFO] [stdout] --> src/ch03.rs:181:8 [INFO] [stdout] | [INFO] [stdout] 181 | pub fn ch03_05_control_flow() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fun_2` is never used [INFO] [stdout] --> src/ch03.rs:267:4 [INFO] [stdout] | [INFO] [stdout] 267 | fn fun_2() {} [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch04_01_what_is_ownership` is never used [INFO] [stdout] --> src/ch04.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn ch04_01_what_is_ownership() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch04_02_references_and_borrowing` is never used [INFO] [stdout] --> src/ch04.rs:140:8 [INFO] [stdout] | [INFO] [stdout] 140 | pub fn ch04_02_references_and_borrowing() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch04_03_slices` is never used [INFO] [stdout] --> src/ch04.rs:239:8 [INFO] [stdout] | [INFO] [stdout] 239 | pub fn ch04_03_slices() { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch05_01_defining_structs` is never used [INFO] [stdout] --> src/ch05.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn ch05_01_defining_structs() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch05_02_example_structs` is never used [INFO] [stdout] --> src/ch05.rs:166:8 [INFO] [stdout] | [INFO] [stdout] 166 | pub fn ch05_02_example_structs() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch05_03_method_syntax` is never used [INFO] [stdout] --> src/ch05.rs:235:8 [INFO] [stdout] | [INFO] [stdout] 235 | pub fn ch05_03_method_syntax() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `area`, `set_height`, `set_weight`, and `test1` are never used [INFO] [stdout] --> src/ch05.rs:248:16 [INFO] [stdout] | [INFO] [stdout] 247 | impl Rectangle { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] 248 | fn area(&self) -> u32 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 254 | fn set_height(&mut self, new_value: u32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 258 | fn set_weight(&mut self, new_value: u32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 263 | fn test1(self) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `area` and `can_hold` are never used [INFO] [stdout] --> src/ch05.rs:306:16 [INFO] [stdout] | [INFO] [stdout] 305 | impl Rectangle { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] 306 | fn area(&self) -> u32 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 310 | fn can_hold(&self, other: &Rectangle) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `square` is never used [INFO] [stdout] --> src/ch05.rs:346:16 [INFO] [stdout] | [INFO] [stdout] 344 | impl Rectangle { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 345 | // 参数中 没有 &self 相当于一个静态方法 [INFO] [stdout] 346 | fn square(size: u32) -> Rectangle { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `square` is never used [INFO] [stdout] --> src/ch05.rs:367:16 [INFO] [stdout] | [INFO] [stdout] 366 | impl Rectangle { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 367 | fn square(size: u32) -> Rectangle { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `area` is never used [INFO] [stdout] --> src/ch05.rs:376:16 [INFO] [stdout] | [INFO] [stdout] 375 | impl Rectangle { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] 376 | fn area(&self) -> u32 { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `can_hold` is never used [INFO] [stdout] --> src/ch05.rs:382:16 [INFO] [stdout] | [INFO] [stdout] 381 | impl Rectangle { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] 382 | fn can_hold(&self, other: &Rectangle) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch06_01_defining_an_enum` is never used [INFO] [stdout] --> src/ch06.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn ch06_01_defining_an_enum() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `call` is never used [INFO] [stdout] --> src/ch06.rs:91:16 [INFO] [stdout] | [INFO] [stdout] 90 | impl Message { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] 91 | fn call(&self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch06_02_match` is never used [INFO] [stdout] --> src/ch06.rs:134:8 [INFO] [stdout] | [INFO] [stdout] 134 | pub fn ch06_02_match() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `UsState` is never used [INFO] [stdout] --> src/ch06.rs:236:6 [INFO] [stdout] | [INFO] [stdout] 236 | enum UsState { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `B1` is never used [INFO] [stdout] --> src/ch06.rs:243:6 [INFO] [stdout] | [INFO] [stdout] 243 | enum B1 { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Coin` is never used [INFO] [stdout] --> src/ch06.rs:249:6 [INFO] [stdout] | [INFO] [stdout] 249 | enum Coin { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch06_03_if_let` is never used [INFO] [stdout] --> src/ch06.rs:257:8 [INFO] [stdout] | [INFO] [stdout] 257 | pub fn ch06_03_if_let() { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch06_03_matches` is never used [INFO] [stdout] --> src/ch06.rs:303:8 [INFO] [stdout] | [INFO] [stdout] 303 | pub fn ch06_03_matches() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/ch07/mod.rs:85:8 [INFO] [stdout] | [INFO] [stdout] 85 | pub fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `breathe_in` is never used [INFO] [stdout] --> src/ch07/mod.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | fn breathe_in() { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clarinet` is never used [INFO] [stdout] --> src/ch07/mod.rs:9:16 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn clarinet() { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `private_fn` is never used [INFO] [stdout] --> src/ch07/mod.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | fn private_fn() {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Vegetable` is never constructed [INFO] [stdout] --> src/ch07/mod.rs:32:16 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Vegetable { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/ch07/mod.rs:38:16 [INFO] [stdout] | [INFO] [stdout] 37 | impl Vegetable { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 38 | pub fn new(name: &str) -> Vegetable { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_struct` is never used [INFO] [stdout] --> src/ch07/mod.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn generate_struct() -> Vegetable { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Appetizer` is never used [INFO] [stdout] --> src/ch07/mod.rs:56:14 [INFO] [stdout] | [INFO] [stdout] 56 | pub enum Appetizer { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clarinet_trio` is never used [INFO] [stdout] --> src/ch07/mod.rs:69:12 [INFO] [stdout] | [INFO] [stdout] 69 | pub fn clarinet_trio() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clarinet` is never used [INFO] [stdout] --> src/ch07/sound1.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | pub fn clarinet() { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clarinet` is never used [INFO] [stdout] --> src/ch07/sound2/instrument.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn clarinet() { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clarinet` is never used [INFO] [stdout] --> src/ch07/sound3/instrument.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn clarinet() { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clarinet` is never used [INFO] [stdout] --> src/ch07/mod.rs:156:24 [INFO] [stdout] | [INFO] [stdout] 156 | pub fn clarinet() { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clarinet_trio` is never used [INFO] [stdout] --> src/ch07/mod.rs:166:20 [INFO] [stdout] | [INFO] [stdout] 166 | pub fn clarinet_trio() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch08_03_hash_maps` is never used [INFO] [stdout] --> src/ch08_hashmap.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn ch08_03_hash_maps() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch08_02_strings` is never used [INFO] [stdout] --> src/ch08_string.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn ch08_02_strings() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch08_01_vectors` is never used [INFO] [stdout] --> src/ch08_vec.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn ch08_01_vectors() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch09_01_unrecoverable_errors_with_panic` is never used [INFO] [stdout] --> src/ch09.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn ch09_01_unrecoverable_errors_with_panic() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch09_02_recoverable_errors_with_result` is never used [INFO] [stdout] --> src/ch09.rs:31:8 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn ch09_02_recoverable_errors_with_result() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch09_03_to_panic_or_not_to_panic` is never used [INFO] [stdout] --> src/ch09.rs:195:8 [INFO] [stdout] | [INFO] [stdout] 195 | pub fn ch09_03_to_panic_or_not_to_panic() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch10_00_generics` is never used [INFO] [stdout] --> src/ch10.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn ch10_00_generics() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch10_01_syntax` is never used [INFO] [stdout] --> src/ch10.rs:32:8 [INFO] [stdout] | [INFO] [stdout] 32 | pub fn ch10_01_syntax() { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `x` is never used [INFO] [stdout] --> src/ch10.rs:71:16 [INFO] [stdout] | [INFO] [stdout] 70 | impl Point { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] 71 | fn x(&self) -> &A { [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `distance_from_origin` is never used [INFO] [stdout] --> src/ch10.rs:77:16 [INFO] [stdout] | [INFO] [stdout] 76 | impl Point { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 77 | fn distance_from_origin(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `mix_up` is never used [INFO] [stdout] --> src/ch10.rs:101:16 [INFO] [stdout] | [INFO] [stdout] 98 | impl Point { [INFO] [stdout] | ---------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 101 | fn mix_up(self, other: Point) -> Point { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch10_02_traits` is never used [INFO] [stdout] --> src/ch10.rs:160:8 [INFO] [stdout] | [INFO] [stdout] 160 | pub fn ch10_02_traits() { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `summarize` is never used [INFO] [stdout] --> src/ch10.rs:177:16 [INFO] [stdout] | [INFO] [stdout] 176 | pub trait Summary { [INFO] [stdout] | ------- method in this trait [INFO] [stdout] 177 | fn summarize(&self) -> String; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `content` is never read [INFO] [stdout] --> src/ch10.rs:183:17 [INFO] [stdout] | [INFO] [stdout] 179 | pub struct NewsArticle { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 183 | pub content: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `reply` and `retweet` are never read [INFO] [stdout] --> src/ch10.rs:195:17 [INFO] [stdout] | [INFO] [stdout] 192 | pub struct Tweet { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 195 | pub reply: bool, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 196 | pub retweet: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `x` and `y` are never read [INFO] [stdout] --> src/ch10.rs:216:13 [INFO] [stdout] | [INFO] [stdout] 215 | struct Point { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 216 | x: T, [INFO] [stdout] | ^ [INFO] [stdout] 217 | y: U, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `summarize1` is never used [INFO] [stdout] --> src/ch10.rs:221:16 [INFO] [stdout] | [INFO] [stdout] 220 | pub trait Summary1 { [INFO] [stdout] | -------- method in this trait [INFO] [stdout] 221 | fn summarize1(&self) -> Point; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `summarize2` is never used [INFO] [stdout] --> src/ch10.rs:227:16 [INFO] [stdout] | [INFO] [stdout] 226 | pub trait Summary2 { [INFO] [stdout] | -------- method in this trait [INFO] [stdout] 227 | fn summarize2(&self, x: T) -> T; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `a` and `b` are never read [INFO] [stdout] --> src/ch10.rs:231:13 [INFO] [stdout] | [INFO] [stdout] 230 | pub struct Tweet { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 231 | a: A, [INFO] [stdout] | ^ [INFO] [stdout] 232 | b: B, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `content`, `reply`, and `retweet` are never read [INFO] [stdout] --> src/ch10.rs:309:17 [INFO] [stdout] | [INFO] [stdout] 307 | pub struct Tweet { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 308 | pub username: String, [INFO] [stdout] 309 | pub content: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 310 | pub reply: bool, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 311 | pub retweet: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `summarize_author` and `summarize` are never used [INFO] [stdout] --> src/ch10.rs:314:16 [INFO] [stdout] | [INFO] [stdout] 313 | pub trait Summary { [INFO] [stdout] | ------- methods in this trait [INFO] [stdout] 314 | fn summarize_author(&self) -> String; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 315 | [INFO] [stdout] 316 | fn summarize(&self) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/ch10.rs:647:16 [INFO] [stdout] | [INFO] [stdout] 646 | impl Pair { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] 647 | fn new(x: T, y: T) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `cmp_display` is never used [INFO] [stdout] --> src/ch10.rs:654:16 [INFO] [stdout] | [INFO] [stdout] 653 | impl Pair { [INFO] [stdout] | ------------------------------------- method in this implementation [INFO] [stdout] 654 | fn cmp_display(&self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch10_03_lifetime_syntax` is never used [INFO] [stdout] --> src/ch10.rs:682:8 [INFO] [stdout] | [INFO] [stdout] 682 | pub fn ch10_03_lifetime_syntax() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `level` is never used [INFO] [stdout] --> src/ch10.rs:860:16 [INFO] [stdout] | [INFO] [stdout] 859 | impl ImportantExcerpt { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] 860 | fn level(&self) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `level` and `announce_and_return_part` are never used [INFO] [stdout] --> src/ch10.rs:878:16 [INFO] [stdout] | [INFO] [stdout] 877 | impl<'a> ImportantExcerpt<'a> { [INFO] [stdout] | ----------------------------- methods in this implementation [INFO] [stdout] 878 | fn level(&self) -> i32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 881 | fn announce_and_return_part(&self, announcement: &str) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `a` is never used [INFO] [stdout] --> src/ch10.rs:894:16 [INFO] [stdout] | [INFO] [stdout] 893 | impl ImportantExcerpt<'_> { [INFO] [stdout] | ------------------------- method in this implementation [INFO] [stdout] 894 | fn a(&self, announcement: &str) -> &str { [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `value` is never read [INFO] [stdout] --> src/ch11_01.rs:133:5 [INFO] [stdout] | [INFO] [stdout] 132 | pub struct Guess { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 133 | value: i32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_two` is never used [INFO] [stdout] --> src/ch11_03.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn add_two(a: i32) -> i32 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Config` is never constructed [INFO] [stdout] --> src/ch12.rs:20:8 [INFO] [stdout] | [INFO] [stdout] 20 | struct Config<'a> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/ch12.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 25 | impl Config<'_> { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] 26 | fn new(args: &[String]) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `minigrep` is never used [INFO] [stdout] --> src/ch12.rs:38:8 [INFO] [stdout] | [INFO] [stdout] 38 | pub fn minigrep() { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/ch12.rs:61:4 [INFO] [stdout] | [INFO] [stdout] 61 | fn run(config: Config) -> Result<(), Box> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch13_01_closures` is never used [INFO] [stdout] --> src/ch13.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn ch13_01_closures() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `value` are never used [INFO] [stdout] --> src/ch13.rs:96:16 [INFO] [stdout] | [INFO] [stdout] 92 | / impl Cacher [INFO] [stdout] 93 | | where [INFO] [stdout] 94 | | T: Fn(u32) -> u32, // 还得再写一遍 [INFO] [stdout] | |______________________________- associated items in this implementation [INFO] [stdout] 95 | { [INFO] [stdout] 96 | fn new(calculation: T) -> Cacher { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | fn value(&mut self, arg: u32) -> u32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `value` are never used [INFO] [stdout] --> src/ch13.rs:156:16 [INFO] [stdout] | [INFO] [stdout] 152 | / impl Cacher [INFO] [stdout] 153 | | where [INFO] [stdout] 154 | | T: Fn(u32) -> u32, [INFO] [stdout] | |______________________________- associated items in this implementation [INFO] [stdout] 155 | { [INFO] [stdout] 156 | fn new(calculation: T) -> Cacher { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 162 | fn value(&mut self, arg: u32) -> u32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `value` are never used [INFO] [stdout] --> src/ch13.rs:199:16 [INFO] [stdout] | [INFO] [stdout] 194 | / impl Cacher1 [INFO] [stdout] 195 | | where [INFO] [stdout] 196 | | U: Eq + Hash + Clone, [INFO] [stdout] 197 | | T: Fn(U) -> u32, // 获取所有权 [INFO] [stdout] | |____________________________- associated items in this implementation [INFO] [stdout] 198 | { [INFO] [stdout] 199 | fn new(calculation: T) -> Cacher1 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 205 | fn value(&mut self, arg: U) -> u32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `value` are never used [INFO] [stdout] --> src/ch13.rs:239:16 [INFO] [stdout] | [INFO] [stdout] 234 | / impl Cacher2 [INFO] [stdout] 235 | | where [INFO] [stdout] 236 | | U: Eq + Hash + Clone, [INFO] [stdout] 237 | | T: Fn(&U) -> u32, [INFO] [stdout] | |_____________________________- associated items in this implementation [INFO] [stdout] 238 | { [INFO] [stdout] 239 | fn new(calculation: T) -> Cacher2 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 245 | fn value(&mut self, arg: U) -> u32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch13_02_iterators` is never used [INFO] [stdout] --> src/ch13.rs:317:8 [INFO] [stdout] | [INFO] [stdout] 317 | pub fn ch13_02_iterators() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/ch13.rs:434:16 [INFO] [stdout] | [INFO] [stdout] 433 | impl Counter { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] 434 | fn new() -> Counter { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch13_04_performance` is never used [INFO] [stdout] --> src/ch13.rs:487:8 [INFO] [stdout] | [INFO] [stdout] 487 | pub fn ch13_04_performance(buffer: &mut [i32], coefficients: [i64; 12], qlp_shift: i16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch14_01_release_profiles` is never used [INFO] [stdout] --> src/ch14.rs:22:4 [INFO] [stdout] | [INFO] [stdout] 22 | fn ch14_01_release_profiles() {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch14_02_publishing_to_crates_io` is never used [INFO] [stdout] --> src/ch14.rs:27:4 [INFO] [stdout] | [INFO] [stdout] 27 | fn ch14_02_publishing_to_crates_io() {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch15_01_box` is never used [INFO] [stdout] --> src/ch15.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn ch15_01_box() { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch15_02_deref` is never used [INFO] [stdout] --> src/ch15.rs:94:8 [INFO] [stdout] | [INFO] [stdout] 94 | pub fn ch15_02_deref() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/ch15.rs:136:12 [INFO] [stdout] | [INFO] [stdout] 135 | impl MyBox { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] 136 | fn new(x: T) -> MyBox { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/ch15.rs:213:16 [INFO] [stdout] | [INFO] [stdout] 212 | impl MyBox { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] 213 | fn new(x: T) -> MyBox { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch15_03_drop` is never used [INFO] [stdout] --> src/ch15.rs:240:8 [INFO] [stdout] | [INFO] [stdout] 240 | pub fn ch15_03_drop() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `List` is never used [INFO] [stdout] --> src/ch15.rs:306:6 [INFO] [stdout] | [INFO] [stdout] 306 | enum List { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch15_04_rc` is never used [INFO] [stdout] --> src/ch15.rs:311:8 [INFO] [stdout] | [INFO] [stdout] 311 | pub fn ch15_04_rc() { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Messenger` is never used [INFO] [stdout] --> src/ch15.rs:405:11 [INFO] [stdout] | [INFO] [stdout] 405 | pub trait Messenger { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LimitTracker` is never constructed [INFO] [stdout] --> src/ch15.rs:409:12 [INFO] [stdout] | [INFO] [stdout] 409 | pub struct LimitTracker<'a, T: Messenger> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `set_value` are never used [INFO] [stdout] --> src/ch15.rs:419:12 [INFO] [stdout] | [INFO] [stdout] 415 | / impl<'a, T> LimitTracker<'a, T> [INFO] [stdout] 416 | | where [INFO] [stdout] 417 | | T: Messenger, [INFO] [stdout] | |_________________- associated items in this implementation [INFO] [stdout] 418 | { [INFO] [stdout] 419 | pub fn new(messenger: &T, max: usize) -> LimitTracker { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 427 | pub fn set_value(&mut self, value: usize) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `List` is never used [INFO] [stdout] --> src/ch15_02.rs:9:6 [INFO] [stdout] | [INFO] [stdout] 9 | enum List { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/ch15_02.rs:16:8 [INFO] [stdout] | [INFO] [stdout] 16 | pub fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `List` is never used [INFO] [stdout] --> src/ch15_03.rs:12:6 [INFO] [stdout] | [INFO] [stdout] 12 | enum List { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `tail` is never used [INFO] [stdout] --> src/ch15_03.rs:20:8 [INFO] [stdout] | [INFO] [stdout] 18 | impl List { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] 19 | // 我们希望能够修改 Cons 成员所指向的 List。这 ... [INFO] [stdout] 20 | fn tail(&self) -> Option<&RefCell>> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/ch15_03.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Node` is never constructed [INFO] [stdout] --> src/ch15_04.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | struct Node { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/ch15_04.rs:30:8 [INFO] [stdout] | [INFO] [stdout] 30 | pub fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch16_01_threads` is never used [INFO] [stdout] --> src/ch16.rs:16:8 [INFO] [stdout] | [INFO] [stdout] 16 | pub fn ch16_01_threads() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch16_02_message_passing` is never used [INFO] [stdout] --> src/ch16.rs:52:8 [INFO] [stdout] | [INFO] [stdout] 52 | pub fn ch16_02_message_passing() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch16_03_shared_state` is never used [INFO] [stdout] --> src/ch16.rs:140:8 [INFO] [stdout] | [INFO] [stdout] 140 | pub fn ch16_03_shared_state() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch16_04_extensible_concurrency_sync_and_send` is never used [INFO] [stdout] --> src/ch16.rs:218:8 [INFO] [stdout] | [INFO] [stdout] 218 | pub fn ch16_04_extensible_concurrency_sync_and_send() {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch17_01whatis_oo` is never used [INFO] [stdout] --> src/ch17.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn ch17_01whatis_oo() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `add`, `remove`, `average`, and `update_average` are never used [INFO] [stdout] --> src/ch17.rs:10:16 [INFO] [stdout] | [INFO] [stdout] 9 | impl AveragedCollection { [INFO] [stdout] | ----------------------- methods in this implementation [INFO] [stdout] 10 | pub fn add(&mut self, value: i32) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | pub fn remove(&mut self) -> Option { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 26 | pub fn average(&self) -> f64 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | fn update_average(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch17_02_trait_objects` is never used [INFO] [stdout] --> src/ch17.rs:37:8 [INFO] [stdout] | [INFO] [stdout] 37 | pub fn ch17_02_trait_objects() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `draw` is never used [INFO] [stdout] --> src/ch17.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 38 | pub trait Draw { [INFO] [stdout] | ---- method in this trait [INFO] [stdout] 39 | fn draw(&self); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `run` is never used [INFO] [stdout] --> src/ch17.rs:49:16 [INFO] [stdout] | [INFO] [stdout] 48 | impl Screen { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] 49 | pub fn run(&self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `run` is never used [INFO] [stdout] --> src/ch17.rs:70:20 [INFO] [stdout] | [INFO] [stdout] 66 | / impl Screen [INFO] [stdout] 67 | | where [INFO] [stdout] 68 | | T: Draw, [INFO] [stdout] | |____________________- method in this implementation [INFO] [stdout] 69 | { [INFO] [stdout] 70 | pub fn run(&self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `width`, `height`, and `label` are never read [INFO] [stdout] --> src/ch17.rs:81:13 [INFO] [stdout] | [INFO] [stdout] 80 | pub struct Button { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 81 | pub width: u32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 82 | pub height: u32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 83 | pub label: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch17_03_oo_design_patterns` is never used [INFO] [stdout] --> src/ch17.rs:226:8 [INFO] [stdout] | [INFO] [stdout] 226 | pub fn ch17_03_oo_design_patterns() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add_text`, `content`, `request_review`, `approve`, and `reject` are never used [INFO] [stdout] --> src/ch17.rs:241:20 [INFO] [stdout] | [INFO] [stdout] 240 | impl Post { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 241 | pub fn new() -> Post { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 249 | pub fn add_text(&mut self, text: &str) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 255 | pub fn content(&self) -> &str { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 266 | pub fn request_review(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 273 | pub fn approve(&mut self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 280 | pub fn reject(&mut self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `content` are never used [INFO] [stdout] --> src/ch17.rs:386:20 [INFO] [stdout] | [INFO] [stdout] 385 | impl Post { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 386 | pub fn new() -> DraftPost { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 391 | pub fn content(&self) -> &str { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `add_text` and `request_review` are never used [INFO] [stdout] --> src/ch17.rs:397:20 [INFO] [stdout] | [INFO] [stdout] 396 | impl DraftPost { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] 397 | pub fn add_text(&mut self, text: &str) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 401 | pub fn request_review(self) -> PendingReviewPost { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `approve` is never used [INFO] [stdout] --> src/ch17.rs:413:20 [INFO] [stdout] | [INFO] [stdout] 412 | impl PendingReviewPost { [INFO] [stdout] | ---------------------- method in this implementation [INFO] [stdout] 413 | pub fn approve(self) -> Post { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch18_01_all_the_places_for_patterns` is never used [INFO] [stdout] --> src/ch18.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 2 | pub fn ch18_01_all_the_places_for_patterns() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch18_02_refutability` is never used [INFO] [stdout] --> src/ch18.rs:95:8 [INFO] [stdout] | [INFO] [stdout] 95 | pub fn ch18_02_refutability() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch18_03_pattern_syntax` is never used [INFO] [stdout] --> src/ch18.rs:104:8 [INFO] [stdout] | [INFO] [stdout] 104 | pub fn ch18_03_pattern_syntax() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch19_01_unsafe_rust` is never used [INFO] [stdout] --> src/ch19.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub fn ch19_01_unsafe_rust() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch19_03_advanced_traits` is never used [INFO] [stdout] --> src/ch19.rs:213:8 [INFO] [stdout] | [INFO] [stdout] 213 | pub fn ch19_03_advanced_traits() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `fly` is never used [INFO] [stdout] --> src/ch19.rs:361:16 [INFO] [stdout] | [INFO] [stdout] 360 | impl Human { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] 361 | fn fly(&self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `baby_name` is never used [INFO] [stdout] --> src/ch19.rs:383:16 [INFO] [stdout] | [INFO] [stdout] 382 | impl Dog { [INFO] [stdout] | -------- associated function in this implementation [INFO] [stdout] 383 | fn baby_name() -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch19_04_advanced_types` is never used [INFO] [stdout] --> src/ch19.rs:475:8 [INFO] [stdout] | [INFO] [stdout] 475 | pub fn ch19_04_advanced_types() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ch19_05_advanced_functions_and_closures` is never used [INFO] [stdout] --> src/ch19.rs:661:8 [INFO] [stdout] | [INFO] [stdout] 661 | pub fn ch19_05_advanced_functions_and_closures() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `abs` is never used [INFO] [stdout] --> src/ch19.rs:134:12 [INFO] [stdout] | [INFO] [stdout] 134 | fn abs(input: i32) -> i32; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/ch19_06.rs:35:4 [INFO] [stdout] | [INFO] [stdout] 35 | fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/ch20.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `handle_connection` is never used [INFO] [stdout] --> src/ch20.rs:19:4 [INFO] [stdout] | [INFO] [stdout] 19 | fn handle_connection(mut stream: TcpStream) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `regular_field` is never read [INFO] [stdout] --> src/ch15_05.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 62 | struct SomeStruct { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 63 | regular_field: u8, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `Float` should have a snake case name [INFO] [stdout] --> src/ch08_vec.rs:136:13 [INFO] [stdout] | [INFO] [stdout] 136 | Float => (), [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case (notice the capitalization): `float` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `Text` should have a snake case name [INFO] [stdout] --> src/ch08_vec.rs:137:13 [INFO] [stdout] | [INFO] [stdout] 137 | Text => (), [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `text` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `Int` should have a snake case name [INFO] [stdout] --> src/ch08_vec.rs:138:13 [INFO] [stdout] | [INFO] [stdout] 138 | Int => (), [INFO] [stdout] | ^^^ help: convert the identifier to snake case (notice the capitalization): `int` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `Value` should have a snake case name [INFO] [stdout] --> src/ch17.rs:18:22 [INFO] [stdout] | [INFO] [stdout] 18 | Some(Value) => { [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case (notice the capitalization): `value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 208 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.93s [INFO] running `Command { std: "docker" "inspect" "58a20a8dd2dcab3b9d64663014beb5c2c33a7694c0589c49d6b84e023b73b266", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "58a20a8dd2dcab3b9d64663014beb5c2c33a7694c0589c49d6b84e023b73b266", kill_on_drop: false }` [INFO] [stdout] 58a20a8dd2dcab3b9d64663014beb5c2c33a7694c0589c49d6b84e023b73b266