[INFO] cloning repository https://github.com/zyfjeff/rust_advance_course
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/zyfjeff/rust_advance_course" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzyfjeff%2Frust_advance_course", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzyfjeff%2Frust_advance_course'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 5ccfa75ccb4dd1f1fb73784d4ccc9e6d093cf617
[INFO] testing zyfjeff/rust_advance_course against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzyfjeff%2Frust_advance_course" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/zyfjeff/rust_advance_course
[INFO] finished tweaking git repo https://github.com/zyfjeff/rust_advance_course
[INFO] tweaked toml for git repo https://github.com/zyfjeff/rust_advance_course written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/zyfjeff/rust_advance_course on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/zyfjeff/rust_advance_course already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: unused field `authors` in `workspace.package`
[INFO] [stderr]  --> Cargo.toml:6:1
[INFO] [stderr]   |
[INFO] [stderr] 6 | authors = ["Rust Advanced Study"]
[INFO] [stderr]   | ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_workspace_package_fields` is set to `warn` by default
[INFO] [stderr] help: consider removing the field `workspace.package.authors`
[INFO] [stderr] warning: workspace (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 819a3b80119f8e2ab6ff42999bfef1e197cf3f7f565d33ce2fb8aa24e17f4039
[INFO] running `Command { std: "docker" "start" "819a3b80119f8e2ab6ff42999bfef1e197cf3f7f565d33ce2fb8aa24e17f4039", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "819a3b80119f8e2ab6ff42999bfef1e197cf3f7f565d33ce2fb8aa24e17f4039", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "819a3b80119f8e2ab6ff42999bfef1e197cf3f7f565d33ce2fb8aa24e17f4039" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "819a3b80119f8e2ab6ff42999bfef1e197cf3f7f565d33ce2fb8aa24e17f4039", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "819a3b80119f8e2ab6ff42999bfef1e197cf3f7f565d33ce2fb8aa24e17f4039" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: unused field `authors` in `workspace.package`
[INFO] [stderr]  --> Cargo.toml:6:1
[INFO] [stderr]   |
[INFO] [stderr] 6 | authors = ["Rust Advanced Study"]
[INFO] [stderr]   | ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_workspace_package_fields` is set to `warn` by default
[INFO] [stderr] help: consider removing the field `workspace.package.authors`
[INFO] [stderr] warning: workspace (manifest) generated 1 warning
[INFO] [stderr]    Compiling common v0.1.0 (/opt/rustwide/workdir/common)
[INFO] [stderr]    Compiling quote v1.0.46
[INFO] [stderr]    Compiling shlex v2.0.1
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling ch01-type-system v0.1.0 (/opt/rustwide/workdir/ch01-type-system)
[INFO] [stderr]    Compiling ch04-async-internals v0.1.0 (/opt/rustwide/workdir/ch04-async-internals)
[INFO] [stderr]    Compiling ch02-ownership-advanced v0.1.0 (/opt/rustwide/workdir/ch02-ownership-advanced)
[INFO] [stderr]    Compiling ch08-real-world-patterns v0.1.0 (/opt/rustwide/workdir/ch08-real-world-patterns)
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> ch02-ownership-advanced/src/bin/04_self_referential.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |         unsafe {
[INFO] [stdout]    |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> ch02-ownership-advanced/src/bin/04_self_referential.rs:149:9
[INFO] [stdout]     |
[INFO] [stdout] 149 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `my_select`
[INFO] [stdout]    --> ch04-async-internals/src/bin/05_select_and_join.rs:164:14
[INFO] [stdout]     |
[INFO] [stdout] 164 | macro_rules! my_select {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::future::Future`
[INFO] [stdout]    --> ch04-async-internals/src/bin/04_pin_in_action.rs:155:9
[INFO] [stdout]     |
[INFO] [stdout] 155 |     use std::future::Future;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling cc v1.2.65
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> ch04-async-internals/src/bin/06_channel_impl.rs:182:13
[INFO] [stdout]     |
[INFO] [stdout] 182 |     fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Option<T>> {
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `a`, `b`, and `c` are never read
[INFO] [stdout]   --> ch02-ownership-advanced/src/bin/05_drop_order.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | struct MyStruct {
[INFO] [stdout]    |        -------- fields in this struct
[INFO] [stdout] 40 |     a: DropLogger,
[INFO] [stdout]    |     ^
[INFO] [stdout] 41 |     b: DropLogger,
[INFO] [stdout]    |     ^
[INFO] [stdout] 42 |     c: DropLogger,
[INFO] [stdout]    |     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PanicOnDrop` is never constructed
[INFO] [stdout]    --> ch02-ownership-advanced/src/bin/05_drop_order.rs:208:12
[INFO] [stdout]     |
[INFO] [stdout] 208 |     struct PanicOnDrop;
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling ch07-performance v0.1.0 (/opt/rustwide/workdir/ch07-performance)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> ch04-async-internals/src/bin/04_pin_in_action.rs:140:9
[INFO] [stdout]     |
[INFO] [stdout] 140 |     let mut value = 42i32;
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]    --> ch04-async-internals/src/bin/05_select_and_join.rs:375:8
[INFO] [stdout]     |
[INFO] [stdout] 366 | impl<F: Future + Unpin> FuturesUnordered<F> {
[INFO] [stdout]     | ------------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 375 |     fn is_empty(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> ch04-async-internals/src/bin/04_pin_in_action.rs:188:13
[INFO] [stdout]     |
[INFO] [stdout] 182 | macro_rules! my_pin_mut {
[INFO] [stdout] ...
[INFO] [stdout] 188 |         let mut $var = unsafe { Pin::new_unchecked(&mut $var) };
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 216 |     my_pin_mut!(stack_data);
[INFO] [stdout]     |     ----------------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> ch04-async-internals/src/bin/03_mini_executor.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |     let mut task = SIMPLE_EXEC.with(|exec| {
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> ch04-async-internals/src/bin/03_mini_executor.rs:158:13
[INFO] [stdout]     |
[INFO] [stdout] 158 |         let mut task = SIMPLE_EXEC.with(|exec| {
[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]   --> ch01-type-system/src/bin/01_lifetime_variance.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |     let mut static_vec: Vec<&'static str> = vec!["hello"];
[INFO] [stdout]    |         ----^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> ch04-async-internals/src/bin/03_mini_executor.rs:183:5
[INFO] [stdout]     |
[INFO] [stdout] 181 | struct TimerFuture {
[INFO] [stdout]     |        ----------- field in this struct
[INFO] [stdout] 182 |     shared: Arc<Mutex<TimerShared>>,
[INFO] [stdout] 183 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data` is never read
[INFO] [stdout]    --> ch01-type-system/src/bin/01_lifetime_variance.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 104 | struct Covariant<'a> {
[INFO] [stdout]     |        --------- field in this struct
[INFO] [stdout] 105 |     data: &'a str, // &'a str 对 'a 协变 → Covariant 对 'a 协变
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data` is never read
[INFO] [stdout]    --> ch01-type-system/src/bin/01_lifetime_variance.rs:109:5
[INFO] [stdout]     |
[INFO] [stdout] 108 | struct Invariant<'a> {
[INFO] [stdout]     |        --------- field in this struct
[INFO] [stdout] 109 |     data: &'a mut str, // &'a mut str 对 'a 不变 → Invariant 对 'a 不变
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `handler` is never read
[INFO] [stdout]    --> ch01-type-system/src/bin/01_lifetime_variance.rs:113:5
[INFO] [stdout]     |
[INFO] [stdout] 112 | struct Contravariant<'a> {
[INFO] [stdout]     |        ------------- field in this struct
[INFO] [stdout] 113 |     handler: fn(&'a str), // fn(&'a str) 对 'a 逆变 → Contravariant 对 'a 逆变
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> ch07-performance/src/lib.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct Benchmark {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 54 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `len` and `is_empty` are never used
[INFO] [stdout]   --> ch07-performance/src/bin/01_zero_cost_abstraction.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl<T> Stack<T> {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 44 |     fn len(&self) -> usize {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     fn is_empty(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `multiply` is never used
[INFO] [stdout]    --> ch07-performance/src/bin/01_zero_cost_abstraction.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | trait NumericOp {
[INFO] [stdout]     |       --------- method in this trait
[INFO] [stdout] 104 |     fn add(self, other: Self) -> Self;
[INFO] [stdout] 105 |     fn multiply(self, other: Self) -> Self;
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]   --> ch01-type-system/src/bin/05_type_erasure.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | trait Animal: fmt::Debug {
[INFO] [stdout]    |       ------ method in this trait
[INFO] [stdout] 53 |     fn speak(&self) -> String;
[INFO] [stdout] 54 |     fn name(&self) -> &str;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_any_mut` is never used
[INFO] [stdout]    --> ch01-type-system/src/bin/05_type_erasure.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 107 | trait AnyAnimal: Any + Animal {
[INFO] [stdout]     |       --------- method in this trait
[INFO] [stdout] 108 |     fn as_any(&self) -> &dyn Any;
[INFO] [stdout] 109 |     fn as_any_mut(&mut self) -> &mut dyn Any;
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling syn v2.0.118
[INFO] [stdout] warning: unused variable: `result_small`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:219:9
[INFO] [stdout]     |
[INFO] [stdout] 219 |     let result_small = runner.benchmark("小数据 (8 KB)", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_small`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_medium`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:226:9
[INFO] [stdout]     |
[INFO] [stdout] 226 |     let result_medium = runner.benchmark("中等数据 (800 KB)", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_medium`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_large`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:233:9
[INFO] [stdout]     |
[INFO] [stdout] 233 |     let result_large = runner.benchmark("大数据 (80 MB)", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_large`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_vec`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:263:9
[INFO] [stdout]     |
[INFO] [stdout] 263 |     let result_vec = runner.benchmark("Vec::push", || {
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_vec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_ll`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:272:9
[INFO] [stdout]     |
[INFO] [stdout] 272 |     let result_ll = runner.benchmark("LinkedList::push_back", || {
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_ll`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_hm`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:281:9
[INFO] [stdout]     |
[INFO] [stdout] 281 |     let result_hm = runner.benchmark("HashMap::insert", || {
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_hm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_vec_search`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:292:9
[INFO] [stdout]     |
[INFO] [stdout] 292 |     let result_vec_search = runner.benchmark("Vec 二分查找", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_vec_search`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_hm_search`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:299:9
[INFO] [stdout]     |
[INFO] [stdout] 299 |     let result_hm_search = runner.benchmark("HashMap 查找", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_hm_search`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_sort`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:337:9
[INFO] [stdout]     |
[INFO] [stdout] 337 |     let result_sort = runner.benchmark("slice::sort", || {
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_sort`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_sort_unstable`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:344:9
[INFO] [stdout]     |
[INFO] [stdout] 344 |     let result_sort_unstable = runner.benchmark("slice::sort_unstable", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_sort_unstable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_sorted`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:351:9
[INFO] [stdout]     |
[INFO] [stdout] 351 |     let result_sorted = runner.benchmark("已排序数据 sort", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_sorted`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_reverse`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:358:9
[INFO] [stdout]     |
[INFO] [stdout] 358 |     let result_reverse = runner.benchmark("逆序数据 sort", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_reverse`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_linear`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:388:9
[INFO] [stdout]     |
[INFO] [stdout] 388 |     let result_linear = runner.benchmark("线性搜索 (iter().find)", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_linear`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_binary`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:393:9
[INFO] [stdout]     |
[INFO] [stdout] 393 |     let result_binary = runner.benchmark("二分搜索 (binary_search)", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_binary`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_hash`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:399:9
[INFO] [stdout]     |
[INFO] [stdout] 399 |     let result_hash = runner.benchmark("HashMap 查找", || {
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_hash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_linear_best`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:406:9
[INFO] [stdout]     |
[INFO] [stdout] 406 |     let result_linear_best = runner.benchmark("线性搜索 (最好)", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_linear_best`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_binary_best`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:410:9
[INFO] [stdout]     |
[INFO] [stdout] 410 |     let result_binary_best = runner.benchmark("二分搜索 (最好)", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_binary_best`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `total_ns` is never read
[INFO] [stdout]   --> ch07-performance/src/bin/05_benchmarks.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | struct BenchResult {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 30 |     total_ns: u128,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BenchResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `report` and `compare` are never used
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:102:8
[INFO] [stdout]     |
[INFO] [stdout]  55 | impl BenchRunner {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 102 |     fn report(&self, name: &str, f: impl FnMut()) -> BenchResult {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     fn compare(&self, a: &BenchResult, b: &BenchResult) {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data` is never read
[INFO] [stdout]    --> ch01-type-system/src/bin/06_phantom_data.rs:149:5
[INFO] [stdout]     |
[INFO] [stdout] 148 | struct SendOnly<T> {
[INFO] [stdout]     |        -------- field in this struct
[INFO] [stdout] 149 |     data: T,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_sync` is never used
[INFO] [stdout]    --> ch01-type-system/src/bin/06_phantom_data.rs:168:8
[INFO] [stdout]     |
[INFO] [stdout] 168 |     fn assert_sync<T: Sync>() {}
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `value` is never read
[INFO] [stdout]    --> ch01-type-system/src/bin/06_phantom_data.rs:196:5
[INFO] [stdout]     |
[INFO] [stdout] 195 | struct Wrapper<T> {
[INFO] [stdout]     |        ------- field in this struct
[INFO] [stdout] 196 |     value: T,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Container` is never constructed
[INFO] [stdout]    --> ch01-type-system/src/bin/06_phantom_data.rs:207:8
[INFO] [stdout]     |
[INFO] [stdout] 207 | struct Container<T> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `node_count` is never read
[INFO] [stdout]    --> ch01-type-system/src/bin/03_gat.rs:153:5
[INFO] [stdout]     |
[INFO] [stdout] 151 | struct AdjGraph {
[INFO] [stdout]     |        -------- field in this struct
[INFO] [stdout] 152 |     edges: Vec<(usize, usize, f64)>, // (from, to, weight)
[INFO] [stdout] 153 |     node_count: usize,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]   --> ch01-type-system/src/bin/07_negative_impl.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     use std::rc::Rc;
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `s` are never read
[INFO] [stdout]   --> ch01-type-system/src/bin/07_negative_impl.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     struct AutoDerived {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 30 |         x: i32,
[INFO] [stdout]    |         ^
[INFO] [stdout] 31 |         s: String,
[INFO] [stdout]    |         ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data` is never read
[INFO] [stdout]   --> ch01-type-system/src/bin/07_negative_impl.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct SendButNotSync {
[INFO] [stdout]    |        -------------- field in this struct
[INFO] [stdout] 78 |     data: Vec<i32>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PinnedData` is never constructed
[INFO] [stdout]   --> ch01-type-system/src/bin/07_negative_impl.rs:88:8
[INFO] [stdout]    |
[INFO] [stdout] 88 | struct PinnedData {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_sync` is never used
[INFO] [stdout]   --> ch01-type-system/src/bin/07_negative_impl.rs:97:8
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn assert_sync<T: Sync>() {}
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_unpin` is never used
[INFO] [stdout]   --> ch01-type-system/src/bin/07_negative_impl.rs:98:8
[INFO] [stdout]    |
[INFO] [stdout] 98 |     fn assert_unpin<T: Unpin>() {}
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]    --> ch08-real-world-patterns/src/bin/01_arena_allocation.rs:158:23
[INFO] [stdout]     |
[INFO] [stdout] 158 |     struct Position { x: f32, y: f32 }
[INFO] [stdout]     |            --------   ^       ^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            fields in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Position` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `dx` and `dy` are never read
[INFO] [stdout]    --> ch08-real-world-patterns/src/bin/01_arena_allocation.rs:160:23
[INFO] [stdout]     |
[INFO] [stdout] 160 |     struct Velocity { dx: f32, dy: f32 }
[INFO] [stdout]     |            --------   ^^       ^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            fields in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Velocity` 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: trait `ObjectSafe` is never used
[INFO] [stdout]    --> ch01-type-system/src/bin/04_trait_object.rs:126:7
[INFO] [stdout]     |
[INFO] [stdout] 126 | trait ObjectSafe {
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `unsafe_method` is never used
[INFO] [stdout]    --> ch01-type-system/src/bin/04_trait_object.rs:151:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | trait MostlySafe {
[INFO] [stdout]     |       ---------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 151 |     fn unsafe_method<T>(&self, _t: T)
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w2`
[INFO] [stdout]    --> ch02-ownership-advanced/src/bin/02_leak_and_rc_cycles.rs:124:9
[INFO] [stdout]     |
[INFO] [stdout] 124 |     let w2 = Rc::downgrade(&s);
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_w2`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `value` and `parent` are never read
[INFO] [stdout]   --> ch02-ownership-advanced/src/bin/02_leak_and_rc_cycles.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | struct BadNode {
[INFO] [stdout]    |        ------- fields in this struct
[INFO] [stdout] 18 |     value: String,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 19 |     // 问题：parent 也是 Rc，形成循环引用
[INFO] [stdout] 20 |     parent: RefCell<Option<Rc<BadNode>>>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BadNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Completed` is never constructed
[INFO] [stdout]    --> ch02-ownership-advanced/src/bin/03_pin_and_unpin.rs:215:5
[INFO] [stdout]     |
[INFO] [stdout] 212 | enum FutureState {
[INFO] [stdout]     |      ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 215 |     Completed,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling ch03-unsafe-and-ffi v0.1.0 (/opt/rustwide/workdir/ch03-unsafe-and-ffi)
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling derive_macros v0.1.0 (/opt/rustwide/workdir/ch05-macro-systems/derive_macros)
[INFO] [stderr]    Compiling ch05-macro-systems v0.1.0 (/opt/rustwide/workdir/ch05-macro-systems)
[INFO] [stdout] warning: unused macro definition: `make_util`
[INFO] [stdout]    --> ch05-macro-systems/src/bin/01_declarative_macro.rs:352:14
[INFO] [stdout]     |
[INFO] [stdout] 352 | macro_rules! make_util {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `impl_describable`
[INFO] [stdout]    --> ch05-macro-systems/src/bin/01_declarative_macro.rs:938:20
[INFO] [stdout]     |
[INFO] [stdout] 938 |     pub(crate) use impl_describable;
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `field`
[INFO] [stdout]    --> ch05-macro-systems/src/bin/04_dsl_design.rs:730:14
[INFO] [stdout]     |
[INFO] [stdout] 730 | macro_rules! field {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]   --> ch05-macro-systems/src/bin/03_derive_macro.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 48 | struct Point {
[INFO] [stdout]    |        ----- fields in this struct
[INFO] [stdout] 49 |     x: f64,
[INFO] [stdout]    |     ^
[INFO] [stdout] 50 |     y: f64,
[INFO] [stdout]    |     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `method`, `url`, `status_code`, `headers`, and `body` are never read
[INFO] [stdout]   --> ch05-macro-systems/src/bin/03_derive_macro.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | struct HttpRequest {
[INFO] [stdout]    |        ----------- fields in this struct
[INFO] [stdout] 56 |     method: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 57 |     url: String,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 58 |     status_code: u16,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 59 |     headers: Vec<String>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 60 |     body: Option<Vec<u8>>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `timestamp`, `level`, `message`, `tags`, and `metadata` are never read
[INFO] [stdout]   --> ch05-macro-systems/src/bin/03_derive_macro.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 68 | struct LogEntry {
[INFO] [stdout]    |        -------- fields in this struct
[INFO] [stdout] 69 |     timestamp: u64,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 70 |     level: String,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 71 |     message: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 72 |     tags: Vec<String>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 73 |     metadata: std::collections::HashMap<String, String>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:108:12
[INFO] [stdout]     |
[INFO] [stdout] 108 |     Circle(f64),
[INFO] [stdout]     |     ------ ^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 108 -     Circle(f64),
[INFO] [stdout] 108 +     Circle(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `width` and `height` are never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:109:17
[INFO] [stdout]     |
[INFO] [stdout] 109 |     Rectangle { width: f64, height: f64 },
[INFO] [stdout]     |     ---------   ^^^^^       ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:117:12
[INFO] [stdout]     |
[INFO] [stdout] 117 |     Move { x: i32, y: i32 },
[INFO] [stdout]     |     ----   ^       ^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:118:11
[INFO] [stdout]     |
[INFO] [stdout] 118 |     Write(String),
[INFO] [stdout]     |     ----- ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 118 -     Write(String),
[INFO] [stdout] 118 +     Write(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:119:17
[INFO] [stdout]     |
[INFO] [stdout] 119 |     ChangeColor(i32, i32, i32),
[INFO] [stdout]     |     ----------- ^^^  ^^^  ^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]     |
[INFO] [stdout] 119 -     ChangeColor(i32, i32, i32),
[INFO] [stdout] 119 +     ChangeColor((), (), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Put` and `Patch` are never constructed
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:193:5
[INFO] [stdout]     |
[INFO] [stdout] 190 | enum HttpMethod {
[INFO] [stdout]     |      ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 193 |     Put,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 194 |     Delete,
[INFO] [stdout] 195 |     Patch,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:201:11
[INFO] [stdout]     |
[INFO] [stdout] 201 |     Debug(String),
[INFO] [stdout]     |     ----- ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 201 -     Debug(String),
[INFO] [stdout] 201 +     Debug(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `message` and `code` are never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:202:12
[INFO] [stdout]     |
[INFO] [stdout] 202 |     Info { message: String, code: u32 },
[INFO] [stdout]     |     ----   ^^^^^^^          ^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:204:11
[INFO] [stdout]     |
[INFO] [stdout] 204 |     Error(i32),
[INFO] [stdout]     |     ----- ^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 204 -     Error(i32),
[INFO] [stdout] 204 +     Error(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `user_id` is never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:272:19
[INFO] [stdout]     |
[INFO] [stdout] 272 |     UserCreated { user_id: u64 },
[INFO] [stdout]     |     -----------   ^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `order_id` and `amount` are never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:274:19
[INFO] [stdout]     |
[INFO] [stdout] 274 |     OrderPlaced { order_id: String, amount: f64 },
[INFO] [stdout]     |     -----------   ^^^^^^^^          ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:276:22
[INFO] [stdout]     |
[INFO] [stdout] 276 |     NotificationSent(String),
[INFO] [stdout]     |     ---------------- ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 276 -     NotificationSent(String),
[INFO] [stdout] 276 +     NotificationSent(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `UserDeleted` is never constructed
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:273:5
[INFO] [stdout]     |
[INFO] [stdout] 271 | enum ApiEvent {
[INFO] [stdout]     |      -------- variant in this enum
[INFO] [stdout] 272 |     UserCreated { user_id: u64 },
[INFO] [stdout] 273 |     UserDeleted(u64),
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> ch05-macro-systems/src/bin/01_declarative_macro.rs:233:17
[INFO] [stdout]     |
[INFO] [stdout] 227 | macro_rules! sum_all {
[INFO] [stdout] ...
[INFO] [stdout] 233 |             let mut total = 0;
[INFO] [stdout]     |                 ----^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 298 |     let s0 = sum_all!();
[INFO] [stdout]     |              ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> ch05-macro-systems/src/bin/01_declarative_macro.rs:245:17
[INFO] [stdout]     |
[INFO] [stdout] 242 | macro_rules! at_least_one {
[INFO] [stdout] ...
[INFO] [stdout] 245 |             let mut v = vec![$first];
[INFO] [stdout]     |                 ----^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 305 |     let v1 = at_least_one!(100);
[INFO] [stdout]     |              ------------------ in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> ch05-macro-systems/src/bin/01_declarative_macro.rs:256:17
[INFO] [stdout]     |
[INFO] [stdout] 253 | macro_rules! optional_tail {
[INFO] [stdout] ...
[INFO] [stdout] 256 |             let mut result = vec![$head];
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 311 |     let o1 = optional_tail!(1);
[INFO] [stdout]     |              ----------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/01_declarative_macro.rs:558:35
[INFO] [stdout]     |
[INFO] [stdout] 558 |     enum Color { Red, Green, Blue(i32), Custom(String) }
[INFO] [stdout]     |                              ---- ^^^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Color` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 558 -     enum Color { Red, Green, Blue(i32), Custom(String) }
[INFO] [stdout] 558 +     enum Color { Red, Green, Blue(()), Custom(String) }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Red`, `Green`, and `Custom` are never constructed
[INFO] [stdout]    --> ch05-macro-systems/src/bin/01_declarative_macro.rs:558:18
[INFO] [stdout]     |
[INFO] [stdout] 558 |     enum Color { Red, Green, Blue(i32), Custom(String) }
[INFO] [stdout]     |          -----   ^^^  ^^^^^             ^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          variants in this enum
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Color` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling ch06-traits-patterns v0.1.0 (/opt/rustwide/workdir/ch06-traits-patterns)
[INFO] [stdout] warning: field `path` is never read
[INFO] [stdout]    --> ch06-traits-patterns/src/bin/03_type_state.rs:261:5
[INFO] [stdout]     |
[INFO] [stdout] 260 | struct RuntimeFileHandler {
[INFO] [stdout]     |        ------------------ field in this struct
[INFO] [stdout] 261 |     path: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `body` is never used
[INFO] [stdout]    --> ch06-traits-patterns/src/bin/02_builder.rs:164:8
[INFO] [stdout]     |
[INFO] [stdout] 158 | impl TypedBuilder<HasMethod> {
[INFO] [stdout]     | ---------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 164 |     fn body(mut self, body: impl Into<String>) -> Self {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `METHOD_BIT` is never used
[INFO] [stdout]    --> ch06-traits-patterns/src/bin/02_builder.rs:209:7
[INFO] [stdout]     |
[INFO] [stdout] 209 | const METHOD_BIT: u8 = 0b10;
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `header`, `body`, and `method` are never used
[INFO] [stdout]    --> ch06-traits-patterns/src/bin/02_builder.rs:229:8
[INFO] [stdout]     |
[INFO] [stdout] 219 | impl ConstBuilder<0> {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 229 |     fn header(mut self, key: impl Into<String>, value: impl Into<String>) -> Self {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     fn body(mut self, body: impl Into<String>) -> Self {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     fn method(self, method: impl Into<String>) -> ConstBuilder<METHOD_BIT> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `header` and `body` are never used
[INFO] [stdout]    --> ch06-traits-patterns/src/bin/02_builder.rs:259:8
[INFO] [stdout]     |
[INFO] [stdout] 258 | impl ConstBuilder<URL_BIT> {
[INFO] [stdout]     | -------------------------- methods in this implementation
[INFO] [stdout] 259 |     fn header(mut self, key: impl Into<String>, value: impl Into<String>) -> Self {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 264 |     fn body(mut self, body: impl Into<String>) -> Self {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `header`, `body`, and `url` are never used
[INFO] [stdout]    --> ch06-traits-patterns/src/bin/02_builder.rs:280:8
[INFO] [stdout]     |
[INFO] [stdout] 279 | impl ConstBuilder<METHOD_BIT> {
[INFO] [stdout]     | ----------------------------- methods in this implementation
[INFO] [stdout] 280 |     fn header(mut self, key: impl Into<String>, value: impl Into<String>) -> Self {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     fn body(mut self, body: impl Into<String>) -> Self {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn url(self, url: impl Into<String>) -> ConstBuilder<ALL_REQUIRED> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `header` is never used
[INFO] [stdout]    --> ch06-traits-patterns/src/bin/02_builder.rs:301:8
[INFO] [stdout]     |
[INFO] [stdout] 300 | impl ConstBuilder<ALL_REQUIRED> {
[INFO] [stdout]     | ------------------------------- method in this implementation
[INFO] [stdout] 301 |     fn header(mut self, key: impl Into<String>, value: impl Into<String>) -> Self {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]    --> ch06-traits-patterns/src/bin/04_strategy_via_traits.rs:256:8
[INFO] [stdout]     |
[INFO] [stdout] 254 | trait CompressionStrategy {
[INFO] [stdout]     |       ------------------- method in this trait
[INFO] [stdout] 255 |     fn compress(&self, data: &[u8]) -> Vec<u8>;
[INFO] [stdout] 256 |     fn name(&self) -> &str;
[INFO] [stdout]     |        ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NoCompression` is never constructed
[INFO] [stdout]    --> ch06-traits-patterns/src/bin/04_strategy_via_traits.rs:259:8
[INFO] [stdout]     |
[INFO] [stdout] 259 | struct NoCompression;
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stdout] warning: method `as_str` is never used
[INFO] [stdout]    --> ch06-traits-patterns/src/bin/01_newtype.rs:275:8
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl HeaderValue {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 275 |     fn as_str(&self) -> &str {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PermissionDenied` is never constructed
[INFO] [stdout]   --> ch06-traits-patterns/src/bin/07_error_handling.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | enum UserServiceError {
[INFO] [stdout]    |      ---------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 26 |     PermissionDenied { required: String, actual: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UserServiceError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `DnsError` and `TlsError` are never constructed
[INFO] [stdout]   --> ch06-traits-patterns/src/bin/07_error_handling.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | enum NetworkError {
[INFO] [stdout]    |      ------------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 48 |     DnsError(String),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     TlsError(String),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NetworkError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `version` are never read
[INFO] [stdout]   --> ch06-traits-patterns/src/bin/07_error_handling.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 90 | struct Config {
[INFO] [stdout]    |        ------ fields in this struct
[INFO] [stdout] 91 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 92 |     version: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Config` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `BadRequest` and `RateLimited` are never constructed
[INFO] [stdout]    --> ch06-traits-patterns/src/bin/07_error_handling.rs:306:5
[INFO] [stdout]     |
[INFO] [stdout] 304 | enum WebServiceError {
[INFO] [stdout]     |      --------------- variants in this enum
[INFO] [stdout] 305 |     #[error("请求解析错误: {0}")]
[INFO] [stdout] 306 |     BadRequest(String),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |     RateLimited,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `WebServiceError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Database`, `Cache`, and `External` are never constructed
[INFO] [stdout]    --> ch06-traits-patterns/src/bin/07_error_handling.rs:327:5
[INFO] [stdout]     |
[INFO] [stdout] 325 | enum InternalError {
[INFO] [stdout]     |      ------------- variants in this enum
[INFO] [stdout] 326 |     #[error("数据库: {0}")]
[INFO] [stdout] 327 |     Database(String),
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 330 |     Cache(String),
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 333 |     External(String),
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `InternalError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::result::Result`
[INFO] [stdout]   --> ch03-unsafe-and-ffi/src/bin/06_no_std.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |     use core::result::Result;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ptr2`
[INFO] [stdout]    --> ch03-unsafe-and-ffi/src/bin/01_raw_pointers.rs:143:9
[INFO] [stdout]     |
[INFO] [stdout] 143 |     let ptr2 = addr as *mut i32;
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_ptr2`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ptr3`
[INFO] [stdout]    --> ch03-unsafe-and-ffi/src/bin/01_raw_pointers.rs:149:9
[INFO] [stdout]     |
[INFO] [stdout] 149 |     let ptr3 = ptr1.cast::<i32>();
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_ptr3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]   --> ch03-unsafe-and-ffi/src/bin/06_no_std.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     struct Point {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 42 |         x: i32,
[INFO] [stdout]    |         ^
[INFO] [stdout] 43 |         y: i32,
[INFO] [stdout]    |         ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Point` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `capacity`
[INFO] [stdout]   --> ch03-unsafe-and-ffi/src/bin/03_custom_allocator.rs:22:18
[INFO] [stdout]    |
[INFO] [stdout] 22 |     const fn new(capacity: usize) -> Self {
[INFO] [stdout]    |                  ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_capacity`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]   --> ch03-unsafe-and-ffi/src/bin/06_no_std.rs:90:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | impl<T: Default + Clone, const N: usize> FixedArray<T, N> {
[INFO] [stdout]    | --------------------------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 90 |     fn is_empty(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]    --> ch03-unsafe-and-ffi/src/bin/03_custom_allocator.rs:208:32
[INFO] [stdout]     |
[INFO] [stdout] 208 |         let (allocated, freed, count) = alloc.stats();
[INFO] [stdout]     |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> ch03-unsafe-and-ffi/src/bin/02_union_and_transmute.rs:120:27
[INFO] [stdout]     |
[INFO] [stdout] 120 |     let f: f32 = unsafe { mem::transmute(i) };
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 120 -     let f: f32 = unsafe { mem::transmute(i) };
[INFO] [stdout] 120 +     let f: f32 = unsafe { f32::from_bits(i) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> ch03-unsafe-and-ffi/src/bin/02_union_and_transmute.rs:125:29
[INFO] [stdout]     |
[INFO] [stdout] 125 |     let byte: u8 = unsafe { mem::transmute(b) };
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 125 -     let byte: u8 = unsafe { mem::transmute(b) };
[INFO] [stdout] 125 +     let byte: u8 = unsafe { u8::from(b) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 22.12s
[INFO] running `Command { std: "docker" "inspect" "819a3b80119f8e2ab6ff42999bfef1e197cf3f7f565d33ce2fb8aa24e17f4039", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "819a3b80119f8e2ab6ff42999bfef1e197cf3f7f565d33ce2fb8aa24e17f4039" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: unused field `authors` in `workspace.package`
[INFO] [stderr]  --> Cargo.toml:6:1
[INFO] [stderr]   |
[INFO] [stderr] 6 | authors = ["Rust Advanced Study"]
[INFO] [stderr]   | ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_workspace_package_fields` is set to `warn` by default
[INFO] [stderr] help: consider removing the field `workspace.package.authors`
[INFO] [stderr] warning: workspace (manifest) generated 1 warning
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling ch01-type-system v0.1.0 (/opt/rustwide/workdir/ch01-type-system)
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> ch07-performance/src/lib.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct Benchmark {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 54 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> ch04-async-internals/src/bin/06_channel_impl.rs:182:13
[INFO] [stdout]     |
[INFO] [stdout] 182 |     fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Option<T>> {
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling quote v1.0.46
[INFO] [stdout] warning: trait `ObjectSafe` is never used
[INFO] [stdout]    --> ch01-type-system/src/bin/04_trait_object.rs:126:7
[INFO] [stdout]     |
[INFO] [stdout] 126 | trait ObjectSafe {
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `unsafe_method` is never used
[INFO] [stdout]    --> ch01-type-system/src/bin/04_trait_object.rs:151:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | trait MostlySafe {
[INFO] [stdout]     |       ---------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 151 |     fn unsafe_method<T>(&self, _t: T)
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling ch02-ownership-advanced v0.1.0 (/opt/rustwide/workdir/ch02-ownership-advanced)
[INFO] [stderr]    Compiling ch04-async-internals v0.1.0 (/opt/rustwide/workdir/ch04-async-internals)
[INFO] [stderr]    Compiling ch07-performance v0.1.0 (/opt/rustwide/workdir/ch07-performance)
[INFO] [stdout] warning: methods `len` and `is_empty` are never used
[INFO] [stdout]   --> ch07-performance/src/bin/01_zero_cost_abstraction.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl<T> Stack<T> {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 44 |     fn len(&self) -> usize {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     fn is_empty(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `multiply` is never used
[INFO] [stdout]    --> ch07-performance/src/bin/01_zero_cost_abstraction.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | trait NumericOp {
[INFO] [stdout]     |       --------- method in this trait
[INFO] [stdout] 104 |     fn add(self, other: Self) -> Self;
[INFO] [stdout] 105 |     fn multiply(self, other: Self) -> Self;
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_small`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:219:9
[INFO] [stdout]     |
[INFO] [stdout] 219 |     let result_small = runner.benchmark("小数据 (8 KB)", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_small`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_medium`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:226:9
[INFO] [stdout]     |
[INFO] [stdout] 226 |     let result_medium = runner.benchmark("中等数据 (800 KB)", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_medium`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_large`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:233:9
[INFO] [stdout]     |
[INFO] [stdout] 233 |     let result_large = runner.benchmark("大数据 (80 MB)", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_large`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_vec`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:263:9
[INFO] [stdout]     |
[INFO] [stdout] 263 |     let result_vec = runner.benchmark("Vec::push", || {
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_vec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_ll`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:272:9
[INFO] [stdout]     |
[INFO] [stdout] 272 |     let result_ll = runner.benchmark("LinkedList::push_back", || {
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_ll`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_hm`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:281:9
[INFO] [stdout]     |
[INFO] [stdout] 281 |     let result_hm = runner.benchmark("HashMap::insert", || {
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_hm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_vec_search`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:292:9
[INFO] [stdout]     |
[INFO] [stdout] 292 |     let result_vec_search = runner.benchmark("Vec 二分查找", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_vec_search`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_hm_search`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:299:9
[INFO] [stdout]     |
[INFO] [stdout] 299 |     let result_hm_search = runner.benchmark("HashMap 查找", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_hm_search`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_sort`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:337:9
[INFO] [stdout]     |
[INFO] [stdout] 337 |     let result_sort = runner.benchmark("slice::sort", || {
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_sort`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_sort_unstable`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:344:9
[INFO] [stdout]     |
[INFO] [stdout] 344 |     let result_sort_unstable = runner.benchmark("slice::sort_unstable", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_sort_unstable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_sorted`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:351:9
[INFO] [stdout]     |
[INFO] [stdout] 351 |     let result_sorted = runner.benchmark("已排序数据 sort", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_sorted`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_reverse`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:358:9
[INFO] [stdout]     |
[INFO] [stdout] 358 |     let result_reverse = runner.benchmark("逆序数据 sort", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_reverse`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_linear`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:388:9
[INFO] [stdout]     |
[INFO] [stdout] 388 |     let result_linear = runner.benchmark("线性搜索 (iter().find)", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_linear`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_binary`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:393:9
[INFO] [stdout]     |
[INFO] [stdout] 393 |     let result_binary = runner.benchmark("二分搜索 (binary_search)", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_binary`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_hash`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:399:9
[INFO] [stdout]     |
[INFO] [stdout] 399 |     let result_hash = runner.benchmark("HashMap 查找", || {
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_hash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_linear_best`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:406:9
[INFO] [stdout]     |
[INFO] [stdout] 406 |     let result_linear_best = runner.benchmark("线性搜索 (最好)", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_linear_best`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_binary_best`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:410:9
[INFO] [stdout]     |
[INFO] [stdout] 410 |     let result_binary_best = runner.benchmark("二分搜索 (最好)", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_binary_best`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `total_ns` is never read
[INFO] [stdout]   --> ch07-performance/src/bin/05_benchmarks.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | struct BenchResult {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 30 |     total_ns: u128,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BenchResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling derive_macros v0.1.0 (/opt/rustwide/workdir/ch05-macro-systems/derive_macros)
[INFO] [stdout] warning: methods `report` and `compare` are never used
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:102:8
[INFO] [stdout]     |
[INFO] [stdout]  55 | impl BenchRunner {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 102 |     fn report(&self, name: &str, f: impl FnMut()) -> BenchResult {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     fn compare(&self, a: &BenchResult, b: &BenchResult) {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `make_util`
[INFO] [stdout]    --> ch05-macro-systems/src/bin/01_declarative_macro.rs:352:14
[INFO] [stdout]     |
[INFO] [stdout] 352 | macro_rules! make_util {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `impl_describable`
[INFO] [stdout]    --> ch05-macro-systems/src/bin/01_declarative_macro.rs:938:20
[INFO] [stdout]     |
[INFO] [stdout] 938 |     pub(crate) use impl_describable;
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> ch05-macro-systems/src/bin/01_declarative_macro.rs:233:17
[INFO] [stdout]     |
[INFO] [stdout] 227 | macro_rules! sum_all {
[INFO] [stdout] ...
[INFO] [stdout] 233 |             let mut total = 0;
[INFO] [stdout]     |                 ----^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 298 |     let s0 = sum_all!();
[INFO] [stdout]     |              ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> ch05-macro-systems/src/bin/01_declarative_macro.rs:245:17
[INFO] [stdout]     |
[INFO] [stdout] 242 | macro_rules! at_least_one {
[INFO] [stdout] ...
[INFO] [stdout] 245 |             let mut v = vec![$first];
[INFO] [stdout]     |                 ----^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 305 |     let v1 = at_least_one!(100);
[INFO] [stdout]     |              ------------------ in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> ch05-macro-systems/src/bin/01_declarative_macro.rs:256:17
[INFO] [stdout]     |
[INFO] [stdout] 253 | macro_rules! optional_tail {
[INFO] [stdout] ...
[INFO] [stdout] 256 |             let mut result = vec![$head];
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 311 |     let o1 = optional_tail!(1);
[INFO] [stdout]     |              ----------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/01_declarative_macro.rs:558:35
[INFO] [stdout]     |
[INFO] [stdout] 558 |     enum Color { Red, Green, Blue(i32), Custom(String) }
[INFO] [stdout]     |                              ---- ^^^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Color` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 558 -     enum Color { Red, Green, Blue(i32), Custom(String) }
[INFO] [stdout] 558 +     enum Color { Red, Green, Blue(()), Custom(String) }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Red`, `Green`, and `Custom` are never constructed
[INFO] [stdout]    --> ch05-macro-systems/src/bin/01_declarative_macro.rs:558:18
[INFO] [stdout]     |
[INFO] [stdout] 558 |     enum Color { Red, Green, Blue(i32), Custom(String) }
[INFO] [stdout]     |          -----   ^^^  ^^^^^             ^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          variants in this enum
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Color` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling ch06-traits-patterns v0.1.0 (/opt/rustwide/workdir/ch06-traits-patterns)
[INFO] [stdout] warning: unused import: `std::future::Future`
[INFO] [stdout]    --> ch04-async-internals/src/bin/04_pin_in_action.rs:155:9
[INFO] [stdout]     |
[INFO] [stdout] 155 |     use std::future::Future;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> ch04-async-internals/src/bin/04_pin_in_action.rs:140:9
[INFO] [stdout]     |
[INFO] [stdout] 140 |     let mut value = 42i32;
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> ch04-async-internals/src/bin/04_pin_in_action.rs:188:13
[INFO] [stdout]     |
[INFO] [stdout] 182 | macro_rules! my_pin_mut {
[INFO] [stdout] ...
[INFO] [stdout] 188 |         let mut $var = unsafe { Pin::new_unchecked(&mut $var) };
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 216 |     my_pin_mut!(stack_data);
[INFO] [stdout]     |     ----------------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> ch04-async-internals/src/bin/04_pin_in_action.rs:188:13
[INFO] [stdout]     |
[INFO] [stdout] 182 | macro_rules! my_pin_mut {
[INFO] [stdout] ...
[INFO] [stdout] 188 |         let mut $var = unsafe { Pin::new_unchecked(&mut $var) };
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 511 |         my_pin_mut!(data);
[INFO] [stdout]     |         ----------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `multiply` is never used
[INFO] [stdout]    --> ch07-performance/src/bin/01_zero_cost_abstraction.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | trait NumericOp {
[INFO] [stdout]     |       --------- method in this trait
[INFO] [stdout] 104 |     fn add(self, other: Self) -> Self;
[INFO] [stdout] 105 |     fn multiply(self, other: Self) -> Self;
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling ch03-unsafe-and-ffi v0.1.0 (/opt/rustwide/workdir/ch03-unsafe-and-ffi)
[INFO] [stdout] warning: unused variable: `capacity`
[INFO] [stdout]   --> ch03-unsafe-and-ffi/src/bin/03_custom_allocator.rs:22:18
[INFO] [stdout]    |
[INFO] [stdout] 22 |     const fn new(capacity: usize) -> Self {
[INFO] [stdout]    |                  ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_capacity`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]    --> ch03-unsafe-and-ffi/src/bin/03_custom_allocator.rs:208:32
[INFO] [stdout]     |
[INFO] [stdout] 208 |         let (allocated, freed, count) = alloc.stats();
[INFO] [stdout]     |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `body` is never used
[INFO] [stdout]    --> ch06-traits-patterns/src/bin/02_builder.rs:164:8
[INFO] [stdout]     |
[INFO] [stdout] 158 | impl TypedBuilder<HasMethod> {
[INFO] [stdout]     | ---------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 164 |     fn body(mut self, body: impl Into<String>) -> Self {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `METHOD_BIT` is never used
[INFO] [stdout]    --> ch06-traits-patterns/src/bin/02_builder.rs:209:7
[INFO] [stdout]     |
[INFO] [stdout] 209 | const METHOD_BIT: u8 = 0b10;
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `header`, `body`, and `method` are never used
[INFO] [stdout]    --> ch06-traits-patterns/src/bin/02_builder.rs:229:8
[INFO] [stdout]     |
[INFO] [stdout] 219 | impl ConstBuilder<0> {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 229 |     fn header(mut self, key: impl Into<String>, value: impl Into<String>) -> Self {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     fn body(mut self, body: impl Into<String>) -> Self {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     fn method(self, method: impl Into<String>) -> ConstBuilder<METHOD_BIT> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `header` and `body` are never used
[INFO] [stdout]    --> ch06-traits-patterns/src/bin/02_builder.rs:259:8
[INFO] [stdout]     |
[INFO] [stdout] 258 | impl ConstBuilder<URL_BIT> {
[INFO] [stdout]     | -------------------------- methods in this implementation
[INFO] [stdout] 259 |     fn header(mut self, key: impl Into<String>, value: impl Into<String>) -> Self {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 264 |     fn body(mut self, body: impl Into<String>) -> Self {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `header`, `body`, and `url` are never used
[INFO] [stdout]    --> ch06-traits-patterns/src/bin/02_builder.rs:280:8
[INFO] [stdout]     |
[INFO] [stdout] 279 | impl ConstBuilder<METHOD_BIT> {
[INFO] [stdout]     | ----------------------------- methods in this implementation
[INFO] [stdout] 280 |     fn header(mut self, key: impl Into<String>, value: impl Into<String>) -> Self {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     fn body(mut self, body: impl Into<String>) -> Self {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn url(self, url: impl Into<String>) -> ConstBuilder<ALL_REQUIRED> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `header` is never used
[INFO] [stdout]    --> ch06-traits-patterns/src/bin/02_builder.rs:301:8
[INFO] [stdout]     |
[INFO] [stdout] 300 | impl ConstBuilder<ALL_REQUIRED> {
[INFO] [stdout]     | ------------------------------- method in this implementation
[INFO] [stdout] 301 |     fn header(mut self, key: impl Into<String>, value: impl Into<String>) -> Self {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `path` is never read
[INFO] [stdout]    --> ch06-traits-patterns/src/bin/03_type_state.rs:261:5
[INFO] [stdout]     |
[INFO] [stdout] 260 | struct RuntimeFileHandler {
[INFO] [stdout]     |        ------------------ field in this struct
[INFO] [stdout] 261 |     path: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]    --> ch06-traits-patterns/src/bin/04_strategy_via_traits.rs:256:8
[INFO] [stdout]     |
[INFO] [stdout] 254 | trait CompressionStrategy {
[INFO] [stdout]     |       ------------------- method in this trait
[INFO] [stdout] 255 |     fn compress(&self, data: &[u8]) -> Vec<u8>;
[INFO] [stdout] 256 |     fn name(&self) -> &str;
[INFO] [stdout]     |        ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NoCompression` is never constructed
[INFO] [stdout]    --> ch06-traits-patterns/src/bin/04_strategy_via_traits.rs:259:8
[INFO] [stdout]     |
[INFO] [stdout] 259 | struct NoCompression;
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `METHOD_BIT` is never used
[INFO] [stdout]    --> ch06-traits-patterns/src/bin/02_builder.rs:209:7
[INFO] [stdout]     |
[INFO] [stdout] 209 | const METHOD_BIT: u8 = 0b10;
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `header`, `body`, and `method` are never used
[INFO] [stdout]    --> ch06-traits-patterns/src/bin/02_builder.rs:229:8
[INFO] [stdout]     |
[INFO] [stdout] 219 | impl ConstBuilder<0> {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 229 |     fn header(mut self, key: impl Into<String>, value: impl Into<String>) -> Self {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     fn body(mut self, body: impl Into<String>) -> Self {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     fn method(self, method: impl Into<String>) -> ConstBuilder<METHOD_BIT> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `header` and `body` are never used
[INFO] [stdout]    --> ch06-traits-patterns/src/bin/02_builder.rs:259:8
[INFO] [stdout]     |
[INFO] [stdout] 258 | impl ConstBuilder<URL_BIT> {
[INFO] [stdout]     | -------------------------- methods in this implementation
[INFO] [stdout] 259 |     fn header(mut self, key: impl Into<String>, value: impl Into<String>) -> Self {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 264 |     fn body(mut self, body: impl Into<String>) -> Self {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `header`, `body`, and `url` are never used
[INFO] [stdout]    --> ch06-traits-patterns/src/bin/02_builder.rs:280:8
[INFO] [stdout]     |
[INFO] [stdout] 279 | impl ConstBuilder<METHOD_BIT> {
[INFO] [stdout]     | ----------------------------- methods in this implementation
[INFO] [stdout] 280 |     fn header(mut self, key: impl Into<String>, value: impl Into<String>) -> Self {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     fn body(mut self, body: impl Into<String>) -> Self {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn url(self, url: impl Into<String>) -> ConstBuilder<ALL_REQUIRED> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> ch02-ownership-advanced/src/bin/04_self_referential.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |         unsafe {
[INFO] [stdout]    |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> ch02-ownership-advanced/src/bin/04_self_referential.rs:149:9
[INFO] [stdout]     |
[INFO] [stdout] 149 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `capacity`
[INFO] [stdout]   --> ch03-unsafe-and-ffi/src/bin/03_custom_allocator.rs:22:18
[INFO] [stdout]    |
[INFO] [stdout] 22 |     const fn new(capacity: usize) -> Self {
[INFO] [stdout]    |                  ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_capacity`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]    --> ch03-unsafe-and-ffi/src/bin/03_custom_allocator.rs:208:32
[INFO] [stdout]     |
[INFO] [stdout] 208 |         let (allocated, freed, count) = alloc.stats();
[INFO] [stdout]     |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]   --> ch01-type-system/src/bin/05_type_erasure.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | trait Animal: fmt::Debug {
[INFO] [stdout]    |       ------ method in this trait
[INFO] [stdout] 53 |     fn speak(&self) -> String;
[INFO] [stdout] 54 |     fn name(&self) -> &str;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_any_mut` is never used
[INFO] [stdout]    --> ch01-type-system/src/bin/05_type_erasure.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 107 | trait AnyAnimal: Any + Animal {
[INFO] [stdout]     |       --------- method in this trait
[INFO] [stdout] 108 |     fn as_any(&self) -> &dyn Any;
[INFO] [stdout] 109 |     fn as_any_mut(&mut self) -> &mut dyn Any;
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_small`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:219:9
[INFO] [stdout]     |
[INFO] [stdout] 219 |     let result_small = runner.benchmark("小数据 (8 KB)", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_small`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_medium`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:226:9
[INFO] [stdout]     |
[INFO] [stdout] 226 |     let result_medium = runner.benchmark("中等数据 (800 KB)", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_medium`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_large`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:233:9
[INFO] [stdout]     |
[INFO] [stdout] 233 |     let result_large = runner.benchmark("大数据 (80 MB)", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_large`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_vec`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:263:9
[INFO] [stdout]     |
[INFO] [stdout] 263 |     let result_vec = runner.benchmark("Vec::push", || {
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_vec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_ll`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:272:9
[INFO] [stdout]     |
[INFO] [stdout] 272 |     let result_ll = runner.benchmark("LinkedList::push_back", || {
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_ll`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_hm`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:281:9
[INFO] [stdout]     |
[INFO] [stdout] 281 |     let result_hm = runner.benchmark("HashMap::insert", || {
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_hm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_vec_search`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:292:9
[INFO] [stdout]     |
[INFO] [stdout] 292 |     let result_vec_search = runner.benchmark("Vec 二分查找", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_vec_search`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_hm_search`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:299:9
[INFO] [stdout]     |
[INFO] [stdout] 299 |     let result_hm_search = runner.benchmark("HashMap 查找", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_hm_search`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_sort`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:337:9
[INFO] [stdout]     |
[INFO] [stdout] 337 |     let result_sort = runner.benchmark("slice::sort", || {
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_sort`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_sort_unstable`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:344:9
[INFO] [stdout]     |
[INFO] [stdout] 344 |     let result_sort_unstable = runner.benchmark("slice::sort_unstable", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_sort_unstable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_sorted`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:351:9
[INFO] [stdout]     |
[INFO] [stdout] 351 |     let result_sorted = runner.benchmark("已排序数据 sort", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_sorted`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_reverse`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:358:9
[INFO] [stdout]     |
[INFO] [stdout] 358 |     let result_reverse = runner.benchmark("逆序数据 sort", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_reverse`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_linear`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:388:9
[INFO] [stdout]     |
[INFO] [stdout] 388 |     let result_linear = runner.benchmark("线性搜索 (iter().find)", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_linear`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_binary`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:393:9
[INFO] [stdout]     |
[INFO] [stdout] 393 |     let result_binary = runner.benchmark("二分搜索 (binary_search)", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_binary`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_hash`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:399:9
[INFO] [stdout]     |
[INFO] [stdout] 399 |     let result_hash = runner.benchmark("HashMap 查找", || {
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_hash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_linear_best`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:406:9
[INFO] [stdout]     |
[INFO] [stdout] 406 |     let result_linear_best = runner.benchmark("线性搜索 (最好)", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_linear_best`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_binary_best`
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:410:9
[INFO] [stdout]     |
[INFO] [stdout] 410 |     let result_binary_best = runner.benchmark("二分搜索 (最好)", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_binary_best`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `total_ns` is never read
[INFO] [stdout]   --> ch07-performance/src/bin/05_benchmarks.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | struct BenchResult {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 30 |     total_ns: u128,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BenchResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `report` is never used
[INFO] [stdout]    --> ch07-performance/src/bin/05_benchmarks.rs:102:8
[INFO] [stdout]     |
[INFO] [stdout]  55 | impl BenchRunner {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 102 |     fn report(&self, name: &str, f: impl FnMut()) -> BenchResult {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `path` is never read
[INFO] [stdout]    --> ch06-traits-patterns/src/bin/03_type_state.rs:261:5
[INFO] [stdout]     |
[INFO] [stdout] 260 | struct RuntimeFileHandler {
[INFO] [stdout]     |        ------------------ field in this struct
[INFO] [stdout] 261 |     path: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PermissionDenied` is never constructed
[INFO] [stdout]   --> ch06-traits-patterns/src/bin/07_error_handling.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | enum UserServiceError {
[INFO] [stdout]    |      ---------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 26 |     PermissionDenied { required: String, actual: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UserServiceError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `DnsError` and `TlsError` are never constructed
[INFO] [stdout]   --> ch06-traits-patterns/src/bin/07_error_handling.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | enum NetworkError {
[INFO] [stdout]    |      ------------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 48 |     DnsError(String),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     TlsError(String),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NetworkError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `version` are never read
[INFO] [stdout]   --> ch06-traits-patterns/src/bin/07_error_handling.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 90 | struct Config {
[INFO] [stdout]    |        ------ fields in this struct
[INFO] [stdout] 91 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 92 |     version: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Config` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `BadRequest` and `RateLimited` are never constructed
[INFO] [stdout]    --> ch06-traits-patterns/src/bin/07_error_handling.rs:306:5
[INFO] [stdout]     |
[INFO] [stdout] 304 | enum WebServiceError {
[INFO] [stdout]     |      --------------- variants in this enum
[INFO] [stdout] 305 |     #[error("请求解析错误: {0}")]
[INFO] [stdout] 306 |     BadRequest(String),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |     RateLimited,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `WebServiceError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Database`, `Cache`, and `External` are never constructed
[INFO] [stdout]    --> ch06-traits-patterns/src/bin/07_error_handling.rs:327:5
[INFO] [stdout]     |
[INFO] [stdout] 325 | enum InternalError {
[INFO] [stdout]     |      ------------- variants in this enum
[INFO] [stdout] 326 |     #[error("数据库: {0}")]
[INFO] [stdout] 327 |     Database(String),
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 330 |     Cache(String),
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 333 |     External(String),
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `InternalError` 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 `name` is never used
[INFO] [stdout]    --> ch06-traits-patterns/src/bin/04_strategy_via_traits.rs:256:8
[INFO] [stdout]     |
[INFO] [stdout] 254 | trait CompressionStrategy {
[INFO] [stdout]     |       ------------------- method in this trait
[INFO] [stdout] 255 |     fn compress(&self, data: &[u8]) -> Vec<u8>;
[INFO] [stdout] 256 |     fn name(&self) -> &str;
[INFO] [stdout]     |        ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_str` is never used
[INFO] [stdout]    --> ch06-traits-patterns/src/bin/01_newtype.rs:275:8
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl HeaderValue {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 275 |     fn as_str(&self) -> &str {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ptr2`
[INFO] [stdout]    --> ch03-unsafe-and-ffi/src/bin/01_raw_pointers.rs:143:9
[INFO] [stdout]     |
[INFO] [stdout] 143 |     let ptr2 = addr as *mut i32;
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_ptr2`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ptr3`
[INFO] [stdout]    --> ch03-unsafe-and-ffi/src/bin/01_raw_pointers.rs:149:9
[INFO] [stdout]     |
[INFO] [stdout] 149 |     let ptr3 = ptr1.cast::<i32>();
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_ptr3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::result::Result`
[INFO] [stdout]   --> ch03-unsafe-and-ffi/src/bin/06_no_std.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |     use core::result::Result;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]   --> ch03-unsafe-and-ffi/src/bin/06_no_std.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     struct Point {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 42 |         x: i32,
[INFO] [stdout]    |         ^
[INFO] [stdout] 43 |         y: i32,
[INFO] [stdout]    |         ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Point` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> ch03-unsafe-and-ffi/src/bin/02_union_and_transmute.rs:120:27
[INFO] [stdout]     |
[INFO] [stdout] 120 |     let f: f32 = unsafe { mem::transmute(i) };
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 120 -     let f: f32 = unsafe { mem::transmute(i) };
[INFO] [stdout] 120 +     let f: f32 = unsafe { f32::from_bits(i) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> ch03-unsafe-and-ffi/src/bin/02_union_and_transmute.rs:125:29
[INFO] [stdout]     |
[INFO] [stdout] 125 |     let byte: u8 = unsafe { mem::transmute(b) };
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 125 -     let byte: u8 = unsafe { mem::transmute(b) };
[INFO] [stdout] 125 +     let byte: u8 = unsafe { u8::from(b) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ptr2`
[INFO] [stdout]    --> ch03-unsafe-and-ffi/src/bin/01_raw_pointers.rs:143:9
[INFO] [stdout]     |
[INFO] [stdout] 143 |     let ptr2 = addr as *mut i32;
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_ptr2`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ptr3`
[INFO] [stdout]    --> ch03-unsafe-and-ffi/src/bin/01_raw_pointers.rs:149:9
[INFO] [stdout]     |
[INFO] [stdout] 149 |     let ptr3 = ptr1.cast::<i32>();
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_ptr3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `method` is never used
[INFO] [stdout]   --> ch06-traits-patterns/tests/exercises.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 36 |     impl Builder {
[INFO] [stdout]    |     ------------ method in this implementation
[INFO] [stdout] 37 |         fn url(mut self, url: &str) -> Self { self.url = Some(url.to_string()); self }
[INFO] [stdout] 38 |         fn method(mut self, method: &str) -> Self { self.method = Some(method.to_string()); self }
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::result::Result`
[INFO] [stdout]   --> ch03-unsafe-and-ffi/src/bin/06_no_std.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |     use core::result::Result;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]   --> ch03-unsafe-and-ffi/src/bin/06_no_std.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     struct Point {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 42 |         x: i32,
[INFO] [stdout]    |         ^
[INFO] [stdout] 43 |         y: i32,
[INFO] [stdout]    |         ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Point` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]   --> ch03-unsafe-and-ffi/src/bin/06_no_std.rs:90:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | impl<T: Default + Clone, const N: usize> FixedArray<T, N> {
[INFO] [stdout]    | --------------------------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 90 |     fn is_empty(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> ch03-unsafe-and-ffi/src/bin/02_union_and_transmute.rs:120:27
[INFO] [stdout]     |
[INFO] [stdout] 120 |     let f: f32 = unsafe { mem::transmute(i) };
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 120 -     let f: f32 = unsafe { mem::transmute(i) };
[INFO] [stdout] 120 +     let f: f32 = unsafe { f32::from_bits(i) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> ch03-unsafe-and-ffi/src/bin/02_union_and_transmute.rs:125:29
[INFO] [stdout]     |
[INFO] [stdout] 125 |     let byte: u8 = unsafe { mem::transmute(b) };
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 125 -     let byte: u8 = unsafe { mem::transmute(b) };
[INFO] [stdout] 125 +     let byte: u8 = unsafe { u8::from(b) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> ch03-unsafe-and-ffi/src/bin/02_union_and_transmute.rs:291:31
[INFO] [stdout]     |
[INFO] [stdout] 291 |         let f: f32 = unsafe { mem::transmute(i) };
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 291 -         let f: f32 = unsafe { mem::transmute(i) };
[INFO] [stdout] 291 +         let f: f32 = unsafe { f32::from_bits(i) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> ch03-unsafe-and-ffi/src/bin/02_union_and_transmute.rs:292:32
[INFO] [stdout]     |
[INFO] [stdout] 292 |         let i2: u32 = unsafe { mem::transmute(f) };
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 292 -         let i2: u32 = unsafe { mem::transmute(f) };
[INFO] [stdout] 292 +         let i2: u32 = unsafe { f32::to_bits(f) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> ch03-unsafe-and-ffi/src/bin/02_union_and_transmute.rs:298:30
[INFO] [stdout]     |
[INFO] [stdout] 298 |         let t: u8 = unsafe { mem::transmute(true) };
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 298 -         let t: u8 = unsafe { mem::transmute(true) };
[INFO] [stdout] 298 +         let t: u8 = unsafe { u8::from(true) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> ch03-unsafe-and-ffi/src/bin/02_union_and_transmute.rs:299:30
[INFO] [stdout]     |
[INFO] [stdout] 299 |         let f: u8 = unsafe { mem::transmute(false) };
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 299 -         let f: u8 = unsafe { mem::transmute(false) };
[INFO] [stdout] 299 +         let f: u8 = unsafe { u8::from(false) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling ch05-macro-systems v0.1.0 (/opt/rustwide/workdir/ch05-macro-systems)
[INFO] [stdout] warning: fields `a`, `b`, and `c` are never read
[INFO] [stdout]    --> ch03-unsafe-and-ffi/tests/exercises.rs:338:9
[INFO] [stdout]     |
[INFO] [stdout] 337 |     struct Reordered {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 338 |         a: u8,
[INFO] [stdout]     |         ^
[INFO] [stdout] 339 |         b: u32,
[INFO] [stdout]     |         ^
[INFO] [stdout] 340 |         c: u8,
[INFO] [stdout]     |         ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> ch03-unsafe-and-ffi/tests/exercises.rs:137:27
[INFO] [stdout]     |
[INFO] [stdout] 137 |     let f: f32 = unsafe { mem::transmute(i) };
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 137 -     let f: f32 = unsafe { mem::transmute(i) };
[INFO] [stdout] 137 +     let f: f32 = unsafe { f32::from_bits(i) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> ch03-unsafe-and-ffi/tests/exercises.rs:139:32
[INFO] [stdout]     |
[INFO] [stdout] 139 |     let i_back: u32 = unsafe { mem::transmute(f) };
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 139 -     let i_back: u32 = unsafe { mem::transmute(f) };
[INFO] [stdout] 139 +     let i_back: u32 = unsafe { f32::to_bits(f) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> ch03-unsafe-and-ffi/tests/exercises.rs:145:26
[INFO] [stdout]     |
[INFO] [stdout] 145 |     let t: u8 = unsafe { mem::transmute(true) };
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 145 -     let t: u8 = unsafe { mem::transmute(true) };
[INFO] [stdout] 145 +     let t: u8 = unsafe { u8::from(true) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> ch03-unsafe-and-ffi/tests/exercises.rs:146:26
[INFO] [stdout]     |
[INFO] [stdout] 146 |     let f: u8 = unsafe { mem::transmute(false) };
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 146 -     let f: u8 = unsafe { mem::transmute(false) };
[INFO] [stdout] 146 +     let f: u8 = unsafe { u8::from(false) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]   --> ch05-macro-systems/src/bin/03_derive_macro.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 48 | struct Point {
[INFO] [stdout]    |        ----- fields in this struct
[INFO] [stdout] 49 |     x: f64,
[INFO] [stdout]    |     ^
[INFO] [stdout] 50 |     y: f64,
[INFO] [stdout]    |     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `method`, `url`, `status_code`, `headers`, and `body` are never read
[INFO] [stdout]   --> ch05-macro-systems/src/bin/03_derive_macro.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | struct HttpRequest {
[INFO] [stdout]    |        ----------- fields in this struct
[INFO] [stdout] 56 |     method: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 57 |     url: String,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 58 |     status_code: u16,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 59 |     headers: Vec<String>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 60 |     body: Option<Vec<u8>>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `timestamp`, `level`, `message`, `tags`, and `metadata` are never read
[INFO] [stdout]   --> ch05-macro-systems/src/bin/03_derive_macro.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 68 | struct LogEntry {
[INFO] [stdout]    |        -------- fields in this struct
[INFO] [stdout] 69 |     timestamp: u64,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 70 |     level: String,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 71 |     message: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 72 |     tags: Vec<String>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 73 |     metadata: std::collections::HashMap<String, String>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:108:12
[INFO] [stdout]     |
[INFO] [stdout] 108 |     Circle(f64),
[INFO] [stdout]     |     ------ ^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 108 -     Circle(f64),
[INFO] [stdout] 108 +     Circle(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `width` and `height` are never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:109:17
[INFO] [stdout]     |
[INFO] [stdout] 109 |     Rectangle { width: f64, height: f64 },
[INFO] [stdout]     |     ---------   ^^^^^       ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:117:12
[INFO] [stdout]     |
[INFO] [stdout] 117 |     Move { x: i32, y: i32 },
[INFO] [stdout]     |     ----   ^       ^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:118:11
[INFO] [stdout]     |
[INFO] [stdout] 118 |     Write(String),
[INFO] [stdout]     |     ----- ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 118 -     Write(String),
[INFO] [stdout] 118 +     Write(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:119:17
[INFO] [stdout]     |
[INFO] [stdout] 119 |     ChangeColor(i32, i32, i32),
[INFO] [stdout]     |     ----------- ^^^  ^^^  ^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]     |
[INFO] [stdout] 119 -     ChangeColor(i32, i32, i32),
[INFO] [stdout] 119 +     ChangeColor((), (), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Put` and `Patch` are never constructed
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:193:5
[INFO] [stdout]     |
[INFO] [stdout] 190 | enum HttpMethod {
[INFO] [stdout]     |      ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 193 |     Put,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 194 |     Delete,
[INFO] [stdout] 195 |     Patch,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:201:11
[INFO] [stdout]     |
[INFO] [stdout] 201 |     Debug(String),
[INFO] [stdout]     |     ----- ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 201 -     Debug(String),
[INFO] [stdout] 201 +     Debug(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `message` and `code` are never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:202:12
[INFO] [stdout]     |
[INFO] [stdout] 202 |     Info { message: String, code: u32 },
[INFO] [stdout]     |     ----   ^^^^^^^          ^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:204:11
[INFO] [stdout]     |
[INFO] [stdout] 204 |     Error(i32),
[INFO] [stdout]     |     ----- ^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 204 -     Error(i32),
[INFO] [stdout] 204 +     Error(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `user_id` is never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:272:19
[INFO] [stdout]     |
[INFO] [stdout] 272 |     UserCreated { user_id: u64 },
[INFO] [stdout]     |     -----------   ^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `order_id` and `amount` are never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:274:19
[INFO] [stdout]     |
[INFO] [stdout] 274 |     OrderPlaced { order_id: String, amount: f64 },
[INFO] [stdout]     |     -----------   ^^^^^^^^          ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:276:22
[INFO] [stdout]     |
[INFO] [stdout] 276 |     NotificationSent(String),
[INFO] [stdout]     |     ---------------- ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 276 -     NotificationSent(String),
[INFO] [stdout] 276 +     NotificationSent(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `UserDeleted` is never constructed
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:273:5
[INFO] [stdout]     |
[INFO] [stdout] 271 | enum ApiEvent {
[INFO] [stdout]     |      -------- variant in this enum
[INFO] [stdout] 272 |     UserCreated { user_id: u64 },
[INFO] [stdout] 273 |     UserDeleted(u64),
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `field`
[INFO] [stdout]    --> ch05-macro-systems/src/bin/04_dsl_design.rs:730:14
[INFO] [stdout]     |
[INFO] [stdout] 730 | macro_rules! field {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]   --> ch05-macro-systems/src/bin/03_derive_macro.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 48 | struct Point {
[INFO] [stdout]    |        ----- fields in this struct
[INFO] [stdout] 49 |     x: f64,
[INFO] [stdout]    |     ^
[INFO] [stdout] 50 |     y: f64,
[INFO] [stdout]    |     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `method`, `url`, `status_code`, `headers`, and `body` are never read
[INFO] [stdout]   --> ch05-macro-systems/src/bin/03_derive_macro.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | struct HttpRequest {
[INFO] [stdout]    |        ----------- fields in this struct
[INFO] [stdout] 56 |     method: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 57 |     url: String,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 58 |     status_code: u16,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 59 |     headers: Vec<String>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 60 |     body: Option<Vec<u8>>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `timestamp`, `level`, `message`, `tags`, and `metadata` are never read
[INFO] [stdout]   --> ch05-macro-systems/src/bin/03_derive_macro.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 68 | struct LogEntry {
[INFO] [stdout]    |        -------- fields in this struct
[INFO] [stdout] 69 |     timestamp: u64,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 70 |     level: String,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 71 |     message: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 72 |     tags: Vec<String>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 73 |     metadata: std::collections::HashMap<String, String>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:108:12
[INFO] [stdout]     |
[INFO] [stdout] 108 |     Circle(f64),
[INFO] [stdout]     |     ------ ^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 108 -     Circle(f64),
[INFO] [stdout] 108 +     Circle(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `width` and `height` are never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:109:17
[INFO] [stdout]     |
[INFO] [stdout] 109 |     Rectangle { width: f64, height: f64 },
[INFO] [stdout]     |     ---------   ^^^^^       ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:117:12
[INFO] [stdout]     |
[INFO] [stdout] 117 |     Move { x: i32, y: i32 },
[INFO] [stdout]     |     ----   ^       ^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:118:11
[INFO] [stdout]     |
[INFO] [stdout] 118 |     Write(String),
[INFO] [stdout]     |     ----- ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 118 -     Write(String),
[INFO] [stdout] 118 +     Write(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:119:17
[INFO] [stdout]     |
[INFO] [stdout] 119 |     ChangeColor(i32, i32, i32),
[INFO] [stdout]     |     ----------- ^^^  ^^^  ^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]     |
[INFO] [stdout] 119 -     ChangeColor(i32, i32, i32),
[INFO] [stdout] 119 +     ChangeColor((), (), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:201:11
[INFO] [stdout]     |
[INFO] [stdout] 201 |     Debug(String),
[INFO] [stdout]     |     ----- ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 201 -     Debug(String),
[INFO] [stdout] 201 +     Debug(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `message` and `code` are never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:202:12
[INFO] [stdout]     |
[INFO] [stdout] 202 |     Info { message: String, code: u32 },
[INFO] [stdout]     |     ----   ^^^^^^^          ^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:204:11
[INFO] [stdout]     |
[INFO] [stdout] 204 |     Error(i32),
[INFO] [stdout]     |     ----- ^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 204 -     Error(i32),
[INFO] [stdout] 204 +     Error(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `user_id` is never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:272:19
[INFO] [stdout]     |
[INFO] [stdout] 272 |     UserCreated { user_id: u64 },
[INFO] [stdout]     |     -----------   ^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:273:17
[INFO] [stdout]     |
[INFO] [stdout] 273 |     UserDeleted(u64),
[INFO] [stdout]     |     ----------- ^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 273 -     UserDeleted(u64),
[INFO] [stdout] 273 +     UserDeleted(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `order_id` and `amount` are never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:274:19
[INFO] [stdout]     |
[INFO] [stdout] 274 |     OrderPlaced { order_id: String, amount: f64 },
[INFO] [stdout]     |     -----------   ^^^^^^^^          ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:276:22
[INFO] [stdout]     |
[INFO] [stdout] 276 |     NotificationSent(String),
[INFO] [stdout]     |     ---------------- ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 276 -     NotificationSent(String),
[INFO] [stdout] 276 +     NotificationSent(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PermissionDenied` is never constructed
[INFO] [stdout]   --> ch06-traits-patterns/src/bin/07_error_handling.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | enum UserServiceError {
[INFO] [stdout]    |      ---------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 26 |     PermissionDenied { required: String, actual: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UserServiceError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `DnsError` and `TlsError` are never constructed
[INFO] [stdout]   --> ch06-traits-patterns/src/bin/07_error_handling.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | enum NetworkError {
[INFO] [stdout]    |      ------------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 48 |     DnsError(String),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     TlsError(String),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NetworkError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Database`, `Cache`, and `External` are never constructed
[INFO] [stdout]    --> ch06-traits-patterns/src/bin/07_error_handling.rs:327:5
[INFO] [stdout]     |
[INFO] [stdout] 325 | enum InternalError {
[INFO] [stdout]     |      ------------- variants in this enum
[INFO] [stdout] 326 |     #[error("数据库: {0}")]
[INFO] [stdout] 327 |     Database(String),
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 330 |     Cache(String),
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 333 |     External(String),
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `InternalError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `field`
[INFO] [stdout]    --> ch05-macro-systems/src/bin/04_dsl_design.rs:730:14
[INFO] [stdout]     |
[INFO] [stdout] 730 | macro_rules! field {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `make_util`
[INFO] [stdout]    --> ch05-macro-systems/src/bin/01_declarative_macro.rs:352:14
[INFO] [stdout]     |
[INFO] [stdout] 352 | macro_rules! make_util {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `impl_describable`
[INFO] [stdout]    --> ch05-macro-systems/src/bin/01_declarative_macro.rs:938:20
[INFO] [stdout]     |
[INFO] [stdout] 938 |     pub(crate) use impl_describable;
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> ch05-macro-systems/tests/exercises.rs:685:13
[INFO] [stdout]     |
[INFO] [stdout] 683 | macro_rules! simple_map {
[INFO] [stdout] 684 |     ( $($key:expr => $value:expr),* $(,)? ) => {{
[INFO] [stdout] 685 |         let mut map = std::collections::HashMap::new();
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 710 |     let map: std::collections::HashMap<&str, i32> = simple_map!();
[INFO] [stdout]     |                                                     ------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]   --> ch05-macro-systems/tests/exercises.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct Point {
[INFO] [stdout]    |        ----- fields in this struct
[INFO] [stdout] 20 |     x: f64,
[INFO] [stdout]    |     ^
[INFO] [stdout] 21 |     y: f64,
[INFO] [stdout]    |     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `age`, `active`, and `score` are never read
[INFO] [stdout]   --> ch05-macro-systems/tests/exercises.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | struct Person {
[INFO] [stdout]    |        ------ fields in this struct
[INFO] [stdout] 38 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 39 |     age: u32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 40 |     active: bool,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 41 |     score: f64,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `inner` is never read
[INFO] [stdout]   --> ch05-macro-systems/tests/exercises.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 67 | struct Wrapper {
[INFO] [stdout]    |        ------- field in this struct
[INFO] [stdout] 68 |     inner: Vec<u8>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `database_url`, `max_connections`, `timeout_ms`, `debug_mode`, and `tags` are never read
[INFO] [stdout]   --> ch05-macro-systems/tests/exercises.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 89 | struct Config {
[INFO] [stdout]    |        ------ fields in this struct
[INFO] [stdout] 90 |     database_url: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 91 |     max_connections: u16,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 92 |     timeout_ms: u64,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 93 |     debug_mode: bool,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 94 |     tags: Vec<String>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> ch05-macro-systems/tests/exercises.rs:164:12
[INFO] [stdout]     |
[INFO] [stdout] 164 |     Circle(f64),
[INFO] [stdout]     |     ------ ^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 164 -     Circle(f64),
[INFO] [stdout] 164 +     Circle(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `width` and `height` are never read
[INFO] [stdout]    --> ch05-macro-systems/tests/exercises.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout] 165 |     Rectangle { width: f64, height: f64 },
[INFO] [stdout]     |     ---------   ^^^^^       ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]    --> ch05-macro-systems/tests/exercises.rs:187:10
[INFO] [stdout]     |
[INFO] [stdout] 187 |     TwoD(f64, f64),
[INFO] [stdout]     |     ---- ^^^  ^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]     |
[INFO] [stdout] 187 -     TwoD(f64, f64),
[INFO] [stdout] 187 +     TwoD((), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]    --> ch05-macro-systems/tests/exercises.rs:188:12
[INFO] [stdout]     |
[INFO] [stdout] 188 |     ThreeD(f64, f64, f64),
[INFO] [stdout]     |     ------ ^^^  ^^^  ^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]     |
[INFO] [stdout] 188 -     ThreeD(f64, f64, f64),
[INFO] [stdout] 188 +     ThreeD((), (), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> ch05-macro-systems/tests/exercises.rs:206:16
[INFO] [stdout]     |
[INFO] [stdout] 206 |     BadRequest(String),
[INFO] [stdout]     |     ---------- ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 206 -     BadRequest(String),
[INFO] [stdout] 206 +     BadRequest(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `url` and `permanent` are never read
[INFO] [stdout]    --> ch05-macro-systems/tests/exercises.rs:207:16
[INFO] [stdout]     |
[INFO] [stdout] 207 |     Redirect { url: String, permanent: bool },
[INFO] [stdout]     |     --------   ^^^          ^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]    --> ch05-macro-systems/tests/exercises.rs:448:12
[INFO] [stdout]     |
[INFO] [stdout] 448 |     Move { x: i32, y: i32 },
[INFO] [stdout]     |     ----   ^       ^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> ch05-macro-systems/tests/exercises.rs:449:11
[INFO] [stdout]     |
[INFO] [stdout] 449 |     Write(String),
[INFO] [stdout]     |     ----- ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 449 -     Write(String),
[INFO] [stdout] 449 +     Write(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `South`, `East`, and `West` are never constructed
[INFO] [stdout]    --> ch05-macro-systems/tests/exercises.rs:531:5
[INFO] [stdout]     |
[INFO] [stdout] 529 | enum Direction {
[INFO] [stdout]     |      --------- variants in this enum
[INFO] [stdout] 530 |     North,
[INFO] [stdout] 531 |     South,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 532 |     East,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 533 |     West,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> ch05-macro-systems/src/bin/01_declarative_macro.rs:233:17
[INFO] [stdout]     |
[INFO] [stdout] 227 | macro_rules! sum_all {
[INFO] [stdout] ...
[INFO] [stdout] 233 |             let mut total = 0;
[INFO] [stdout]     |                 ----^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 298 |     let s0 = sum_all!();
[INFO] [stdout]     |              ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> ch05-macro-systems/src/bin/01_declarative_macro.rs:245:17
[INFO] [stdout]     |
[INFO] [stdout] 242 | macro_rules! at_least_one {
[INFO] [stdout] ...
[INFO] [stdout] 245 |             let mut v = vec![$first];
[INFO] [stdout]     |                 ----^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 305 |     let v1 = at_least_one!(100);
[INFO] [stdout]     |              ------------------ in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> ch05-macro-systems/src/bin/01_declarative_macro.rs:256:17
[INFO] [stdout]     |
[INFO] [stdout] 253 | macro_rules! optional_tail {
[INFO] [stdout] ...
[INFO] [stdout] 256 |             let mut result = vec![$head];
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 311 |     let o1 = optional_tail!(1);
[INFO] [stdout]     |              ----------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> ch05-macro-systems/src/bin/01_declarative_macro.rs:233:17
[INFO] [stdout]      |
[INFO] [stdout]  227 | macro_rules! sum_all {
[INFO] [stdout] ...
[INFO] [stdout]  233 |             let mut total = 0;
[INFO] [stdout]      |                 ----^^^^^
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 1137 |         assert_eq!(sum_all!(), 0);
[INFO] [stdout]      |                    ---------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> ch05-macro-systems/src/bin/01_declarative_macro.rs:245:17
[INFO] [stdout]      |
[INFO] [stdout]  242 | macro_rules! at_least_one {
[INFO] [stdout] ...
[INFO] [stdout]  245 |             let mut v = vec![$first];
[INFO] [stdout]      |                 ----^
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 1148 |         let v = at_least_one!(42);
[INFO] [stdout]      |                 ----------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> ch05-macro-systems/src/bin/01_declarative_macro.rs:256:17
[INFO] [stdout]      |
[INFO] [stdout]  253 | macro_rules! optional_tail {
[INFO] [stdout] ...
[INFO] [stdout]  256 |             let mut result = vec![$head];
[INFO] [stdout]      |                 ----^^^^^^
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 1160 |         let v = optional_tail!(10);
[INFO] [stdout]      |                 ------------------ in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> ch05-macro-systems/src/bin/01_declarative_macro.rs:558:35
[INFO] [stdout]     |
[INFO] [stdout] 558 |     enum Color { Red, Green, Blue(i32), Custom(String) }
[INFO] [stdout]     |                              ---- ^^^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Color` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 558 -     enum Color { Red, Green, Blue(i32), Custom(String) }
[INFO] [stdout] 558 +     enum Color { Red, Green, Blue(()), Custom(String) }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Red`, `Green`, and `Custom` are never constructed
[INFO] [stdout]    --> ch05-macro-systems/src/bin/01_declarative_macro.rs:558:18
[INFO] [stdout]     |
[INFO] [stdout] 558 |     enum Color { Red, Green, Blue(i32), Custom(String) }
[INFO] [stdout]     |          -----   ^^^  ^^^^^             ^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          variants in this enum
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Color` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]     --> ch05-macro-systems/src/bin/01_declarative_macro.rs:1252:23
[INFO] [stdout]      |
[INFO] [stdout] 1252 |         enum E { A, B(i32), C }
[INFO] [stdout]      |                     - ^^^
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     field in this variant
[INFO] [stdout]      |
[INFO] [stdout]      = note: `E` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]      |
[INFO] [stdout] 1252 -         enum E { A, B(i32), C }
[INFO] [stdout] 1252 +         enum E { A, B(()), C }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]    --> ch08-real-world-patterns/src/bin/01_arena_allocation.rs:158:23
[INFO] [stdout]     |
[INFO] [stdout] 158 |     struct Position { x: f32, y: f32 }
[INFO] [stdout]     |            --------   ^       ^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            fields in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Position` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `dx` and `dy` are never read
[INFO] [stdout]    --> ch08-real-world-patterns/src/bin/01_arena_allocation.rs:160:23
[INFO] [stdout]     |
[INFO] [stdout] 160 |     struct Velocity { dx: f32, dy: f32 }
[INFO] [stdout]     |            --------   ^^       ^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            fields in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Velocity` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling ch08-real-world-patterns v0.1.0 (/opt/rustwide/workdir/ch08-real-world-patterns)
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]   --> ch01-type-system/src/bin/07_negative_impl.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     use std::rc::Rc;
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> ch01-type-system/src/bin/01_lifetime_variance.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |     let mut static_vec: Vec<&'static str> = vec!["hello"];
[INFO] [stdout]    |         ----^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data` is never read
[INFO] [stdout]    --> ch01-type-system/src/bin/01_lifetime_variance.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 104 | struct Covariant<'a> {
[INFO] [stdout]     |        --------- field in this struct
[INFO] [stdout] 105 |     data: &'a str, // &'a str 对 'a 协变 → Covariant 对 'a 协变
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data` is never read
[INFO] [stdout]    --> ch01-type-system/src/bin/01_lifetime_variance.rs:109:5
[INFO] [stdout]     |
[INFO] [stdout] 108 | struct Invariant<'a> {
[INFO] [stdout]     |        --------- field in this struct
[INFO] [stdout] 109 |     data: &'a mut str, // &'a mut str 对 'a 不变 → Invariant 对 'a 不变
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `handler` is never read
[INFO] [stdout]    --> ch01-type-system/src/bin/01_lifetime_variance.rs:113:5
[INFO] [stdout]     |
[INFO] [stdout] 112 | struct Contravariant<'a> {
[INFO] [stdout]     |        ------------- field in this struct
[INFO] [stdout] 113 |     handler: fn(&'a str), // fn(&'a str) 对 'a 逆变 → Contravariant 对 'a 逆变
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]   --> ch01-type-system/src/bin/05_type_erasure.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | trait Animal: fmt::Debug {
[INFO] [stdout]    |       ------ method in this trait
[INFO] [stdout] 53 |     fn speak(&self) -> String;
[INFO] [stdout] 54 |     fn name(&self) -> &str;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_any_mut` is never used
[INFO] [stdout]    --> ch01-type-system/src/bin/05_type_erasure.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 107 | trait AnyAnimal: Any + Animal {
[INFO] [stdout]     |       --------- method in this trait
[INFO] [stdout] 108 |     fn as_any(&self) -> &dyn Any;
[INFO] [stdout] 109 |     fn as_any_mut(&mut self) -> &mut dyn Any;
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w2`
[INFO] [stdout]    --> ch02-ownership-advanced/src/bin/02_leak_and_rc_cycles.rs:124:9
[INFO] [stdout]     |
[INFO] [stdout] 124 |     let w2 = Rc::downgrade(&s);
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_w2`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `value` and `parent` are never read
[INFO] [stdout]   --> ch02-ownership-advanced/src/bin/02_leak_and_rc_cycles.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | struct BadNode {
[INFO] [stdout]    |        ------- fields in this struct
[INFO] [stdout] 18 |     value: String,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 19 |     // 问题：parent 也是 Rc，形成循环引用
[INFO] [stdout] 20 |     parent: RefCell<Option<Rc<BadNode>>>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BadNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data` is never read
[INFO] [stdout]    --> ch01-type-system/src/bin/06_phantom_data.rs:149:5
[INFO] [stdout]     |
[INFO] [stdout] 148 | struct SendOnly<T> {
[INFO] [stdout]     |        -------- field in this struct
[INFO] [stdout] 149 |     data: T,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_sync` is never used
[INFO] [stdout]    --> ch01-type-system/src/bin/06_phantom_data.rs:168:8
[INFO] [stdout]     |
[INFO] [stdout] 168 |     fn assert_sync<T: Sync>() {}
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `value` is never read
[INFO] [stdout]    --> ch01-type-system/src/bin/06_phantom_data.rs:196:5
[INFO] [stdout]     |
[INFO] [stdout] 195 | struct Wrapper<T> {
[INFO] [stdout]     |        ------- field in this struct
[INFO] [stdout] 196 |     value: T,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Container` is never constructed
[INFO] [stdout]    --> ch01-type-system/src/bin/06_phantom_data.rs:207:8
[INFO] [stdout]     |
[INFO] [stdout] 207 | struct Container<T> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> ch02-ownership-advanced/src/bin/04_self_referential.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |         unsafe {
[INFO] [stdout]    |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> ch02-ownership-advanced/src/bin/04_self_referential.rs:149:9
[INFO] [stdout]     |
[INFO] [stdout] 149 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]   --> ch01-type-system/src/bin/07_negative_impl.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     use std::rc::Rc;
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `s` are never read
[INFO] [stdout]   --> ch01-type-system/src/bin/07_negative_impl.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     struct AutoDerived {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 30 |         x: i32,
[INFO] [stdout]    |         ^
[INFO] [stdout] 31 |         s: String,
[INFO] [stdout]    |         ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data` is never read
[INFO] [stdout]   --> ch01-type-system/src/bin/07_negative_impl.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct SendButNotSync {
[INFO] [stdout]    |        -------------- field in this struct
[INFO] [stdout] 78 |     data: Vec<i32>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PinnedData` is never constructed
[INFO] [stdout]   --> ch01-type-system/src/bin/07_negative_impl.rs:88:8
[INFO] [stdout]    |
[INFO] [stdout] 88 | struct PinnedData {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_sync` is never used
[INFO] [stdout]   --> ch01-type-system/src/bin/07_negative_impl.rs:97:8
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn assert_sync<T: Sync>() {}
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_unpin` is never used
[INFO] [stdout]   --> ch01-type-system/src/bin/07_negative_impl.rs:98:8
[INFO] [stdout]    |
[INFO] [stdout] 98 |     fn assert_unpin<T: Unpin>() {}
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `s` are never read
[INFO] [stdout]   --> ch01-type-system/src/bin/07_negative_impl.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     struct AutoDerived {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 30 |         x: i32,
[INFO] [stdout]    |         ^
[INFO] [stdout] 31 |         s: String,
[INFO] [stdout]    |         ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data` is never read
[INFO] [stdout]   --> ch01-type-system/src/bin/07_negative_impl.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct SendButNotSync {
[INFO] [stdout]    |        -------------- field in this struct
[INFO] [stdout] 78 |     data: Vec<i32>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PinnedData` is never constructed
[INFO] [stdout]   --> ch01-type-system/src/bin/07_negative_impl.rs:88:8
[INFO] [stdout]    |
[INFO] [stdout] 88 | struct PinnedData {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_sync` is never used
[INFO] [stdout]   --> ch01-type-system/src/bin/07_negative_impl.rs:97:8
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn assert_sync<T: Sync>() {}
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_unpin` is never used
[INFO] [stdout]   --> ch01-type-system/src/bin/07_negative_impl.rs:98:8
[INFO] [stdout]    |
[INFO] [stdout] 98 |     fn assert_unpin<T: Unpin>() {}
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> ch04-async-internals/src/bin/06_channel_impl.rs:182:13
[INFO] [stdout]     |
[INFO] [stdout] 182 |     fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Option<T>> {
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `node_count` is never read
[INFO] [stdout]    --> ch01-type-system/src/bin/03_gat.rs:153:5
[INFO] [stdout]     |
[INFO] [stdout] 151 | struct AdjGraph {
[INFO] [stdout]     |        -------- field in this struct
[INFO] [stdout] 152 |     edges: Vec<(usize, usize, f64)>, // (from, to, weight)
[INFO] [stdout] 153 |     node_count: usize,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused arithmetic operation that must be used
[INFO] [stdout]     --> ch05-macro-systems/src/bin/04_dsl_design.rs:865:9
[INFO] [stdout]      |
[INFO] [stdout]  849 | macro_rules! checked_div {
[INFO] [stdout] ...
[INFO] [stdout]  865 |         __num_val / __den_val
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^ the arithmetic operation produces a value
[INFO] [stdout] ...
[INFO] [stdout] 1432 |         checked_div!(10, 0);
[INFO] [stdout]      |         ------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1432 |         let _ = checked_div!(10, 0);;
[INFO] [stdout]      |         +++++++                    +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> ch04-async-internals/src/bin/03_mini_executor.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |     let mut task = SIMPLE_EXEC.with(|exec| {
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> ch04-async-internals/src/bin/03_mini_executor.rs:158:13
[INFO] [stdout]     |
[INFO] [stdout] 158 |         let mut task = SIMPLE_EXEC.with(|exec| {
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> ch04-async-internals/src/bin/03_mini_executor.rs:183:5
[INFO] [stdout]     |
[INFO] [stdout] 181 | struct TimerFuture {
[INFO] [stdout]     |        ----------- field in this struct
[INFO] [stdout] 182 |     shared: Arc<Mutex<TimerShared>>,
[INFO] [stdout] 183 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling syn v2.0.118
[INFO] [stdout] warning: trait `ObjectSafe` is never used
[INFO] [stdout]    --> ch01-type-system/src/bin/04_trait_object.rs:126:7
[INFO] [stdout]     |
[INFO] [stdout] 126 | trait ObjectSafe {
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `unsafe_method` is never used
[INFO] [stdout]    --> ch01-type-system/src/bin/04_trait_object.rs:151:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | trait MostlySafe {
[INFO] [stdout]     |       ---------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 151 |     fn unsafe_method<T>(&self, _t: T)
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `my_select`
[INFO] [stdout]    --> ch04-async-internals/src/bin/05_select_and_join.rs:164:14
[INFO] [stdout]     |
[INFO] [stdout] 164 | macro_rules! my_select {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]    --> ch04-async-internals/src/bin/05_select_and_join.rs:375:8
[INFO] [stdout]     |
[INFO] [stdout] 366 | impl<F: Future + Unpin> FuturesUnordered<F> {
[INFO] [stdout]     | ------------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 375 |     fn is_empty(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> ch04-async-internals/src/bin/03_mini_executor.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |     let mut task = SIMPLE_EXEC.with(|exec| {
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> ch04-async-internals/src/bin/03_mini_executor.rs:158:13
[INFO] [stdout]     |
[INFO] [stdout] 158 |         let mut task = SIMPLE_EXEC.with(|exec| {
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `a`, `b`, and `c` are never read
[INFO] [stdout]   --> ch02-ownership-advanced/src/bin/05_drop_order.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | struct MyStruct {
[INFO] [stdout]    |        -------- fields in this struct
[INFO] [stdout] 40 |     a: DropLogger,
[INFO] [stdout]    |     ^
[INFO] [stdout] 41 |     b: DropLogger,
[INFO] [stdout]    |     ^
[INFO] [stdout] 42 |     c: DropLogger,
[INFO] [stdout]    |     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PanicOnDrop` is never constructed
[INFO] [stdout]    --> ch02-ownership-advanced/src/bin/05_drop_order.rs:208:12
[INFO] [stdout]     |
[INFO] [stdout] 208 |     struct PanicOnDrop;
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `a`, `b`, and `c` are never read
[INFO] [stdout]    --> ch02-ownership-advanced/src/bin/05_drop_order.rs:394:13
[INFO] [stdout]     |
[INFO] [stdout] 393 |         struct Outer {
[INFO] [stdout]     |                ----- fields in this struct
[INFO] [stdout] 394 |             a: Inner,
[INFO] [stdout]     |             ^
[INFO] [stdout] 395 |             b: Inner,
[INFO] [stdout]     |             ^
[INFO] [stdout] 396 |             c: Inner,
[INFO] [stdout]     |             ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data` is never read
[INFO] [stdout]    --> ch01-type-system/src/bin/06_phantom_data.rs:149:5
[INFO] [stdout]     |
[INFO] [stdout] 148 | struct SendOnly<T> {
[INFO] [stdout]     |        -------- field in this struct
[INFO] [stdout] 149 |     data: T,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_sync` is never used
[INFO] [stdout]    --> ch01-type-system/src/bin/06_phantom_data.rs:168:8
[INFO] [stdout]     |
[INFO] [stdout] 168 |     fn assert_sync<T: Sync>() {}
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `value` is never read
[INFO] [stdout]    --> ch01-type-system/src/bin/06_phantom_data.rs:196:5
[INFO] [stdout]     |
[INFO] [stdout] 195 | struct Wrapper<T> {
[INFO] [stdout]     |        ------- field in this struct
[INFO] [stdout] 196 |     value: T,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Container` is never constructed
[INFO] [stdout]    --> ch01-type-system/src/bin/06_phantom_data.rs:207:8
[INFO] [stdout]     |
[INFO] [stdout] 207 | struct Container<T> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Completed` is never constructed
[INFO] [stdout]    --> ch02-ownership-advanced/src/bin/03_pin_and_unpin.rs:215:5
[INFO] [stdout]     |
[INFO] [stdout] 212 | enum FutureState {
[INFO] [stdout]     |      ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 215 |     Completed,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_not_unpin` is never used
[INFO] [stdout]    --> ch02-ownership-advanced/src/bin/03_pin_and_unpin.rs:336:12
[INFO] [stdout]     |
[INFO] [stdout] 336 |         fn assert_not_unpin<T>() {}
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `value` is never read
[INFO] [stdout]    --> ch04-async-internals/src/bin/03_mini_executor.rs:558:29
[INFO] [stdout]     |
[INFO] [stdout] 558 |             let mut value = 0;
[INFO] [stdout]     |                             ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 562 |             value = 42;
[INFO] [stdout]     |             ---------- `value` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> ch04-async-internals/src/bin/03_mini_executor.rs:183:5
[INFO] [stdout]     |
[INFO] [stdout] 181 | struct TimerFuture {
[INFO] [stdout]     |        ----------- field in this struct
[INFO] [stdout] 182 |     shared: Arc<Mutex<TimerShared>>,
[INFO] [stdout] 183 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `my_select`
[INFO] [stdout]    --> ch04-async-internals/src/bin/05_select_and_join.rs:164:14
[INFO] [stdout]     |
[INFO] [stdout] 164 | macro_rules! my_select {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> ch07-performance/src/lib.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct Benchmark {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 54 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> ch07-performance/src/lib.rs:125:17
[INFO] [stdout]     |
[INFO] [stdout] 125 |         assert!(avg >= 0);
[INFO] [stdout]     |                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]    --> ch04-async-internals/src/bin/05_select_and_join.rs:375:8
[INFO] [stdout]     |
[INFO] [stdout] 366 | impl<F: Future + Unpin> FuturesUnordered<F> {
[INFO] [stdout]     | ------------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 375 |     fn is_empty(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]    --> ch08-real-world-patterns/src/bin/01_arena_allocation.rs:158:23
[INFO] [stdout]     |
[INFO] [stdout] 158 |     struct Position { x: f32, y: f32 }
[INFO] [stdout]     |            --------   ^       ^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            fields in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Position` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `dx` and `dy` are never read
[INFO] [stdout]    --> ch08-real-world-patterns/src/bin/01_arena_allocation.rs:160:23
[INFO] [stdout]     |
[INFO] [stdout] 160 |     struct Velocity { dx: f32, dy: f32 }
[INFO] [stdout]     |            --------   ^^       ^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            fields in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Velocity` 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: variant `Completed` is never constructed
[INFO] [stdout]    --> ch02-ownership-advanced/src/bin/03_pin_and_unpin.rs:215:5
[INFO] [stdout]     |
[INFO] [stdout] 212 | enum FutureState {
[INFO] [stdout]     |      ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 215 |     Completed,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `a`, `b`, and `c` are never read
[INFO] [stdout]   --> ch02-ownership-advanced/src/bin/05_drop_order.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | struct MyStruct {
[INFO] [stdout]    |        -------- fields in this struct
[INFO] [stdout] 40 |     a: DropLogger,
[INFO] [stdout]    |     ^
[INFO] [stdout] 41 |     b: DropLogger,
[INFO] [stdout]    |     ^
[INFO] [stdout] 42 |     c: DropLogger,
[INFO] [stdout]    |     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PanicOnDrop` is never constructed
[INFO] [stdout]    --> ch02-ownership-advanced/src/bin/05_drop_order.rs:208:12
[INFO] [stdout]     |
[INFO] [stdout] 208 |     struct PanicOnDrop;
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Weak`
[INFO] [stdout]   --> ch02-ownership-advanced/tests/exercises.rs:69:23
[INFO] [stdout]    |
[INFO] [stdout] 69 |     use std::rc::{Rc, Weak};
[INFO] [stdout]    |                       ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::pin::Pin`
[INFO] [stdout]    --> ch02-ownership-advanced/tests/exercises.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |     use std::pin::Pin;
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> ch01-type-system/src/bin/01_lifetime_variance.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |     let mut static_vec: Vec<&'static str> = vec!["hello"];
[INFO] [stdout]    |         ----^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data` is never read
[INFO] [stdout]    --> ch01-type-system/src/bin/01_lifetime_variance.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 104 | struct Covariant<'a> {
[INFO] [stdout]     |        --------- field in this struct
[INFO] [stdout] 105 |     data: &'a str, // &'a str 对 'a 协变 → Covariant 对 'a 协变
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data` is never read
[INFO] [stdout]    --> ch01-type-system/src/bin/01_lifetime_variance.rs:109:5
[INFO] [stdout]     |
[INFO] [stdout] 108 | struct Invariant<'a> {
[INFO] [stdout]     |        --------- field in this struct
[INFO] [stdout] 109 |     data: &'a mut str, // &'a mut str 对 'a 不变 → Invariant 对 'a 不变
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `handler` is never read
[INFO] [stdout]    --> ch01-type-system/src/bin/01_lifetime_variance.rs:113:5
[INFO] [stdout]     |
[INFO] [stdout] 112 | struct Contravariant<'a> {
[INFO] [stdout]     |        ------------- field in this struct
[INFO] [stdout] 113 |     handler: fn(&'a str), // fn(&'a str) 对 'a 逆变 → Contravariant 对 'a 逆变
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> ch02-ownership-advanced/tests/exercises.rs:145:13
[INFO] [stdout]     |
[INFO] [stdout] 145 |             unsafe {
[INFO] [stdout]     |             ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> ch04-async-internals/tests/exercises.rs:200:13
[INFO] [stdout]     |
[INFO] [stdout] 200 |     fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Option<T>> {
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `a`, `b`, and `c` are never read
[INFO] [stdout]    --> ch02-ownership-advanced/tests/exercises.rs:189:9
[INFO] [stdout]     |
[INFO] [stdout] 188 |     struct Outer {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] 189 |         a: Inner,
[INFO] [stdout]     |         ^
[INFO] [stdout] 190 |         b: Inner,
[INFO] [stdout]     |         ^
[INFO] [stdout] 191 |         c: Inner,
[INFO] [stdout]     |         ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> ch04-async-internals/tests/exercises.rs:224:17
[INFO] [stdout]     |
[INFO] [stdout] 224 |         fn poll(mut self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll<i32> {
[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]    --> ch04-async-internals/tests/exercises.rs:287:9
[INFO] [stdout]     |
[INFO] [stdout] 287 |     let mut cx = Context::from_waker(&waker);
[INFO] [stdout]     |         ----^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reference`
[INFO] [stdout]   --> ch01-type-system/tests/exercises.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let reference: &mut Vec<&str> = &mut data;
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reference`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Describable` is never used
[INFO] [stdout]    --> ch01-type-system/tests/exercises.rs:248:11
[INFO] [stdout]     |
[INFO] [stdout] 248 |     trait Describable: Any {
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Pinned` is never constructed
[INFO] [stdout]    --> ch01-type-system/tests/exercises.rs:413:12
[INFO] [stdout]     |
[INFO] [stdout] 413 |     struct Pinned {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_unpin` is never used
[INFO] [stdout]    --> ch01-type-system/tests/exercises.rs:417:8
[INFO] [stdout]     |
[INFO] [stdout] 417 |     fn assert_unpin<T: Unpin>() {}
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::future::Future`
[INFO] [stdout]    --> ch04-async-internals/src/bin/04_pin_in_action.rs:155:9
[INFO] [stdout]     |
[INFO] [stdout] 155 |     use std::future::Future;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> ch04-async-internals/src/bin/04_pin_in_action.rs:140:9
[INFO] [stdout]     |
[INFO] [stdout] 140 |     let mut value = 42i32;
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> ch04-async-internals/src/bin/04_pin_in_action.rs:188:13
[INFO] [stdout]     |
[INFO] [stdout] 182 | macro_rules! my_pin_mut {
[INFO] [stdout] ...
[INFO] [stdout] 188 |         let mut $var = unsafe { Pin::new_unchecked(&mut $var) };
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 216 |     my_pin_mut!(stack_data);
[INFO] [stdout]     |     ----------------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `node_count` is never read
[INFO] [stdout]    --> ch01-type-system/src/bin/03_gat.rs:153:5
[INFO] [stdout]     |
[INFO] [stdout] 151 | struct AdjGraph {
[INFO] [stdout]     |        -------- field in this struct
[INFO] [stdout] 152 |     edges: Vec<(usize, usize, f64)>, // (from, to, weight)
[INFO] [stdout] 153 |     node_count: usize,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> ch04-async-internals/src/bin/02_waker.rs:465:13
[INFO] [stdout]     |
[INFO] [stdout] 465 |         let mut cx = Context::from_waker(&waker);
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w2`
[INFO] [stdout]    --> ch02-ownership-advanced/src/bin/02_leak_and_rc_cycles.rs:124:9
[INFO] [stdout]     |
[INFO] [stdout] 124 |     let w2 = Rc::downgrade(&s);
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_w2`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `value` is never read
[INFO] [stdout]   --> ch02-ownership-advanced/src/bin/02_leak_and_rc_cycles.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | struct BadNode {
[INFO] [stdout]    |        ------- field in this struct
[INFO] [stdout] 18 |     value: String,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BadNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling common v0.1.0 (/opt/rustwide/workdir/common)
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]  --> ch05-macro-systems/derive_macros/tests/derive_tests.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Point {
[INFO] [stdout]   |        ----- fields in this struct
[INFO] [stdout] 7 |     x: f64,
[INFO] [stdout]   |     ^
[INFO] [stdout] 8 |     y: f64,
[INFO] [stdout]   |     ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> ch05-macro-systems/derive_macros/tests/derive_tests.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 |     Circle(f64),
[INFO] [stdout]    |     ------ ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 36 -     Circle(f64),
[INFO] [stdout] 36 +     Circle(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `width` and `height` are never read
[INFO] [stdout]   --> ch05-macro-systems/derive_macros/tests/derive_tests.rs:37:17
[INFO] [stdout]    |
[INFO] [stdout] 37 |     Rectangle { width: f64, height: f64 },
[INFO] [stdout]    |     ---------   ^^^^^       ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Pending` is never constructed
[INFO] [stdout]   --> ch05-macro-systems/derive_macros/tests/derive_tests.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 87 | enum Status {
[INFO] [stdout]    |      ------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 90 |     Pending,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]    --> ch05-macro-systems/derive_macros/tests/derive_tests.rs:104:12
[INFO] [stdout]     |
[INFO] [stdout] 104 |     Move { x: i32, y: i32 },
[INFO] [stdout]     |     ----   ^       ^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> ch05-macro-systems/derive_macros/tests/derive_tests.rs:105:11
[INFO] [stdout]     |
[INFO] [stdout] 105 |     Write(String),
[INFO] [stdout]     |     ----- ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 105 -     Write(String),
[INFO] [stdout] 105 +     Write(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 36.71s
[INFO] running `Command { std: "docker" "inspect" "819a3b80119f8e2ab6ff42999bfef1e197cf3f7f565d33ce2fb8aa24e17f4039", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "819a3b80119f8e2ab6ff42999bfef1e197cf3f7f565d33ce2fb8aa24e17f4039" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: unused field `authors` in `workspace.package`
[INFO] [stderr]  --> Cargo.toml:6:1
[INFO] [stderr]   |
[INFO] [stderr] 6 | authors = ["Rust Advanced Study"]
[INFO] [stderr]   | ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_workspace_package_fields` is set to `warn` by default
[INFO] [stderr] help: consider removing the field `workspace.package.authors`
[INFO] [stderr] warning: workspace (manifest) generated 1 warning
[INFO] [stderr] warning: field `name` is never read
[INFO] [stderr]   --> ch07-performance/src/lib.rs:54:5
[INFO] [stderr]    |
[INFO] [stderr] 53 | pub struct Benchmark {
[INFO] [stderr]    |            --------- field in this struct
[INFO] [stderr] 54 |     name: String,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `reference`
[INFO] [stderr]   --> ch01-type-system/tests/exercises.rs:32:9
[INFO] [stderr]    |
[INFO] [stderr] 32 |     let reference: &mut Vec<&str> = &mut data;
[INFO] [stderr]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reference`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait `Describable` is never used
[INFO] [stderr]    --> ch01-type-system/tests/exercises.rs:248:11
[INFO] [stderr]     |
[INFO] [stderr] 248 |     trait Describable: Any {
[INFO] [stderr]     |           ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Pinned` is never constructed
[INFO] [stderr]    --> ch01-type-system/tests/exercises.rs:413:12
[INFO] [stderr]     |
[INFO] [stderr] 413 |     struct Pinned {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `assert_unpin` is never used
[INFO] [stderr]    --> ch01-type-system/tests/exercises.rs:417:8
[INFO] [stderr]     |
[INFO] [stderr] 417 |     fn assert_unpin<T: Unpin>() {}
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::future::Future`
[INFO] [stderr]    --> ch04-async-internals/src/bin/04_pin_in_action.rs:155:9
[INFO] [stderr]     |
[INFO] [stderr] 155 |     use std::future::Future;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> ch04-async-internals/src/bin/04_pin_in_action.rs:140:9
[INFO] [stderr]     |
[INFO] [stderr] 140 |     let mut value = 42i32;
[INFO] [stderr]     |         ----^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> ch04-async-internals/src/bin/04_pin_in_action.rs:188:13
[INFO] [stderr]     |
[INFO] [stderr] 182 | macro_rules! my_pin_mut {
[INFO] [stderr] ...
[INFO] [stderr] 188 |         let mut $var = unsafe { Pin::new_unchecked(&mut $var) };
[INFO] [stderr]     |             ----^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] ...
[INFO] [stderr] 216 |     my_pin_mut!(stack_data);
[INFO] [stderr]     |     ----------------------- in this macro invocation
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `w2`
[INFO] [stderr]    --> ch02-ownership-advanced/src/bin/02_leak_and_rc_cycles.rs:124:9
[INFO] [stderr]     |
[INFO] [stderr] 124 |     let w2 = Rc::downgrade(&s);
[INFO] [stderr]     |         ^^ help: if this is intentional, prefix it with an underscore: `_w2`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `value` is never read
[INFO] [stderr]   --> ch02-ownership-advanced/src/bin/02_leak_and_rc_cycles.rs:18:5
[INFO] [stderr]    |
[INFO] [stderr] 17 | struct BadNode {
[INFO] [stderr]    |        ------- field in this struct
[INFO] [stderr] 18 |     value: String,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `BadNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> ch04-async-internals/src/bin/02_waker.rs:465:13
[INFO] [stderr]     |
[INFO] [stderr] 465 |         let mut cx = Context::from_waker(&waker);
[INFO] [stderr]     |             ----^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `x` and `y` are never read
[INFO] [stderr]    --> ch08-real-world-patterns/src/bin/01_arena_allocation.rs:158:23
[INFO] [stderr]     |
[INFO] [stderr] 158 |     struct Position { x: f32, y: f32 }
[INFO] [stderr]     |            --------   ^       ^
[INFO] [stderr]     |            |
[INFO] [stderr]     |            fields in this struct
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Position` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `dx` and `dy` are never read
[INFO] [stderr]    --> ch08-real-world-patterns/src/bin/01_arena_allocation.rs:160:23
[INFO] [stderr]     |
[INFO] [stderr] 160 |     struct Velocity { dx: f32, dy: f32 }
[INFO] [stderr]     |            --------   ^^       ^^
[INFO] [stderr]     |            |
[INFO] [stderr]     |            fields in this struct
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Velocity` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> ch04-async-internals/src/bin/06_channel_impl.rs:182:13
[INFO] [stderr]     |
[INFO] [stderr] 182 |     fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Option<T>> {
[INFO] [stderr]     |             ----^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]   --> ch02-ownership-advanced/src/bin/04_self_referential.rs:72:9
[INFO] [stderr]    |
[INFO] [stderr] 72 |         unsafe {
[INFO] [stderr]    |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]    --> ch02-ownership-advanced/src/bin/04_self_referential.rs:149:9
[INFO] [stderr]     |
[INFO] [stderr] 149 |         unsafe {
[INFO] [stderr]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: `ch07-performance` (lib) generated 1 warning
[INFO] [stderr] warning: `ch01-type-system` (test "exercises") generated 4 warnings (run `cargo fix --test "exercises" -p ch01-type-system` to apply 1 suggestion)
[INFO] [stderr] warning: `ch04-async-internals` (bin "04_pin_in_action") generated 3 warnings (run `cargo fix --bin "04_pin_in_action" -p ch04-async-internals` to apply 3 suggestions)
[INFO] [stderr] warning: `ch02-ownership-advanced` (bin "02_leak_and_rc_cycles" test) generated 2 warnings (run `cargo fix --bin "02_leak_and_rc_cycles" -p ch02-ownership-advanced --tests` to apply 1 suggestion)
[INFO] [stderr] warning: `ch04-async-internals` (bin "02_waker" test) generated 1 warning (run `cargo fix --bin "02_waker" -p ch04-async-internals --tests` to apply 1 suggestion)
[INFO] [stderr] warning: `ch08-real-world-patterns` (bin "01_arena_allocation") generated 2 warnings
[INFO] [stderr] warning: `ch04-async-internals` (bin "06_channel_impl") generated 1 warning (run `cargo fix --bin "06_channel_impl" -p ch04-async-internals` to apply 1 suggestion)
[INFO] [stderr] warning: `ch02-ownership-advanced` (bin "04_self_referential" test) generated 2 warnings
[INFO] [stderr] warning: method `multiply` is never used
[INFO] [stderr]    --> ch07-performance/src/bin/01_zero_cost_abstraction.rs:105:8
[INFO] [stderr]     |
[INFO] [stderr] 103 | trait NumericOp {
[INFO] [stderr]     |       --------- method in this trait
[INFO] [stderr] 104 |     fn add(self, other: Self) -> Self;
[INFO] [stderr] 105 |     fn multiply(self, other: Self) -> Self;
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `result_small`
[INFO] [stderr]    --> ch07-performance/src/bin/05_benchmarks.rs:219:9
[INFO] [stderr]     |
[INFO] [stderr] 219 |     let result_small = runner.benchmark("小数据 (8 KB)", || {
[INFO] [stderr]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_small`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `result_medium`
[INFO] [stderr]    --> ch07-performance/src/bin/05_benchmarks.rs:226:9
[INFO] [stderr]     |
[INFO] [stderr] 226 |     let result_medium = runner.benchmark("中等数据 (800 KB)", || {
[INFO] [stderr]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_medium`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `result_large`
[INFO] [stderr]    --> ch07-performance/src/bin/05_benchmarks.rs:233:9
[INFO] [stderr]     |
[INFO] [stderr] 233 |     let result_large = runner.benchmark("大数据 (80 MB)", || {
[INFO] [stderr]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_large`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `result_vec`
[INFO] [stderr]    --> ch07-performance/src/bin/05_benchmarks.rs:263:9
[INFO] [stderr]     |
[INFO] [stderr] 263 |     let result_vec = runner.benchmark("Vec::push", || {
[INFO] [stderr]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_vec`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `result_ll`
[INFO] [stderr]    --> ch07-performance/src/bin/05_benchmarks.rs:272:9
[INFO] [stderr]     |
[INFO] [stderr] 272 |     let result_ll = runner.benchmark("LinkedList::push_back", || {
[INFO] [stderr]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_ll`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `result_hm`
[INFO] [stderr]    --> ch07-performance/src/bin/05_benchmarks.rs:281:9
[INFO] [stderr]     |
[INFO] [stderr] 281 |     let result_hm = runner.benchmark("HashMap::insert", || {
[INFO] [stderr]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_hm`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `result_vec_search`
[INFO] [stderr]    --> ch07-performance/src/bin/05_benchmarks.rs:292:9
[INFO] [stderr]     |
[INFO] [stderr] 292 |     let result_vec_search = runner.benchmark("Vec 二分查找", || {
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_vec_search`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `result_hm_search`
[INFO] [stderr]    --> ch07-performance/src/bin/05_benchmarks.rs:299:9
[INFO] [stderr]     |
[INFO] [stderr] 299 |     let result_hm_search = runner.benchmark("HashMap 查找", || {
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_hm_search`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `result_sort`
[INFO] [stderr]    --> ch07-performance/src/bin/05_benchmarks.rs:337:9
[INFO] [stderr]     |
[INFO] [stderr] 337 |     let result_sort = runner.benchmark("slice::sort", || {
[INFO] [stderr]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_sort`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `result_sort_unstable`
[INFO] [stderr]    --> ch07-performance/src/bin/05_benchmarks.rs:344:9
[INFO] [stderr]     |
[INFO] [stderr] 344 |     let result_sort_unstable = runner.benchmark("slice::sort_unstable", || {
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_sort_unstable`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `result_sorted`
[INFO] [stderr]    --> ch07-performance/src/bin/05_benchmarks.rs:351:9
[INFO] [stderr]     |
[INFO] [stderr] 351 |     let result_sorted = runner.benchmark("已排序数据 sort", || {
[INFO] [stderr]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_sorted`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `result_reverse`
[INFO] [stderr]    --> ch07-performance/src/bin/05_benchmarks.rs:358:9
[INFO] [stderr]     |
[INFO] [stderr] 358 |     let result_reverse = runner.benchmark("逆序数据 sort", || {
[INFO] [stderr]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_reverse`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `result_linear`
[INFO] [stderr]    --> ch07-performance/src/bin/05_benchmarks.rs:388:9
[INFO] [stderr]     |
[INFO] [stderr] 388 |     let result_linear = runner.benchmark("线性搜索 (iter().find)", || {
[INFO] [stderr]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_linear`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `result_binary`
[INFO] [stderr]    --> ch07-performance/src/bin/05_benchmarks.rs:393:9
[INFO] [stderr]     |
[INFO] [stderr] 393 |     let result_binary = runner.benchmark("二分搜索 (binary_search)", || {
[INFO] [stderr]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_binary`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `result_hash`
[INFO] [stderr]    --> ch07-performance/src/bin/05_benchmarks.rs:399:9
[INFO] [stderr]     |
[INFO] [stderr] 399 |     let result_hash = runner.benchmark("HashMap 查找", || {
[INFO] [stderr]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_hash`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `result_linear_best`
[INFO] [stderr]    --> ch07-performance/src/bin/05_benchmarks.rs:406:9
[INFO] [stderr]     |
[INFO] [stderr] 406 |     let result_linear_best = runner.benchmark("线性搜索 (最好)", || {
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_linear_best`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `result_binary_best`
[INFO] [stderr]    --> ch07-performance/src/bin/05_benchmarks.rs:410:9
[INFO] [stderr]     |
[INFO] [stderr] 410 |     let result_binary_best = runner.benchmark("二分搜索 (最好)", || {
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_binary_best`
[INFO] [stderr] 
[INFO] [stderr] warning: field `total_ns` is never read
[INFO] [stderr]   --> ch07-performance/src/bin/05_benchmarks.rs:30:5
[INFO] [stderr]    |
[INFO] [stderr] 27 | struct BenchResult {
[INFO] [stderr]    |        ----------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 30 |     total_ns: u128,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `BenchResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `report` is never used
[INFO] [stderr]    --> ch07-performance/src/bin/05_benchmarks.rs:102:8
[INFO] [stderr]     |
[INFO] [stderr]  55 | impl BenchRunner {
[INFO] [stderr]     | ---------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 102 |     fn report(&self, name: &str, f: impl FnMut()) -> BenchResult {
[INFO] [stderr]     |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `len` and `is_empty` are never used
[INFO] [stderr]   --> ch07-performance/src/bin/01_zero_cost_abstraction.rs:44:8
[INFO] [stderr]    |
[INFO] [stderr] 27 | impl<T> Stack<T> {
[INFO] [stderr]    | ---------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 44 |     fn len(&self) -> usize {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 49 |     fn is_empty(&self) -> bool {
[INFO] [stderr]    |        ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `multiply` is never used
[INFO] [stderr]    --> ch07-performance/src/bin/01_zero_cost_abstraction.rs:105:8
[INFO] [stderr]     |
[INFO] [stderr] 103 | trait NumericOp {
[INFO] [stderr]     |       --------- method in this trait
[INFO] [stderr] 104 |     fn add(self, other: Self) -> Self;
[INFO] [stderr] 105 |     fn multiply(self, other: Self) -> Self;
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `report` and `compare` are never used
[INFO] [stderr]    --> ch07-performance/src/bin/05_benchmarks.rs:102:8
[INFO] [stderr]     |
[INFO] [stderr]  55 | impl BenchRunner {
[INFO] [stderr]     | ---------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 102 |     fn report(&self, name: &str, f: impl FnMut()) -> BenchResult {
[INFO] [stderr]     |        ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 109 |     fn compare(&self, a: &BenchResult, b: &BenchResult) {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `ch07-performance` (bin "01_zero_cost_abstraction" test) generated 1 warning
[INFO] [stderr] warning: `ch07-performance` (bin "05_benchmarks" test) generated 19 warnings (run `cargo fix --bin "05_benchmarks" -p ch07-performance --tests` to apply 17 suggestions)
[INFO] [stderr] warning: `ch07-performance` (bin "01_zero_cost_abstraction") generated 2 warnings
[INFO] [stderr] warning: `ch07-performance` (bin "05_benchmarks") generated 19 warnings (18 duplicates)
[INFO] [stderr] warning: unused macro definition: `make_util`
[INFO] [stderr]    --> ch05-macro-systems/src/bin/01_declarative_macro.rs:352:14
[INFO] [stderr]     |
[INFO] [stderr] 352 | macro_rules! make_util {
[INFO] [stderr]     |              ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `impl_describable`
[INFO] [stderr]    --> ch05-macro-systems/src/bin/01_declarative_macro.rs:938:20
[INFO] [stderr]     |
[INFO] [stderr] 938 |     pub(crate) use impl_describable;
[INFO] [stderr]     |                    ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> ch05-macro-systems/src/bin/01_declarative_macro.rs:233:17
[INFO] [stderr]     |
[INFO] [stderr] 227 | macro_rules! sum_all {
[INFO] [stderr] ...
[INFO] [stderr] 233 |             let mut total = 0;
[INFO] [stderr]     |                 ----^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] ...
[INFO] [stderr] 298 |     let s0 = sum_all!();
[INFO] [stderr]     |              ---------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> ch05-macro-systems/src/bin/01_declarative_macro.rs:245:17
[INFO] [stderr]     |
[INFO] [stderr] 242 | macro_rules! at_least_one {
[INFO] [stderr] ...
[INFO] [stderr] 245 |             let mut v = vec![$first];
[INFO] [stderr]     |                 ----^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] ...
[INFO] [stderr] 305 |     let v1 = at_least_one!(100);
[INFO] [stderr]     |              ------------------ in this macro invocation
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> ch05-macro-systems/src/bin/01_declarative_macro.rs:256:17
[INFO] [stderr]     |
[INFO] [stderr] 253 | macro_rules! optional_tail {
[INFO] [stderr] ...
[INFO] [stderr] 256 |             let mut result = vec![$head];
[INFO] [stderr]     |                 ----^^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] ...
[INFO] [stderr] 311 |     let o1 = optional_tail!(1);
[INFO] [stderr]     |              ----------------- in this macro invocation
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]    --> ch05-macro-systems/src/bin/01_declarative_macro.rs:558:35
[INFO] [stderr]     |
[INFO] [stderr] 558 |     enum Color { Red, Green, Blue(i32), Custom(String) }
[INFO] [stderr]     |                              ---- ^^^
[INFO] [stderr]     |                              |
[INFO] [stderr]     |                              field in this variant
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Color` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]     |
[INFO] [stderr] 558 -     enum Color { Red, Green, Blue(i32), Custom(String) }
[INFO] [stderr] 558 +     enum Color { Red, Green, Blue(()), Custom(String) }
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Red`, `Green`, and `Custom` are never constructed
[INFO] [stderr]    --> ch05-macro-systems/src/bin/01_declarative_macro.rs:558:18
[INFO] [stderr]     |
[INFO] [stderr] 558 |     enum Color { Red, Green, Blue(i32), Custom(String) }
[INFO] [stderr]     |          -----   ^^^  ^^^^^             ^^^^^^
[INFO] [stderr]     |          |
[INFO] [stderr]     |          variants in this enum
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Color` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `x` and `y` are never read
[INFO] [stderr]   --> ch05-macro-systems/src/bin/03_derive_macro.rs:49:5
[INFO] [stderr]    |
[INFO] [stderr] 48 | struct Point {
[INFO] [stderr]    |        ----- fields in this struct
[INFO] [stderr] 49 |     x: f64,
[INFO] [stderr]    |     ^
[INFO] [stderr] 50 |     y: f64,
[INFO] [stderr]    |     ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `method`, `url`, `status_code`, `headers`, and `body` are never read
[INFO] [stderr]   --> ch05-macro-systems/src/bin/03_derive_macro.rs:56:5
[INFO] [stderr]    |
[INFO] [stderr] 55 | struct HttpRequest {
[INFO] [stderr]    |        ----------- fields in this struct
[INFO] [stderr] 56 |     method: String,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 57 |     url: String,
[INFO] [stderr]    |     ^^^
[INFO] [stderr] 58 |     status_code: u16,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 59 |     headers: Vec<String>,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 60 |     body: Option<Vec<u8>>,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `timestamp`, `level`, `message`, `tags`, and `metadata` are never read
[INFO] [stderr]   --> ch05-macro-systems/src/bin/03_derive_macro.rs:69:5
[INFO] [stderr]    |
[INFO] [stderr] 68 | struct LogEntry {
[INFO] [stderr]    |        -------- fields in this struct
[INFO] [stderr] 69 |     timestamp: u64,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 70 |     level: String,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 71 |     message: String,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 72 |     tags: Vec<String>,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 73 |     metadata: std::collections::HashMap<String, String>,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:108:12
[INFO] [stderr]     |
[INFO] [stderr] 108 |     Circle(f64),
[INFO] [stderr]     |     ------ ^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     field in this variant
[INFO] [stderr]     |
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]     |
[INFO] [stderr] 108 -     Circle(f64),
[INFO] [stderr] 108 +     Circle(()),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: fields `width` and `height` are never read
[INFO] [stderr]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:109:17
[INFO] [stderr]     |
[INFO] [stderr] 109 |     Rectangle { width: f64, height: f64 },
[INFO] [stderr]     |     ---------   ^^^^^       ^^^^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     fields in this variant
[INFO] [stderr] 
[INFO] [stderr] warning: fields `x` and `y` are never read
[INFO] [stderr]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:117:12
[INFO] [stderr]     |
[INFO] [stderr] 117 |     Move { x: i32, y: i32 },
[INFO] [stderr]     |     ----   ^       ^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     fields in this variant
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:118:11
[INFO] [stderr]     |
[INFO] [stderr] 118 |     Write(String),
[INFO] [stderr]     |     ----- ^^^^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     field in this variant
[INFO] [stderr]     |
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]     |
[INFO] [stderr] 118 -     Write(String),
[INFO] [stderr] 118 +     Write(()),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: fields `0`, `1`, and `2` are never read
[INFO] [stderr]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:119:17
[INFO] [stderr]     |
[INFO] [stderr] 119 |     ChangeColor(i32, i32, i32),
[INFO] [stderr]     |     ----------- ^^^  ^^^  ^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     fields in this variant
[INFO] [stderr]     |
[INFO] [stderr] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stderr]     |
[INFO] [stderr] 119 -     ChangeColor(i32, i32, i32),
[INFO] [stderr] 119 +     ChangeColor((), (), ()),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:201:11
[INFO] [stderr]     |
[INFO] [stderr] 201 |     Debug(String),
[INFO] [stderr]     |     ----- ^^^^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     field in this variant
[INFO] [stderr]     |
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]     |
[INFO] [stderr] 201 -     Debug(String),
[INFO] [stderr] 201 +     Debug(()),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: fields `message` and `code` are never read
[INFO] [stderr]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:202:12
[INFO] [stderr]     |
[INFO] [stderr] 202 |     Info { message: String, code: u32 },
[INFO] [stderr]     |     ----   ^^^^^^^          ^^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     fields in this variant
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:204:11
[INFO] [stderr]     |
[INFO] [stderr] 204 |     Error(i32),
[INFO] [stderr]     |     ----- ^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     field in this variant
[INFO] [stderr]     |
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]     |
[INFO] [stderr] 204 -     Error(i32),
[INFO] [stderr] 204 +     Error(()),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: field `user_id` is never read
[INFO] [stderr]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:272:19
[INFO] [stderr]     |
[INFO] [stderr] 272 |     UserCreated { user_id: u64 },
[INFO] [stderr]     |     -----------   ^^^^^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     field in this variant
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:273:17
[INFO] [stderr]     |
[INFO] [stderr] 273 |     UserDeleted(u64),
[INFO] [stderr]     |     ----------- ^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     field in this variant
[INFO] [stderr]     |
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]     |
[INFO] [stderr] 273 -     UserDeleted(u64),
[INFO] [stderr] 273 +     UserDeleted(()),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: fields `order_id` and `amount` are never read
[INFO] [stderr]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:274:19
[INFO] [stderr]     |
[INFO] [stderr] 274 |     OrderPlaced { order_id: String, amount: f64 },
[INFO] [stderr]     |     -----------   ^^^^^^^^          ^^^^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     fields in this variant
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:276:22
[INFO] [stderr]     |
[INFO] [stderr] 276 |     NotificationSent(String),
[INFO] [stderr]     |     ---------------- ^^^^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     field in this variant
[INFO] [stderr]     |
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]     |
[INFO] [stderr] 276 -     NotificationSent(String),
[INFO] [stderr] 276 +     NotificationSent(()),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused macro definition: `field`
[INFO] [stderr]    --> ch05-macro-systems/src/bin/04_dsl_design.rs:730:14
[INFO] [stderr]     |
[INFO] [stderr] 730 | macro_rules! field {
[INFO] [stderr]     |              ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused arithmetic operation that must be used
[INFO] [stderr]     --> ch05-macro-systems/src/bin/04_dsl_design.rs:865:9
[INFO] [stderr]      |
[INFO] [stderr]  849 | macro_rules! checked_div {
[INFO] [stderr] ...
[INFO] [stderr]  865 |         __num_val / __den_val
[INFO] [stderr]      |         ^^^^^^^^^^^^^^^^^^^^^ the arithmetic operation produces a value
[INFO] [stderr] ...
[INFO] [stderr] 1432 |         checked_div!(10, 0);
[INFO] [stderr]      |         ------------------- in this macro invocation
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]      |
[INFO] [stderr] 1432 |         let _ = checked_div!(10, 0);;
[INFO] [stderr]      |         +++++++                    +
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Put` and `Patch` are never constructed
[INFO] [stderr]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:193:5
[INFO] [stderr]     |
[INFO] [stderr] 190 | enum HttpMethod {
[INFO] [stderr]     |      ---------- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 193 |     Put,
[INFO] [stderr]     |     ^^^
[INFO] [stderr] 194 |     Delete,
[INFO] [stderr] 195 |     Patch,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `UserDeleted` is never constructed
[INFO] [stderr]    --> ch05-macro-systems/src/bin/03_derive_macro.rs:273:5
[INFO] [stderr]     |
[INFO] [stderr] 271 | enum ApiEvent {
[INFO] [stderr]     |      -------- variant in this enum
[INFO] [stderr] 272 |     UserCreated { user_id: u64 },
[INFO] [stderr] 273 |     UserDeleted(u64),
[INFO] [stderr]     |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> ch05-macro-systems/src/bin/01_declarative_macro.rs:233:17
[INFO] [stderr]      |
[INFO] [stderr]  227 | macro_rules! sum_all {
[INFO] [stderr] ...
[INFO] [stderr]  233 |             let mut total = 0;
[INFO] [stderr]      |                 ----^^^^^
[INFO] [stderr]      |                 |
[INFO] [stderr]      |                 help: remove this `mut`
[INFO] [stderr] ...
[INFO] [stderr] 1137 |         assert_eq!(sum_all!(), 0);
[INFO] [stderr]      |                    ---------- in this macro invocation
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> ch05-macro-systems/src/bin/01_declarative_macro.rs:245:17
[INFO] [stderr]      |
[INFO] [stderr]  242 | macro_rules! at_least_one {
[INFO] [stderr] ...
[INFO] [stderr]  245 |             let mut v = vec![$first];
[INFO] [stderr]      |                 ----^
[INFO] [stderr]      |                 |
[INFO] [stderr]      |                 help: remove this `mut`
[INFO] [stderr] ...
[INFO] [stderr] 1148 |         let v = at_least_one!(42);
[INFO] [stderr]      |                 ----------------- in this macro invocation
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> ch05-macro-systems/src/bin/01_declarative_macro.rs:256:17
[INFO] [stderr]      |
[INFO] [stderr]  253 | macro_rules! optional_tail {
[INFO] [stderr] ...
[INFO] [stderr]  256 |             let mut result = vec![$head];
[INFO] [stderr]      |                 ----^^^^^^
[INFO] [stderr]      |                 |
[INFO] [stderr]      |                 help: remove this `mut`
[INFO] [stderr] ...
[INFO] [stderr] 1160 |         let v = optional_tail!(10);
[INFO] [stderr]      |                 ------------------ in this macro invocation
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]     --> ch05-macro-systems/src/bin/01_declarative_macro.rs:1252:23
[INFO] [stderr]      |
[INFO] [stderr] 1252 |         enum E { A, B(i32), C }
[INFO] [stderr]      |                     - ^^^
[INFO] [stderr]      |                     |
[INFO] [stderr]      |                     field in this variant
[INFO] [stderr]      |
[INFO] [stderr]      = note: `E` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]      |
[INFO] [stderr] 1252 -         enum E { A, B(i32), C }
[INFO] [stderr] 1252 +         enum E { A, B(()), C }
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> ch05-macro-systems/tests/exercises.rs:685:13
[INFO] [stderr]     |
[INFO] [stderr] 683 | macro_rules! simple_map {
[INFO] [stderr] 684 |     ( $($key:expr => $value:expr),* $(,)? ) => {{
[INFO] [stderr] 685 |         let mut map = std::collections::HashMap::new();
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] ...
[INFO] [stderr] 710 |     let map: std::collections::HashMap<&str, i32> = simple_map!();
[INFO] [stderr]     |                                                     ------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `x` and `y` are never read
[INFO] [stderr]   --> ch05-macro-systems/tests/exercises.rs:20:5
[INFO] [stderr]    |
[INFO] [stderr] 19 | struct Point {
[INFO] [stderr]    |        ----- fields in this struct
[INFO] [stderr] 20 |     x: f64,
[INFO] [stderr]    |     ^
[INFO] [stderr] 21 |     y: f64,
[INFO] [stderr]    |     ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `name`, `age`, `active`, and `score` are never read
[INFO] [stderr]   --> ch05-macro-systems/tests/exercises.rs:38:5
[INFO] [stderr]    |
[INFO] [stderr] 37 | struct Person {
[INFO] [stderr]    |        ------ fields in this struct
[INFO] [stderr] 38 |     name: String,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 39 |     age: u32,
[INFO] [stderr]    |     ^^^
[INFO] [stderr] 40 |     active: bool,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 41 |     score: f64,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `inner` is never read
[INFO] [stderr]   --> ch05-macro-systems/tests/exercises.rs:68:5
[INFO] [stderr]    |
[INFO] [stderr] 67 | struct Wrapper {
[INFO] [stderr]    |        ------- field in this struct
[INFO] [stderr] 68 |     inner: Vec<u8>,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `database_url`, `max_connections`, `timeout_ms`, `debug_mode`, and `tags` are never read
[INFO] [stderr]   --> ch05-macro-systems/tests/exercises.rs:90:5
[INFO] [stderr]    |
[INFO] [stderr] 89 | struct Config {
[INFO] [stderr]    |        ------ fields in this struct
[INFO] [stderr] 90 |     database_url: String,
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 91 |     max_connections: u16,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 92 |     timeout_ms: u64,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 93 |     debug_mode: bool,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 94 |     tags: Vec<String>,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]    --> ch05-macro-systems/tests/exercises.rs:164:12
[INFO] [stderr]     |
[INFO] [stderr] 164 |     Circle(f64),
[INFO] [stderr]     |     ------ ^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     field in this variant
[INFO] [stderr]     |
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]     |
[INFO] [stderr] 164 -     Circle(f64),
[INFO] [stderr] 164 +     Circle(()),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: fields `width` and `height` are never read
[INFO] [stderr]    --> ch05-macro-systems/tests/exercises.rs:165:17
[INFO] [stderr]     |
[INFO] [stderr] 165 |     Rectangle { width: f64, height: f64 },
[INFO] [stderr]     |     ---------   ^^^^^       ^^^^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     fields in this variant
[INFO] [stderr] 
[INFO] [stderr] warning: fields `0` and `1` are never read
[INFO] [stderr]    --> ch05-macro-systems/tests/exercises.rs:187:10
[INFO] [stderr]     |
[INFO] [stderr] 187 |     TwoD(f64, f64),
[INFO] [stderr]     |     ---- ^^^  ^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     fields in this variant
[INFO] [stderr]     |
[INFO] [stderr] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stderr]     |
[INFO] [stderr] 187 -     TwoD(f64, f64),
[INFO] [stderr] 187 +     TwoD((), ()),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: fields `0`, `1`, and `2` are never read
[INFO] [stderr]    --> ch05-macro-systems/tests/exercises.rs:188:12
[INFO] [stderr]     |
[INFO] [stderr] 188 |     ThreeD(f64, f64, f64),
[INFO] [stderr]     |     ------ ^^^  ^^^  ^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     fields in this variant
[INFO] [stderr]     |
[INFO] [stderr] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stderr]     |
[INFO] [stderr] 188 -     ThreeD(f64, f64, f64),
[INFO] [stderr] 188 +     ThreeD((), (), ()),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]    --> ch05-macro-systems/tests/exercises.rs:206:16
[INFO] [stderr]     |
[INFO] [stderr] 206 |     BadRequest(String),
[INFO] [stderr]     |     ---------- ^^^^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     field in this variant
[INFO] [stderr]     |
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]     |
[INFO] [stderr] 206 -     BadRequest(String),
[INFO] [stderr] 206 +     BadRequest(()),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: fields `url` and `permanent` are never read
[INFO] [stderr]    --> ch05-macro-systems/tests/exercises.rs:207:16
[INFO] [stderr]     |
[INFO] [stderr] 207 |     Redirect { url: String, permanent: bool },
[INFO] [stderr]     |     --------   ^^^          ^^^^^^^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     fields in this variant
[INFO] [stderr] 
[INFO] [stderr] warning: fields `x` and `y` are never read
[INFO] [stderr]    --> ch05-macro-systems/tests/exercises.rs:448:12
[INFO] [stderr]     |
[INFO] [stderr] 448 |     Move { x: i32, y: i32 },
[INFO] [stderr]     |     ----   ^       ^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     fields in this variant
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]    --> ch05-macro-systems/tests/exercises.rs:449:11
[INFO] [stderr]     |
[INFO] [stderr] 449 |     Write(String),
[INFO] [stderr]     |     ----- ^^^^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     field in this variant
[INFO] [stderr]     |
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]     |
[INFO] [stderr] 449 -     Write(String),
[INFO] [stderr] 449 +     Write(()),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: variants `South`, `East`, and `West` are never constructed
[INFO] [stderr]    --> ch05-macro-systems/tests/exercises.rs:531:5
[INFO] [stderr]     |
[INFO] [stderr] 529 | enum Direction {
[INFO] [stderr]     |      --------- variants in this enum
[INFO] [stderr] 530 |     North,
[INFO] [stderr] 531 |     South,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr] 532 |     East,
[INFO] [stderr]     |     ^^^^
[INFO] [stderr] 533 |     West,
[INFO] [stderr]     |     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `ch05-macro-systems` (bin "01_declarative_macro") generated 7 warnings (run `cargo fix --bin "01_declarative_macro" -p ch05-macro-systems` to apply 4 suggestions)
[INFO] [stderr] warning: `ch05-macro-systems` (bin "03_derive_macro" test) generated 15 warnings
[INFO] [stderr] warning: `ch05-macro-systems` (bin "04_dsl_design" test) generated 2 warnings
[INFO] [stderr] warning: `ch05-macro-systems` (bin "03_derive_macro") generated 16 warnings (14 duplicates)
[INFO] [stderr] warning: `ch05-macro-systems` (bin "01_declarative_macro" test) generated 11 warnings (7 duplicates) (run `cargo fix --bin "01_declarative_macro" -p ch05-macro-systems --tests` to apply 3 suggestions)
[INFO] [stderr] warning: `ch05-macro-systems` (test "exercises") generated 14 warnings (run `cargo fix --test "exercises" -p ch05-macro-systems` to apply 1 suggestion)
[INFO] [stderr] warning: `ch05-macro-systems` (bin "04_dsl_design") generated 1 warning (1 duplicate)
[INFO] [stderr] warning: variant `PermissionDenied` is never constructed
[INFO] [stderr]   --> ch06-traits-patterns/src/bin/07_error_handling.rs:26:5
[INFO] [stderr]    |
[INFO] [stderr] 18 | enum UserServiceError {
[INFO] [stderr]    |      ---------------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 26 |     PermissionDenied { required: String, actual: String },
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `UserServiceError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variants `DnsError` and `TlsError` are never constructed
[INFO] [stderr]   --> ch06-traits-patterns/src/bin/07_error_handling.rs:48:5
[INFO] [stderr]    |
[INFO] [stderr] 43 | enum NetworkError {
[INFO] [stderr]    |      ------------ variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 48 |     DnsError(String),
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 51 |     TlsError(String),
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `NetworkError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Database`, `Cache`, and `External` are never constructed
[INFO] [stderr]    --> ch06-traits-patterns/src/bin/07_error_handling.rs:327:5
[INFO] [stderr]     |
[INFO] [stderr] 325 | enum InternalError {
[INFO] [stderr]     |      ------------- variants in this enum
[INFO] [stderr] 326 |     #[error("数据库: {0}")]
[INFO] [stderr] 327 |     Database(String),
[INFO] [stderr]     |     ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 330 |     Cache(String),
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 333 |     External(String),
[INFO] [stderr]     |     ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `InternalError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: constant `METHOD_BIT` is never used
[INFO] [stderr]    --> ch06-traits-patterns/src/bin/02_builder.rs:209:7
[INFO] [stderr]     |
[INFO] [stderr] 209 | const METHOD_BIT: u8 = 0b10;
[INFO] [stderr]     |       ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: methods `header`, `body`, and `method` are never used
[INFO] [stderr]    --> ch06-traits-patterns/src/bin/02_builder.rs:229:8
[INFO] [stderr]     |
[INFO] [stderr] 219 | impl ConstBuilder<0> {
[INFO] [stderr]     | -------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 229 |     fn header(mut self, key: impl Into<String>, value: impl Into<String>) -> Self {
[INFO] [stderr]     |        ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 234 |     fn body(mut self, body: impl Into<String>) -> Self {
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 248 |     fn method(self, method: impl Into<String>) -> ConstBuilder<METHOD_BIT> {
[INFO] [stderr]     |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `header` and `body` are never used
[INFO] [stderr]    --> ch06-traits-patterns/src/bin/02_builder.rs:259:8
[INFO] [stderr]     |
[INFO] [stderr] 258 | impl ConstBuilder<URL_BIT> {
[INFO] [stderr]     | -------------------------- methods in this implementation
[INFO] [stderr] 259 |     fn header(mut self, key: impl Into<String>, value: impl Into<String>) -> Self {
[INFO] [stderr]     |        ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 264 |     fn body(mut self, body: impl Into<String>) -> Self {
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `header`, `body`, and `url` are never used
[INFO] [stderr]    --> ch06-traits-patterns/src/bin/02_builder.rs:280:8
[INFO] [stderr]     |
[INFO] [stderr] 279 | impl ConstBuilder<METHOD_BIT> {
[INFO] [stderr]     | ----------------------------- methods in this implementation
[INFO] [stderr] 280 |     fn header(mut self, key: impl Into<String>, value: impl Into<String>) -> Self {
[INFO] [stderr]     |        ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 285 |     fn body(mut self, body: impl Into<String>) -> Self {
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 290 |     fn url(self, url: impl Into<String>) -> ConstBuilder<ALL_REQUIRED> {
[INFO] [stderr]     |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `path` is never read
[INFO] [stderr]    --> ch06-traits-patterns/src/bin/03_type_state.rs:261:5
[INFO] [stderr]     |
[INFO] [stderr] 260 | struct RuntimeFileHandler {
[INFO] [stderr]     |        ------------------ field in this struct
[INFO] [stderr] 261 |     path: String,
[INFO] [stderr]     |     ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `name` is never used
[INFO] [stderr]    --> ch06-traits-patterns/src/bin/04_strategy_via_traits.rs:256:8
[INFO] [stderr]     |
[INFO] [stderr] 254 | trait CompressionStrategy {
[INFO] [stderr]     |       ------------------- method in this trait
[INFO] [stderr] 255 |     fn compress(&self, data: &[u8]) -> Vec<u8>;
[INFO] [stderr] 256 |     fn name(&self) -> &str;
[INFO] [stderr]     |        ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `body` is never used
[INFO] [stderr]    --> ch06-traits-patterns/src/bin/02_builder.rs:164:8
[INFO] [stderr]     |
[INFO] [stderr] 158 | impl TypedBuilder<HasMethod> {
[INFO] [stderr]     | ---------------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 164 |     fn body(mut self, body: impl Into<String>) -> Self {
[INFO] [stderr]     |        ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `METHOD_BIT` is never used
[INFO] [stderr]    --> ch06-traits-patterns/src/bin/02_builder.rs:209:7
[INFO] [stderr]     |
[INFO] [stderr] 209 | const METHOD_BIT: u8 = 0b10;
[INFO] [stderr]     |       ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `header` is never used
[INFO] [stderr]    --> ch06-traits-patterns/src/bin/02_builder.rs:301:8
[INFO] [stderr]     |
[INFO] [stderr] 300 | impl ConstBuilder<ALL_REQUIRED> {
[INFO] [stderr]     | ------------------------------- method in this implementation
[INFO] [stderr] 301 |     fn header(mut self, key: impl Into<String>, value: impl Into<String>) -> Self {
[INFO] [stderr]     |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `NoCompression` is never constructed
[INFO] [stderr]    --> ch06-traits-patterns/src/bin/04_strategy_via_traits.rs:259:8
[INFO] [stderr]     |
[INFO] [stderr] 259 | struct NoCompression;
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `name` and `version` are never read
[INFO] [stderr]   --> ch06-traits-patterns/src/bin/07_error_handling.rs:91:5
[INFO] [stderr]    |
[INFO] [stderr] 90 | struct Config {
[INFO] [stderr]    |        ------ fields in this struct
[INFO] [stderr] 91 |     name: String,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 92 |     version: String,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Config` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `BadRequest` and `RateLimited` are never constructed
[INFO] [stderr]    --> ch06-traits-patterns/src/bin/07_error_handling.rs:306:5
[INFO] [stderr]     |
[INFO] [stderr] 304 | enum WebServiceError {
[INFO] [stderr]     |      --------------- variants in this enum
[INFO] [stderr] 305 |     #[error("请求解析错误: {0}")]
[INFO] [stderr] 306 |     BadRequest(String),
[INFO] [stderr]     |     ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 318 |     RateLimited,
[INFO] [stderr]     |     ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `WebServiceError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `x` and `y` are never read
[INFO] [stderr]  --> ch05-macro-systems/derive_macros/tests/derive_tests.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | struct Point {
[INFO] [stderr]   |        ----- fields in this struct
[INFO] [stderr] 7 |     x: f64,
[INFO] [stderr]   |     ^
[INFO] [stderr] 8 |     y: f64,
[INFO] [stderr]   |     ^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> ch05-macro-systems/derive_macros/tests/derive_tests.rs:36:12
[INFO] [stderr]    |
[INFO] [stderr] 36 |     Circle(f64),
[INFO] [stderr]    |     ------ ^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 36 -     Circle(f64),
[INFO] [stderr] 36 +     Circle(()),
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: fields `width` and `height` are never read
[INFO] [stderr]   --> ch05-macro-systems/derive_macros/tests/derive_tests.rs:37:17
[INFO] [stderr]    |
[INFO] [stderr] 37 |     Rectangle { width: f64, height: f64 },
[INFO] [stderr]    |     ---------   ^^^^^       ^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     fields in this variant
[INFO] [stderr] 
[INFO] [stderr] warning: variant `Pending` is never constructed
[INFO] [stderr]   --> ch05-macro-systems/derive_macros/tests/derive_tests.rs:90:5
[INFO] [stderr]    |
[INFO] [stderr] 87 | enum Status {
[INFO] [stderr]    |      ------ variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 90 |     Pending,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `x` and `y` are never read
[INFO] [stderr]    --> ch05-macro-systems/derive_macros/tests/derive_tests.rs:104:12
[INFO] [stderr]     |
[INFO] [stderr] 104 |     Move { x: i32, y: i32 },
[INFO] [stderr]     |     ----   ^       ^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     fields in this variant
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]    --> ch05-macro-systems/derive_macros/tests/derive_tests.rs:105:11
[INFO] [stderr]     |
[INFO] [stderr] 105 |     Write(String),
[INFO] [stderr]     |     ----- ^^^^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     field in this variant
[INFO] [stderr]     |
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]     |
[INFO] [stderr] 105 -     Write(String),
[INFO] [stderr] 105 +     Write(()),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: `ch06-traits-patterns` (bin "07_error_handling" test) generated 3 warnings
[INFO] [stderr] warning: `ch06-traits-patterns` (bin "02_builder" test) generated 4 warnings
[INFO] [stderr] warning: `ch06-traits-patterns` (bin "03_type_state" test) generated 1 warning
[INFO] [stderr] warning: `ch06-traits-patterns` (bin "04_strategy_via_traits" test) generated 1 warning
[INFO] [stderr] warning: `ch06-traits-patterns` (bin "02_builder") generated 6 warnings (3 duplicates)
[INFO] [stderr] warning: `ch06-traits-patterns` (bin "03_type_state") generated 1 warning (1 duplicate)
[INFO] [stderr] warning: `ch06-traits-patterns` (bin "04_strategy_via_traits") generated 2 warnings (1 duplicate)
[INFO] [stderr] warning: `ch06-traits-patterns` (bin "07_error_handling") generated 5 warnings (3 duplicates)
[INFO] [stderr] warning: `derive_macros` (test "derive_tests") generated 6 warnings
[INFO] [stderr] warning: fields `a`, `b`, and `c` are never read
[INFO] [stderr]    --> ch03-unsafe-and-ffi/tests/exercises.rs:338:9
[INFO] [stderr]     |
[INFO] [stderr] 337 |     struct Reordered {
[INFO] [stderr]     |            --------- fields in this struct
[INFO] [stderr] 338 |         a: u8,
[INFO] [stderr]     |         ^
[INFO] [stderr] 339 |         b: u32,
[INFO] [stderr]     |         ^
[INFO] [stderr] 340 |         c: u8,
[INFO] [stderr]     |         ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> ch03-unsafe-and-ffi/tests/exercises.rs:137:27
[INFO] [stderr]     |
[INFO] [stderr] 137 |     let f: f32 = unsafe { mem::transmute(i) };
[INFO] [stderr]     |                           ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stderr] help: replace this with
[INFO] [stderr]     |
[INFO] [stderr] 137 -     let f: f32 = unsafe { mem::transmute(i) };
[INFO] [stderr] 137 +     let f: f32 = unsafe { f32::from_bits(i) };
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> ch03-unsafe-and-ffi/tests/exercises.rs:139:32
[INFO] [stderr]     |
[INFO] [stderr] 139 |     let i_back: u32 = unsafe { mem::transmute(f) };
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: replace this with
[INFO] [stderr]     |
[INFO] [stderr] 139 -     let i_back: u32 = unsafe { mem::transmute(f) };
[INFO] [stderr] 139 +     let i_back: u32 = unsafe { f32::to_bits(f) };
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> ch03-unsafe-and-ffi/tests/exercises.rs:145:26
[INFO] [stderr]     |
[INFO] [stderr] 145 |     let t: u8 = unsafe { mem::transmute(true) };
[INFO] [stderr]     |                          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: replace this with
[INFO] [stderr]     |
[INFO] [stderr] 145 -     let t: u8 = unsafe { mem::transmute(true) };
[INFO] [stderr] 145 +     let t: u8 = unsafe { u8::from(true) };
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> ch03-unsafe-and-ffi/tests/exercises.rs:146:26
[INFO] [stderr]     |
[INFO] [stderr] 146 |     let f: u8 = unsafe { mem::transmute(false) };
[INFO] [stderr]     |                          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: replace this with
[INFO] [stderr]     |
[INFO] [stderr] 146 -     let f: u8 = unsafe { mem::transmute(false) };
[INFO] [stderr] 146 +     let f: u8 = unsafe { u8::from(false) };
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `core::result::Result`
[INFO] [stderr]   --> ch03-unsafe-and-ffi/src/bin/06_no_std.rs:33:9
[INFO] [stderr]    |
[INFO] [stderr] 33 |     use core::result::Result;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `x` and `y` are never read
[INFO] [stderr]   --> ch03-unsafe-and-ffi/src/bin/06_no_std.rs:42:9
[INFO] [stderr]    |
[INFO] [stderr] 41 |     struct Point {
[INFO] [stderr]    |            ----- fields in this struct
[INFO] [stderr] 42 |         x: i32,
[INFO] [stderr]    |         ^
[INFO] [stderr] 43 |         y: i32,
[INFO] [stderr]    |         ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Point` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `is_empty` is never used
[INFO] [stderr]   --> ch03-unsafe-and-ffi/src/bin/06_no_std.rs:90:8
[INFO] [stderr]    |
[INFO] [stderr] 61 | impl<T: Default + Clone, const N: usize> FixedArray<T, N> {
[INFO] [stderr]    | --------------------------------------------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 90 |     fn is_empty(&self) -> bool {
[INFO] [stderr]    |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `capacity`
[INFO] [stderr]   --> ch03-unsafe-and-ffi/src/bin/03_custom_allocator.rs:22:18
[INFO] [stderr]    |
[INFO] [stderr] 22 |     const fn new(capacity: usize) -> Self {
[INFO] [stderr]    |                  ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_capacity`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `count`
[INFO] [stderr]    --> ch03-unsafe-and-ffi/src/bin/03_custom_allocator.rs:208:32
[INFO] [stderr]     |
[INFO] [stderr] 208 |         let (allocated, freed, count) = alloc.stats();
[INFO] [stderr]     |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ptr2`
[INFO] [stderr]    --> ch03-unsafe-and-ffi/src/bin/01_raw_pointers.rs:143:9
[INFO] [stderr]     |
[INFO] [stderr] 143 |     let ptr2 = addr as *mut i32;
[INFO] [stderr]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_ptr2`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ptr3`
[INFO] [stderr]    --> ch03-unsafe-and-ffi/src/bin/01_raw_pointers.rs:149:9
[INFO] [stderr]     |
[INFO] [stderr] 149 |     let ptr3 = ptr1.cast::<i32>();
[INFO] [stderr]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_ptr3`
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> ch03-unsafe-and-ffi/src/bin/02_union_and_transmute.rs:120:27
[INFO] [stderr]     |
[INFO] [stderr] 120 |     let f: f32 = unsafe { mem::transmute(i) };
[INFO] [stderr]     |                           ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stderr] help: replace this with
[INFO] [stderr]     |
[INFO] [stderr] 120 -     let f: f32 = unsafe { mem::transmute(i) };
[INFO] [stderr] 120 +     let f: f32 = unsafe { f32::from_bits(i) };
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> ch03-unsafe-and-ffi/src/bin/02_union_and_transmute.rs:125:29
[INFO] [stderr]     |
[INFO] [stderr] 125 |     let byte: u8 = unsafe { mem::transmute(b) };
[INFO] [stderr]     |                             ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: replace this with
[INFO] [stderr]     |
[INFO] [stderr] 125 -     let byte: u8 = unsafe { mem::transmute(b) };
[INFO] [stderr] 125 +     let byte: u8 = unsafe { u8::from(b) };
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> ch03-unsafe-and-ffi/src/bin/02_union_and_transmute.rs:291:31
[INFO] [stderr]     |
[INFO] [stderr] 291 |         let f: f32 = unsafe { mem::transmute(i) };
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: replace this with
[INFO] [stderr]     |
[INFO] [stderr] 291 -         let f: f32 = unsafe { mem::transmute(i) };
[INFO] [stderr] 291 +         let f: f32 = unsafe { f32::from_bits(i) };
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> ch03-unsafe-and-ffi/src/bin/02_union_and_transmute.rs:292:32
[INFO] [stderr]     |
[INFO] [stderr] 292 |         let i2: u32 = unsafe { mem::transmute(f) };
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: replace this with
[INFO] [stderr]     |
[INFO] [stderr] 292 -         let i2: u32 = unsafe { mem::transmute(f) };
[INFO] [stderr] 292 +         let i2: u32 = unsafe { f32::to_bits(f) };
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> ch03-unsafe-and-ffi/src/bin/02_union_and_transmute.rs:298:30
[INFO] [stderr]     |
[INFO] [stderr] 298 |         let t: u8 = unsafe { mem::transmute(true) };
[INFO] [stderr]     |                              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: replace this with
[INFO] [stderr]     |
[INFO] [stderr] 298 -         let t: u8 = unsafe { mem::transmute(true) };
[INFO] [stderr] 298 +         let t: u8 = unsafe { u8::from(true) };
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> ch03-unsafe-and-ffi/src/bin/02_union_and_transmute.rs:299:30
[INFO] [stderr]     |
[INFO] [stderr] 299 |         let f: u8 = unsafe { mem::transmute(false) };
[INFO] [stderr]     |                              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: replace this with
[INFO] [stderr]     |
[INFO] [stderr] 299 -         let f: u8 = unsafe { mem::transmute(false) };
[INFO] [stderr] 299 +         let f: u8 = unsafe { u8::from(false) };
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: `ch03-unsafe-and-ffi` (test "exercises") generated 5 warnings (run `cargo fix --test "exercises" -p ch03-unsafe-and-ffi` to apply 4 suggestions)
[INFO] [stderr] warning: `ch03-unsafe-and-ffi` (bin "06_no_std") generated 3 warnings (run `cargo fix --bin "06_no_std" -p ch03-unsafe-and-ffi` to apply 1 suggestion)
[INFO] [stderr] warning: `ch03-unsafe-and-ffi` (bin "03_custom_allocator") generated 2 warnings (run `cargo fix --bin "03_custom_allocator" -p ch03-unsafe-and-ffi` to apply 2 suggestions)
[INFO] [stderr] warning: `ch03-unsafe-and-ffi` (bin "03_custom_allocator" test) generated 2 warnings (2 duplicates)
[INFO] [stderr] warning: `ch03-unsafe-and-ffi` (bin "01_raw_pointers" test) generated 2 warnings (run `cargo fix --bin "01_raw_pointers" -p ch03-unsafe-and-ffi --tests` to apply 2 suggestions)
[INFO] [stderr] warning: `ch03-unsafe-and-ffi` (bin "01_raw_pointers") generated 2 warnings (2 duplicates)
[INFO] [stderr] warning: `ch03-unsafe-and-ffi` (bin "06_no_std" test) generated 2 warnings (2 duplicates)
[INFO] [stderr] warning: `ch03-unsafe-and-ffi` (bin "02_union_and_transmute") generated 2 warnings (run `cargo fix --bin "02_union_and_transmute" -p ch03-unsafe-and-ffi` to apply 2 suggestions)
[INFO] [stderr] warning: `ch03-unsafe-and-ffi` (bin "02_union_and_transmute" test) generated 6 warnings (2 duplicates) (run `cargo fix --bin "02_union_and_transmute" -p ch03-unsafe-and-ffi --tests` to apply 4 suggestions)
[INFO] [stderr] warning: method `as_str` is never used
[INFO] [stderr]    --> ch06-traits-patterns/src/bin/01_newtype.rs:275:8
[INFO] [stderr]     |
[INFO] [stderr] 261 | impl HeaderValue {
[INFO] [stderr]     | ---------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 275 |     fn as_str(&self) -> &str {
[INFO] [stderr]     |        ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `method` is never used
[INFO] [stderr]   --> ch06-traits-patterns/tests/exercises.rs:38:12
[INFO] [stderr]    |
[INFO] [stderr] 36 |     impl Builder {
[INFO] [stderr]    |     ------------ method in this implementation
[INFO] [stderr] 37 |         fn url(mut self, url: &str) -> Self { self.url = Some(url.to_string()); self }
[INFO] [stderr] 38 |         fn method(mut self, method: &str) -> Self { self.method = Some(method.to_string()); self }
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> ch04-async-internals/src/bin/04_pin_in_action.rs:188:13
[INFO] [stderr]     |
[INFO] [stderr] 182 | macro_rules! my_pin_mut {
[INFO] [stderr] ...
[INFO] [stderr] 188 |         let mut $var = unsafe { Pin::new_unchecked(&mut $var) };
[INFO] [stderr]     |             ----^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] ...
[INFO] [stderr] 511 |         my_pin_mut!(data);
[INFO] [stderr]     |         ----------------- in this macro invocation
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> ch01-type-system/src/bin/01_lifetime_variance.rs:79:9
[INFO] [stderr]    |
[INFO] [stderr] 79 |     let mut static_vec: Vec<&'static str> = vec!["hello"];
[INFO] [stderr]    |         ----^^^^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `data` is never read
[INFO] [stderr]    --> ch01-type-system/src/bin/01_lifetime_variance.rs:105:5
[INFO] [stderr]     |
[INFO] [stderr] 104 | struct Covariant<'a> {
[INFO] [stderr]     |        --------- field in this struct
[INFO] [stderr] 105 |     data: &'a str, // &'a str 对 'a 协变 → Covariant 对 'a 协变
[INFO] [stderr]     |     ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `data` is never read
[INFO] [stderr]    --> ch01-type-system/src/bin/01_lifetime_variance.rs:109:5
[INFO] [stderr]     |
[INFO] [stderr] 108 | struct Invariant<'a> {
[INFO] [stderr]     |        --------- field in this struct
[INFO] [stderr] 109 |     data: &'a mut str, // &'a mut str 对 'a 不变 → Invariant 对 'a 不变
[INFO] [stderr]     |     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `handler` is never read
[INFO] [stderr]    --> ch01-type-system/src/bin/01_lifetime_variance.rs:113:5
[INFO] [stderr]     |
[INFO] [stderr] 112 | struct Contravariant<'a> {
[INFO] [stderr]     |        ------------- field in this struct
[INFO] [stderr] 113 |     handler: fn(&'a str), // fn(&'a str) 对 'a 逆变 → Contravariant 对 'a 逆变
[INFO] [stderr]     |     ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `node_count` is never read
[INFO] [stderr]    --> ch01-type-system/src/bin/03_gat.rs:153:5
[INFO] [stderr]     |
[INFO] [stderr] 151 | struct AdjGraph {
[INFO] [stderr]     |        -------- field in this struct
[INFO] [stderr] 152 |     edges: Vec<(usize, usize, f64)>, // (from, to, weight)
[INFO] [stderr] 153 |     node_count: usize,
[INFO] [stderr]     |     ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `ch06-traits-patterns` (bin "01_newtype") generated 1 warning
[INFO] [stderr] warning: `ch06-traits-patterns` (test "exercises") generated 1 warning
[INFO] [stderr] warning: `ch04-async-internals` (bin "04_pin_in_action" test) generated 4 warnings (3 duplicates) (run `cargo fix --bin "04_pin_in_action" -p ch04-async-internals --tests` to apply 1 suggestion)
[INFO] [stderr] warning: `ch04-async-internals` (bin "06_channel_impl" test) generated 1 warning (1 duplicate)
[INFO] [stderr] warning: `ch01-type-system` (bin "01_lifetime_variance" test) generated 4 warnings (run `cargo fix --bin "01_lifetime_variance" -p ch01-type-system --tests` to apply 1 suggestion)
[INFO] [stderr] warning: `ch01-type-system` (bin "03_gat" test) generated 1 warning
[INFO] [stderr] warning: fields `value` and `parent` are never read
[INFO] [stderr]   --> ch02-ownership-advanced/src/bin/02_leak_and_rc_cycles.rs:18:5
[INFO] [stderr]    |
[INFO] [stderr] 17 | struct BadNode {
[INFO] [stderr]    |        ------- fields in this struct
[INFO] [stderr] 18 |     value: String,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 19 |     // 问题：parent 也是 Rc，形成循环引用
[INFO] [stderr] 20 |     parent: RefCell<Option<Rc<BadNode>>>,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `BadNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `name` is never used
[INFO] [stderr]   --> ch01-type-system/src/bin/05_type_erasure.rs:54:8
[INFO] [stderr]    |
[INFO] [stderr] 52 | trait Animal: fmt::Debug {
[INFO] [stderr]    |       ------ method in this trait
[INFO] [stderr] 53 |     fn speak(&self) -> String;
[INFO] [stderr] 54 |     fn name(&self) -> &str;
[INFO] [stderr]    |        ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `as_any_mut` is never used
[INFO] [stderr]    --> ch01-type-system/src/bin/05_type_erasure.rs:109:8
[INFO] [stderr]     |
[INFO] [stderr] 107 | trait AnyAnimal: Any + Animal {
[INFO] [stderr]     |       --------- method in this trait
[INFO] [stderr] 108 |     fn as_any(&self) -> &dyn Any;
[INFO] [stderr] 109 |     fn as_any_mut(&mut self) -> &mut dyn Any;
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::rc::Rc`
[INFO] [stderr]   --> ch01-type-system/src/bin/07_negative_impl.rs:39:9
[INFO] [stderr]    |
[INFO] [stderr] 39 |     use std::rc::Rc;
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `x` and `s` are never read
[INFO] [stderr]   --> ch01-type-system/src/bin/07_negative_impl.rs:30:9
[INFO] [stderr]    |
[INFO] [stderr] 29 |     struct AutoDerived {
[INFO] [stderr]    |            ----------- fields in this struct
[INFO] [stderr] 30 |         x: i32,
[INFO] [stderr]    |         ^
[INFO] [stderr] 31 |         s: String,
[INFO] [stderr]    |         ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `data` is never read
[INFO] [stderr]   --> ch01-type-system/src/bin/07_negative_impl.rs:78:5
[INFO] [stderr]    |
[INFO] [stderr] 77 | struct SendButNotSync {
[INFO] [stderr]    |        -------------- field in this struct
[INFO] [stderr] 78 |     data: Vec<i32>,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `PinnedData` is never constructed
[INFO] [stderr]   --> ch01-type-system/src/bin/07_negative_impl.rs:88:8
[INFO] [stderr]    |
[INFO] [stderr] 88 | struct PinnedData {
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `assert_sync` is never used
[INFO] [stderr]   --> ch01-type-system/src/bin/07_negative_impl.rs:97:8
[INFO] [stderr]    |
[INFO] [stderr] 97 |     fn assert_sync<T: Sync>() {}
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `assert_unpin` is never used
[INFO] [stderr]   --> ch01-type-system/src/bin/07_negative_impl.rs:98:8
[INFO] [stderr]    |
[INFO] [stderr] 98 |     fn assert_unpin<T: Unpin>() {}
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> ch04-async-internals/src/bin/03_mini_executor.rs:136:9
[INFO] [stderr]     |
[INFO] [stderr] 136 |     let mut task = SIMPLE_EXEC.with(|exec| {
[INFO] [stderr]     |         ----^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> ch04-async-internals/src/bin/03_mini_executor.rs:158:13
[INFO] [stderr]     |
[INFO] [stderr] 158 |         let mut task = SIMPLE_EXEC.with(|exec| {
[INFO] [stderr]     |             ----^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: field `name` is never read
[INFO] [stderr]    --> ch04-async-internals/src/bin/03_mini_executor.rs:183:5
[INFO] [stderr]     |
[INFO] [stderr] 181 | struct TimerFuture {
[INFO] [stderr]     |        ----------- field in this struct
[INFO] [stderr] 182 |     shared: Arc<Mutex<TimerShared>>,
[INFO] [stderr] 183 |     name: String,
[INFO] [stderr]     |     ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused macro definition: `my_select`
[INFO] [stderr]    --> ch04-async-internals/src/bin/05_select_and_join.rs:164:14
[INFO] [stderr]     |
[INFO] [stderr] 164 | macro_rules! my_select {
[INFO] [stderr]     |              ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `is_empty` is never used
[INFO] [stderr]    --> ch04-async-internals/src/bin/05_select_and_join.rs:375:8
[INFO] [stderr]     |
[INFO] [stderr] 366 | impl<F: Future + Unpin> FuturesUnordered<F> {
[INFO] [stderr]     | ------------------------------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 375 |     fn is_empty(&self) -> bool {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `ch02-ownership-advanced` (bin "02_leak_and_rc_cycles") generated 2 warnings (1 duplicate)
[INFO] [stderr] warning: `ch01-type-system` (bin "05_type_erasure") generated 2 warnings
[INFO] [stderr] warning: `ch01-type-system` (bin "05_type_erasure" test) generated 2 warnings (2 duplicates)
[INFO] [stderr] warning: `ch02-ownership-advanced` (bin "04_self_referential") generated 2 warnings (2 duplicates)
[INFO] [stderr] warning: `ch01-type-system` (bin "07_negative_impl" test) generated 6 warnings (run `cargo fix --bin "07_negative_impl" -p ch01-type-system --tests` to apply 1 suggestion)
[INFO] [stderr] warning: `ch01-type-system` (bin "07_negative_impl") generated 6 warnings (6 duplicates)
[INFO] [stderr] warning: `ch01-type-system` (bin "01_lifetime_variance") generated 4 warnings (4 duplicates)
[INFO] [stderr] warning: `ch04-async-internals` (bin "03_mini_executor") generated 3 warnings (run `cargo fix --bin "03_mini_executor" -p ch04-async-internals` to apply 2 suggestions)
[INFO] [stderr] warning: `ch04-async-internals` (bin "05_select_and_join") generated 2 warnings
[INFO] [stderr] warning: variant `Completed` is never constructed
[INFO] [stderr]    --> ch02-ownership-advanced/src/bin/03_pin_and_unpin.rs:215:5
[INFO] [stderr]     |
[INFO] [stderr] 212 | enum FutureState {
[INFO] [stderr]     |      ----------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 215 |     Completed,
[INFO] [stderr]     |     ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `assert_not_unpin` is never used
[INFO] [stderr]    --> ch02-ownership-advanced/src/bin/03_pin_and_unpin.rs:336:12
[INFO] [stderr]     |
[INFO] [stderr] 336 |         fn assert_not_unpin<T>() {}
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `value` is never read
[INFO] [stderr]    --> ch04-async-internals/src/bin/03_mini_executor.rs:558:29
[INFO] [stderr]     |
[INFO] [stderr] 558 |             let mut value = 0;
[INFO] [stderr]     |                             ^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 562 |             value = 42;
[INFO] [stderr]     |             ---------- `value` is overwritten here before the previous value is read
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `a`, `b`, and `c` are never read
[INFO] [stderr]   --> ch02-ownership-advanced/src/bin/05_drop_order.rs:40:5
[INFO] [stderr]    |
[INFO] [stderr] 39 | struct MyStruct {
[INFO] [stderr]    |        -------- fields in this struct
[INFO] [stderr] 40 |     a: DropLogger,
[INFO] [stderr]    |     ^
[INFO] [stderr] 41 |     b: DropLogger,
[INFO] [stderr]    |     ^
[INFO] [stderr] 42 |     c: DropLogger,
[INFO] [stderr]    |     ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `PanicOnDrop` is never constructed
[INFO] [stderr]    --> ch02-ownership-advanced/src/bin/05_drop_order.rs:208:12
[INFO] [stderr]     |
[INFO] [stderr] 208 |     struct PanicOnDrop;
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `a`, `b`, and `c` are never read
[INFO] [stderr]    --> ch02-ownership-advanced/src/bin/05_drop_order.rs:394:13
[INFO] [stderr]     |
[INFO] [stderr] 393 |         struct Outer {
[INFO] [stderr]     |                ----- fields in this struct
[INFO] [stderr] 394 |             a: Inner,
[INFO] [stderr]     |             ^
[INFO] [stderr] 395 |             b: Inner,
[INFO] [stderr]     |             ^
[INFO] [stderr] 396 |             c: Inner,
[INFO] [stderr]     |             ^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> ch07-performance/src/lib.rs:125:17
[INFO] [stderr]     |
[INFO] [stderr] 125 |         assert!(avg >= 0);
[INFO] [stderr]     |                 ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait `ObjectSafe` is never used
[INFO] [stderr]    --> ch01-type-system/src/bin/04_trait_object.rs:126:7
[INFO] [stderr]     |
[INFO] [stderr] 126 | trait ObjectSafe {
[INFO] [stderr]     |       ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `unsafe_method` is never used
[INFO] [stderr]    --> ch01-type-system/src/bin/04_trait_object.rs:151:8
[INFO] [stderr]     |
[INFO] [stderr] 147 | trait MostlySafe {
[INFO] [stderr]     |       ---------- method in this trait
[INFO] [stderr] ...
[INFO] [stderr] 151 |     fn unsafe_method<T>(&self, _t: T)
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `ch02-ownership-advanced` (bin "03_pin_and_unpin" test) generated 2 warnings
[INFO] [stderr] warning: `ch04-async-internals` (bin "03_mini_executor" test) generated 4 warnings (3 duplicates)
[INFO] [stderr] warning: `ch02-ownership-advanced` (bin "05_drop_order" test) generated 3 warnings
[INFO] [stderr] warning: `ch04-async-internals` (bin "05_select_and_join" test) generated 2 warnings (2 duplicates)
[INFO] [stderr] warning: `ch07-performance` (lib test) generated 2 warnings (1 duplicate)
[INFO] [stderr] warning: `ch01-type-system` (bin "03_gat") generated 1 warning (1 duplicate)
[INFO] [stderr] warning: `ch08-real-world-patterns` (bin "01_arena_allocation" test) generated 2 warnings (2 duplicates)
[INFO] [stderr] warning: `ch01-type-system` (bin "04_trait_object") generated 2 warnings
[INFO] [stderr] warning: `ch01-type-system` (bin "04_trait_object" test) generated 2 warnings (2 duplicates)
[INFO] [stderr] warning: field `data` is never read
[INFO] [stderr]    --> ch01-type-system/src/bin/06_phantom_data.rs:149:5
[INFO] [stderr]     |
[INFO] [stderr] 148 | struct SendOnly<T> {
[INFO] [stderr]     |        -------- field in this struct
[INFO] [stderr] 149 |     data: T,
[INFO] [stderr]     |     ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `assert_sync` is never used
[INFO] [stderr]    --> ch01-type-system/src/bin/06_phantom_data.rs:168:8
[INFO] [stderr]     |
[INFO] [stderr] 168 |     fn assert_sync<T: Sync>() {}
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `value` is never read
[INFO] [stderr]    --> ch01-type-system/src/bin/06_phantom_data.rs:196:5
[INFO] [stderr]     |
[INFO] [stderr] 195 | struct Wrapper<T> {
[INFO] [stderr]     |        ------- field in this struct
[INFO] [stderr] 196 |     value: T,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Container` is never constructed
[INFO] [stderr]    --> ch01-type-system/src/bin/06_phantom_data.rs:207:8
[INFO] [stderr]     |
[INFO] [stderr] 207 | struct Container<T> {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> ch04-async-internals/tests/exercises.rs:200:13
[INFO] [stderr]     |
[INFO] [stderr] 200 |     fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Option<T>> {
[INFO] [stderr]     |             ----^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> ch04-async-internals/tests/exercises.rs:224:17
[INFO] [stderr]     |
[INFO] [stderr] 224 |         fn poll(mut self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll<i32> {
[INFO] [stderr]     |                 ----^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> ch04-async-internals/tests/exercises.rs:287:9
[INFO] [stderr]     |
[INFO] [stderr] 287 |     let mut cx = Context::from_waker(&waker);
[INFO] [stderr]     |         ----^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Weak`
[INFO] [stderr]   --> ch02-ownership-advanced/tests/exercises.rs:69:23
[INFO] [stderr]    |
[INFO] [stderr] 69 |     use std::rc::{Rc, Weak};
[INFO] [stderr]    |                       ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::pin::Pin`
[INFO] [stderr]    --> ch02-ownership-advanced/tests/exercises.rs:102:9
[INFO] [stderr]     |
[INFO] [stderr] 102 |     use std::pin::Pin;
[INFO] [stderr]     |         ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]    --> ch02-ownership-advanced/tests/exercises.rs:145:13
[INFO] [stderr]     |
[INFO] [stderr] 145 |             unsafe {
[INFO] [stderr]     |             ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `a`, `b`, and `c` are never read
[INFO] [stderr]    --> ch02-ownership-advanced/tests/exercises.rs:189:9
[INFO] [stderr]     |
[INFO] [stderr] 188 |     struct Outer {
[INFO] [stderr]     |            ----- fields in this struct
[INFO] [stderr] 189 |         a: Inner,
[INFO] [stderr]     |         ^
[INFO] [stderr] 190 |         b: Inner,
[INFO] [stderr]     |         ^
[INFO] [stderr] 191 |         c: Inner,
[INFO] [stderr]     |         ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `ch02-ownership-advanced` (bin "03_pin_and_unpin") generated 1 warning (1 duplicate)
[INFO] [stderr] warning: `ch01-type-system` (bin "06_phantom_data") generated 4 warnings
[INFO] [stderr] warning: `ch01-type-system` (bin "06_phantom_data" test) generated 4 warnings (4 duplicates)
[INFO] [stderr] warning: `ch02-ownership-advanced` (bin "05_drop_order") generated 2 warnings (2 duplicates)
[INFO] [stderr] warning: `ch04-async-internals` (test "exercises") generated 3 warnings (run `cargo fix --test "exercises" -p ch04-async-internals` to apply 3 suggestions)
[INFO] [stderr] warning: `ch02-ownership-advanced` (test "exercises") generated 4 warnings (run `cargo fix --test "exercises" -p ch02-ownership-advanced` to apply 2 suggestions)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.23s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/ch01-type-system/2495f85a2355bf14/out/ch01_type_system-2495f85a2355bf14)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/01_lifetime_variance.rs (/opt/rustwide/target/release/build/ch01-type-system/5ee020c9a8f0812b/out/01_lifetime_variance-5ee020c9a8f0812b)
[INFO] [stderr]      Running unittests src/bin/02_hrtb.rs (/opt/rustwide/target/release/build/ch01-type-system/57f3166400d044c1/out/02_hrtb-57f3166400d044c1)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/03_gat.rs (/opt/rustwide/target/release/build/ch01-type-system/7c09f0247cb3c1d9/out/03_gat-7c09f0247cb3c1d9)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/04_trait_object.rs (/opt/rustwide/target/release/build/ch01-type-system/361c971e58176fde/out/04_trait_object-361c971e58176fde)
[INFO] [stderr]      Running unittests src/bin/05_type_erasure.rs (/opt/rustwide/target/release/build/ch01-type-system/5533ff45052a5718/out/05_type_erasure-5533ff45052a5718)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/06_phantom_data.rs (/opt/rustwide/target/release/build/ch01-type-system/bee0d67b23df51a7/out/06_phantom_data-bee0d67b23df51a7)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/07_negative_impl.rs (/opt/rustwide/target/release/build/ch01-type-system/ed2e958e6e01e935/out/07_negative_impl-ed2e958e6e01e935)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/08_const_generics.rs (/opt/rustwide/target/release/build/ch01-type-system/9a2bbcb72b756031/out/08_const_generics-9a2bbcb72b756031)
[INFO] [stdout] 
[INFO] [stdout] running 16 tests
[INFO] [stdout] test tests::test_buf_with_default ... ok
[INFO] [stdout] test tests::test_matrix_multiply_rect ... ok
[INFO] [stdout] test tests::test_dot_product ... ok
[INFO] [stdout] test tests::test_ring_buffer_wraparound ... ok
[INFO] [stdout] test tests::test_fillable_trait ... ok
[INFO] [stdout] test tests::test_matrix_multiply ... ok
[INFO] [stdout] test tests::test_ring_buffer_basic ... ok
[INFO] [stdout] test tests::test_stack_buffer ... ok
[INFO] [stdout] test tests::test_sum ... ok
[INFO] [stdout] test tests::test_serialize_fixed ... ok
[INFO] [stdout] test tests::test_fixed_array_basic ... ok
[INFO] [stdout] test tests::test_matrix_basic ... ok
[INFO] [stdout] test tests::test_has_size_trait ... ok
[INFO] [stdout] test tests::test_fixed_array_different_sizes_are_different_types ... ok
[INFO] [stdout] test tests::test_vector_norm ... ok
[INFO] [stdout] test tests::test_fixed_array_from_vec ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/exercises.rs (/opt/rustwide/target/release/build/ch01-type-system/4ec0df229f2c0f3c/out/exercises-4ec0df229f2c0f3c)
[INFO] [stdout] 
[INFO] [stdout] running 14 tests
[INFO] [stdout] test test_auto_trait_derivation ... ok
[INFO] [stdout] test test_gat_pair_windows ... ok
[INFO] [stdout] test test_invariance_of_mut_ref ... ok
[INFO] [stdout] test test_hrtb_closure ... ok
[INFO] [stdout] test test_object_safety ... ok
[INFO] [stdout] test test_typestate_with_phantom ... ok
[INFO] [stdout] test test_covariance_of_shared_ref ... ok
[INFO] [stdout] test test_any_downcast ... ok
[INFO] [stdout] test test_hrtb_event_handler ... ok
[INFO] [stdout] test test_trait_object_dispatch ... ok
[INFO] [stdout] test test_custom_type_erasure ... ok
[INFO] [stdout] test test_phantom_data_send_sync ... ok
[INFO] [stdout] test test_phantom_data_size ... ok
[INFO] [stdout] test test_phantom_pinned ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/ch02-ownership-advanced/20713248e396eb42/out/ch02_ownership_advanced-20713248e396eb42)
[INFO] [stderr]      Running unittests src/bin/01_interior_mutability.rs (/opt/rustwide/target/release/build/ch02-ownership-advanced/3231a3f5b2e5c06f/out/01_interior_mutability-3231a3f5b2e5c06f)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test tests::test_refcell_basic ... ok
[INFO] [stdout] test tests::test_oncecell ... ok
[INFO] [stdout] test tests::test_unsafecell_raw ... ok
[INFO] [stdout] test tests::test_cell_basics ... ok
[INFO] [stdout] test tests::test_cell_update ... ok
[INFO] [stdout] test tests::test_refcell_panic_on_conflict - should panic ... ok
[INFO] [stdout] test tests::test_oncecell_get_or_init ... ok
[INFO] [stderr]      Running unittests src/bin/02_leak_and_rc_cycles.rs (/opt/rustwide/target/release/build/ch02-ownership-advanced/d258fc118939ab37/out/02_leak_and_rc_cycles-d258fc118939ab37)
[INFO] [stdout] test tests::test_rwlock_concurrent_reads ... ok
[INFO] [stdout] test tests::test_mutex_thread_safety ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test tests::test_rc_cycle_causes_leak ... ok
[INFO] [stdout] test tests::test_tree_path ... ok
[INFO] [stdout] test tests::test_tree_no_cycle ... ok
[INFO] [stdout] test tests::test_weak_breaks_cycle ... ok
[INFO] [stdout] test tests::test_arc_weak_thread_safety ... ok
[INFO] [stderr]      Running unittests src/bin/03_pin_and_unpin.rs (/opt/rustwide/target/release/build/ch02-ownership-advanced/0f011c47a85dbae3/out/03_pin_and_unpin-0f011c47a85dbae3)
[INFO] [stdout] test tests::test_weak_upgrade_returns_none_after_drop ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test tests::test_simulated_future ... ok
[INFO] [stdout] test tests::test_pin_new_for_unpin ... ok
[INFO] [stdout] test tests::test_immovable_data ... ok
[INFO] [stdout] test tests::test_immovable_data_self_ref_consistency ... ok
[INFO] [stdout] test tests::test_phantom_pinned_makes_unpin_false ... ok
[INFO] [stdout] test tests::test_pin_deref ... ok
[INFO] [stdout] test tests::test_pin_box_basic ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/04_self_referential.rs (/opt/rustwide/target/release/build/ch02-ownership-advanced/1a88b0bebbd63397/out/04_self_referential-1a88b0bebbd63397)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test tests::test_self_ref_iterator ... ok
[INFO] [stdout] test tests::test_self_ref_string_creation ... ok
[INFO] [stderr]      Running unittests src/bin/05_drop_order.rs (/opt/rustwide/target/release/build/ch02-ownership-advanced/081bdf90fcbd3d13/out/05_drop_order-081bdf90fcbd3d13)
[INFO] [stdout] test tests::test_self_ref_iterator_reset ... ok
[INFO] [stdout] test tests::test_self_ref_string_empty ... ok
[INFO] [stdout] test tests::test_self_ref_string_unicode ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test tests::test_drop_order_fields ... ok
[INFO] [stdout] test tests::test_raii_lock ... ok
[INFO] [stderr]      Running tests/exercises.rs (/opt/rustwide/target/release/build/ch02-ownership-advanced/bd550a1b4269a4f7/out/exercises-bd550a1b4269a4f7)
[INFO] [stdout] test tests::test_drop_order_local_vars ... ok
[INFO] [stdout] test tests::test_raii_counter ... ok
[INFO] [stdout] test tests::test_manually_drop ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 13 tests
[INFO] [stdout] test test_oncecell ... ok
[INFO] [stdout] test test_self_ref_string ... ok
[INFO] [stdout] test test_refcell_basic ... ok
[INFO] [stdout] test test_pin_new_for_unpin ... ok
[INFO] [stdout] test test_mem_forget ... ok
[INFO] [stdout] test test_pin_box_basic ... ok
[INFO] [stdout] test test_arc_weak_thread_safety ... ok
[INFO] [stdout] test test_refcell_double_borrow_mut - should panic ... ok
[INFO] [stdout] test test_rc_weak_upgrade ... ok
[INFO] [stdout] test test_manually_drop ... ok
[INFO] [stdout] test test_cell_basic ... ok
[INFO] [stdout] test test_drop_order_fields ... ok
[INFO] [stdout] test test_mutex_thread_safety ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/ch03-unsafe-and-ffi/32936583b7ba448a/out/ch03_unsafe_and_ffi-32936583b7ba448a)
[INFO] [stdout] running 0 tests
[INFO] [stderr]      Running unittests src/bin/01_raw_pointers.rs (/opt/rustwide/target/release/build/ch03-unsafe-and-ffi/5e276df574855e3b/out/01_raw_pointers-5e276df574855e3b)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test tests::test_copy_nonoverlapping ... ok
[INFO] [stdout] test tests::test_nonnull ... ok
[INFO] [stdout] test tests::test_pointer_arithmetic ... ok
[INFO] [stdout] test tests::test_null_check ... ok
[INFO] [stdout] test tests::test_offset_from ... ok
[INFO] [stdout] test tests::test_raw_pointer_read_write ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/02_union_and_transmute.rs (/opt/rustwide/target/release/build/ch03-unsafe-and-ffi/70ea3731a49d480a/out/02_union_and_transmute-70ea3731a49d480a)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test tests::test_bytes_roundtrip ... ok
[INFO] [stdout] test tests::test_union_basic ... ok
[INFO] [stdout] test tests::test_transmute_int_float ... ok
[INFO] [stdout] test tests::test_transmute_bool_u8 ... ok
[INFO] [stderr]      Running unittests src/bin/03_custom_allocator.rs (/opt/rustwide/target/release/build/ch03-unsafe-and-ffi/2e44ba1d52268c67/out/03_custom_allocator-2e44ba1d52268c67)
[INFO] [stdout] test tests::test_float_bits_roundtrip ... ok
[INFO] [stdout] test tests::test_ptr_cast ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test tests::test_bump_allocator_alignment ... ok
[INFO] [stdout] test tests::test_bump_allocator_alloc ... ok
[INFO] [stderr]      Running unittests src/bin/04_ffi_basics.rs (/opt/rustwide/target/release/build/ch03-unsafe-and-ffi/7ebd597038f56d8f/out/04_ffi_basics-7ebd597038f56d8f)
[INFO] [stdout] test tests::test_bump_allocator_reset ... ok
[INFO] [stdout] test tests::test_system_alloc_dealloc ... ok
[INFO] [stdout] test tests::test_tracking_allocator ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test tests::test_cstring_roundtrip ... ok
[INFO] [stdout] test tests::test_rust_add ... ok
[INFO] [stdout] test tests::test_libc_abs ... ok
[INFO] [stderr]      Running unittests src/bin/05_c_interop.rs (/opt/rustwide/target/release/build/ch03-unsafe-and-ffi/83816a391d7214c8/out/05_c_interop-83816a391d7214c8)
[INFO] [stdout] test tests::test_extern_abs ... ok
[INFO] [stdout] test tests::test_ffi_types_sizes ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test tests::test_repr_c_layout ... ok
[INFO] [stdout] test tests::test_sum_array ... ok
[INFO] [stdout] test tests::test_reverse_string ... ok
[INFO] [stdout] test tests::test_gcd ... ok
[INFO] [stdout] test tests::test_rectangle_area ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/06_no_std.rs (/opt/rustwide/target/release/build/ch03-unsafe-and-ffi/c70405f999d2449a/out/06_no_std-c70405f999d2449a)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test tests::test_fixed_array_basic ... ok
[INFO] [stdout] test tests::test_fixed_array_debug ... ok
[INFO] [stdout] test tests::test_fixed_array_overflow ... ok
[INFO] [stdout] test tests::test_fixed_array_iter ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/07_reverse_ffi.rs (/opt/rustwide/target/release/build/ch03-unsafe-and-ffi/be1b4d375af37611/out/07_reverse_ffi-be1b4d375af37611)
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test tests::test_db_lifecycle ... ok
[INFO] [stdout] test tests::test_error_string ... ok
[INFO] [stdout] test tests::test_rust_add ... ok
[INFO] [stdout] test tests::test_rust_free_string_null ... ok
[INFO] [stdout] test tests::test_rust_greeting_null ... ok
[INFO] [stdout] test tests::test_rust_greeting_and_free ... ok
[INFO] [stdout] test tests::test_rust_parse_int ... ok
[INFO] [stdout] test tests::test_rust_safe_div ... ok
[INFO] [stdout] test tests::test_rust_string_len ... ok
[INFO] [stdout] test tests::test_db_null_safety ... ok
[INFO] [stdout] test tests::test_rust_sum_array ... ok
[INFO] [stderr]      Running tests/exercises.rs (/opt/rustwide/target/release/build/ch03-unsafe-and-ffi/9ccd9c14711fa204/out/exercises-9ccd9c14711fa204)
[INFO] [stdout] test tests::test_rust_factorial ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 27 tests
[INFO] [stdout] test test_c_function_map_array ... ok
[INFO] [stdout] test test_cstring_empty ... ok
[INFO] [stdout] test test_c_function_reverse_string ... ok
[INFO] [stdout] test test_copy_nonoverlapping ... ok
[INFO] [stdout] test test_ffi_types ... ok
[INFO] [stdout] test test_pointer_arithmetic ... ok
[INFO] [stdout] test test_repr_c_padding ... ok
[INFO] [stdout] test test_layout_invalid ... ok
[INFO] [stdout] test test_transmute_bool_u8 ... ok
[INFO] [stdout] test test_safe_alternative_bits ... ok
[INFO] [stdout] test test_cstring_cstr ... ok
[INFO] [stdout] test test_null_pointer ... ok
[INFO] [stdout] test test_repr_c_nested_struct ... ok
[INFO] [stdout] test test_raw_pointer_basics ... ok
[INFO] [stdout] test test_copy_overlapping ... ok
[INFO] [stdout] test test_c_function_gcd ... ok
[INFO] [stdout] test test_c_function_sum_array ... ok
[INFO] [stdout] test test_fixed_array ... ok
[INFO] [stdout] test test_cstring_interior_nul ... ok
[INFO] [stdout] test test_layout_basics ... ok
[INFO] [stdout] test test_transmute_actual_usage ... ok
[INFO] [stdout] test test_nonnull ... ok
[INFO] [stdout] test test_safe_alternative_bytes ... ok
[INFO] [stdout] test test_transmute_size_check ... ok
[INFO] [stdout] test test_union_write_read ... ok
[INFO] [stdout] test test_repr_c_struct ... ok
[INFO] [stdout] test test_union_basic ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/ch04-async-internals/33db51ea7a656aa6/out/ch04_async_internals-33db51ea7a656aa6)
[INFO] [stderr]      Running unittests src/bin/01_future_trait.rs (/opt/rustwide/target/release/build/ch04-async-internals/1fd19c3131d74823/out/01_future_trait-1fd19c3131d74823)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test tests::test_async_block ... ok
[INFO] [stdout] test tests::test_step_future_manual_poll ... ok
[INFO] [stdout] test tests::test_step_future ... ok
[INFO] [stdout] test tests::test_ready_future ... ok
[INFO] [stdout] test tests::test_ready_future_string ... ok
[INFO] [stdout] test tests::test_step_future_zero_pending ... ok
[INFO] [stdout] test tests::test_timer_future ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/02_waker.rs (/opt/rustwide/target/release/build/ch04-async-internals/d44b5f393a14a5b0/out/02_waker-d44b5f393a14a5b0)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test tests::test_create_counting_waker ... ok
[INFO] [stdout] test tests::test_waker_in_context ... ok
[INFO] [stdout] test tests::test_waker_ref_counting ... ok
[INFO] [stdout] test tests::test_waker_clone_shares_state ... ok
[INFO] [stdout] test tests::test_wake_consumes_waker ... ok
[INFO] [stdout] test tests::test_multiple_wakes ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/03_mini_executor.rs (/opt/rustwide/target/release/build/ch04-async-internals/2f0aae2c61056c5d/out/03_mini_executor-2f0aae2c61056c5d)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test tests::test_block_on_async_block ... ok
[INFO] [stdout] test tests::test_spawn_executes ... ok
[INFO] [stdout] test tests::test_yield_now ... ok
[INFO] [stdout] test tests::test_block_on_simple ... ok
[INFO] [stdout] test tests::test_spawn_multiple ... ok
[INFO] [stdout] test tests::test_spawn_with_result ... ok
[INFO] [stdout] test tests::test_timer_future ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/04_pin_in_action.rs (/opt/rustwide/target/release/build/ch04-async-internals/5b96a392c0794f1b/out/04_pin_in_action-5b96a392c0794f1b)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test tests::test_pin_box_unpin_type ... ok
[INFO] [stdout] test tests::test_self_ref_consistency ... ok
[INFO] [stdout] test tests::test_pin_get_ref ... ok
[INFO] [stdout] test tests::test_self_ref_creation ... ok
[INFO] [stdout] test tests::test_pin_new_unpin ... ok
[INFO] [stdout] test tests::test_phantom_pinned_is_not_unpin ... ok
[INFO] [stdout] test tests::test_pin_mut_macro ... ok
[INFO] [stdout] test tests::test_simple_block_on ... ok
[INFO] [stdout] test tests::test_async_self_ref_example ... ok
[INFO] [stdout] test tests::test_self_ref_different_strings ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/05_select_and_join.rs (/opt/rustwide/target/release/build/ch04-async-internals/a2f6d5b294c1dcad/out/05_select_and_join-a2f6d5b294c1dcad)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test tests::test_select_both_immediate ... ok
[INFO] [stdout] test tests::test_join_both_complete ... ok
[INFO] [stdout] test tests::test_futures_unordered ... ok
[INFO] [stdout] test tests::test_futures_unordered_empty ... ok
[INFO] [stdout] test tests::test_select_left_wins ... ok
[INFO] [stdout] test tests::test_select_right_wins ... ok
[INFO] [stdout] test tests::test_timeout_elapsed ... ok
[INFO] [stdout] test tests::test_timeout_ok ... ok
[INFO] [stdout] test tests::test_join_with_delays ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/06_channel_impl.rs (/opt/rustwide/target/release/build/ch04-async-internals/2bd3fa6aab819f8c/out/06_channel_impl-2bd3fa6aab819f8c)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test tests::test_clone_sender ... ok
[INFO] [stdout] test tests::test_channel_close_no_messages ... ok
[INFO] [stdout] test tests::test_multiple_messages ... ok
[INFO] [stdout] test tests::test_basic_send_recv ... ok
[INFO] [stdout] test tests::test_cross_thread_send_recv ... ok
[INFO] [stdout] test tests::test_send_after_close ... ok
[INFO] [stdout] test tests::test_channel_close_drains_buffer ... ok
[INFO] [stdout] test tests::test_recv_on_empty_channel ... ok
[INFO] [stdout] test tests::test_channel_close_with_pending ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/07_async_trait.rs (/opt/rustwide/target/release/build/ch04-async-internals/6bbe15aa892bf3eb/out/07_async_trait-6bbe15aa892bf3eb)
[INFO] [stdout] 
[INFO] [stdout] running 24 tests
[INFO] [stdout] test tests::test_block_on_ready_future ... ok
[INFO] [stdout] test tests::test_manual_process ... ok
[INFO] [stdout] test tests::test_manual_fetch_data_found ... ok
[INFO] [stdout] test tests::test_cached_repo_basic ... ok
[INFO] [stdout] test tests::test_generic_dispatch ... ok
[INFO] [stdout] test tests::test_repo_error_display ... ok
[INFO] [stdout] test tests::test_greet_person ... ok
[INFO] [stdout] test tests::test_trait_object_db_service ... ok
[INFO] [stdout] test tests::test_manual_fetch_data_not_found ... ok
[INFO] [stdout] test tests::test_native_async_trait_chinese ... ok
[INFO] [stdout] test tests::test_repo_overridden_exists ... ok
[INFO] [stdout] test tests::test_repo_set_and_get ... ok
[INFO] [stdout] test tests::test_block_on_with_await ... ok
[INFO] [stdout] test tests::test_trait_object_collection ... ok
[INFO] [stdout] test tests::test_cached_repo_cache_hit ... ok
[INFO] [stdout] test tests::test_trait_object_dynamic_dispatch ... ok
[INFO] [stdout] test tests::test_trait_object_web_service ... ok
[INFO] [stdout] test tests::test_native_async_trait_english ... ok
[INFO] [stdout] test tests::test_repo_delete ... ok
[INFO] [stdout] test tests::test_cached_repo_delete_clears_cache ... ok
[INFO] [stdout] test tests::test_repo_exists_default_impl ... ok
[INFO] [stdout] test tests::test_repo_delete_nonexistent ... ok
[INFO] [stdout] test tests::test_repo_get_nonexistent ... ok
[INFO] [stdout] test tests::test_cached_repo_stats ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 24 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/exercises.rs (/opt/rustwide/target/release/build/ch04-async-internals/c69532e59f7b0d29/out/exercises-c69532e59f7b0d29)
[INFO] [stdout] 
[INFO] [stdout] running 19 tests
[INFO] [stdout] test test_channel_multiple_senders ... ok
[INFO] [stdout] test test_channel_basic ... ok
[INFO] [stdout] test test_pin_box_basic ... ok
[INFO] [stdout] test test_future_in_loop ... ok
[INFO] [stdout] test test_pin_new_for_unpin ... ok
[INFO] [stdout] test test_nested_async_blocks ... ok
[INFO] [stdout] test test_future_chain ... ok
[INFO] [stdout] test test_pending_then_ready ... ok
[INFO] [stdout] test test_channel_close ... ok
[INFO] [stdout] test test_waker_drives_future_progress ... ok
[INFO] [stdout] test test_waker_in_context ... ok
[INFO] [stdout] test test_waker_counting ... ok
[INFO] [stdout] test test_waker_clone_shares_state ... ok
[INFO] [stdout] test test_ready_future_concept ... ok
[INFO] [stdout] test test_timer_future_in_async_block ... ok
[INFO] [stdout] test test_channel_async_recv ... ok
[INFO] [stdout] test test_timer_and_channel_integration ... ok
[INFO] [stdout] test test_multiple_timers ... ok
[INFO] [stdout] test test_timer_future_completes ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/ch05-macro-systems/1505a61bac86e9cc/out/ch05_macro_systems-1505a61bac86e9cc)
[INFO] [stderr]      Running unittests src/bin/01_declarative_macro.rs (/opt/rustwide/target/release/build/ch05-macro-systems/b0a019650820ee46/out/01_declarative_macro-b0a019650820ee46)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 48 tests
[INFO] [stdout] test tests::test_bad_increment_no_conflict ... ok
[INFO] [stdout] test tests::test_crate_level_macro ... ok
[INFO] [stdout] test tests::test_my_list_trailing_comma ... ok
[INFO] [stdout] test tests::test_my_match_or_none ... ok
[INFO] [stdout] test tests::test_my_matches_enum ... ok
[INFO] [stdout] test tests::test_my_matches_exact_value ... ok
[INFO] [stdout] test tests::test_create_function_via_ident ... ok
[INFO] [stdout] test tests::test_my_matches_some ... ok
[INFO] [stdout] test tests::test_default_of_via_path ... ok
[INFO] [stdout] test tests::test_at_least_one_single ... ok
[INFO] [stdout] test tests::test_good_increment ... ok
[INFO] [stdout] test tests::test_my_vec_empty ... ok
[INFO] [stdout] test tests::test_hygiene_trap_works ... ok
[INFO] [stdout] test tests::test_make_pair_macro ... ok
[INFO] [stdout] test tests::test_make_wrapper_via_ty ... ok
[INFO] [stdout] test tests::test_my_matches_multiple_patterns ... ok
[INFO] [stdout] test tests::test_my_matches_with_guard ... ok
[INFO] [stdout] test tests::test_say_hello_macro ... ok
[INFO] [stdout] test tests::test_at_least_one_multiple ... ok
[INFO] [stdout] test tests::test_debug_print_macro ... ok
[INFO] [stdout] test tests::test_sql_select_basic ... ok
[INFO] [stdout] test tests::test_make_struct_fn_parallel_repetition ... ok
[INFO] [stdout] test tests::test_optional_tail_no_tail ... ok
[INFO] [stdout] test tests::test_query_builder_module_macro ... ok
[INFO] [stdout] test tests::test_my_match_or_some ... ok
[INFO] [stdout] test tests::test_declare_x_visible ... ok
[INFO] [stdout] test tests::test_my_vec_repeat_zero ... ok
[INFO] [stdout] test tests::test_my_vec_matches_std ... ok
[INFO] [stdout] test tests::test_optional_tail_with_tail ... ok
[INFO] [stdout] test tests::test_my_vec_elements ... ok
[INFO] [stdout] test tests::test_sql_select_limit ... ok
[INFO] [stdout] test tests::test_sql_select_display_trait ... ok
[INFO] [stdout] test tests::test_my_vec_repeat ... ok
[INFO] [stdout] test tests::test_my_vec_trailing_comma ... ok
[INFO] [stdout] test tests::test_repository_module_uses_exported_macro ... ok
[INFO] [stdout] test tests::test_sql_select_order_by ... ok
[INFO] [stdout] test tests::test_sql_select_struct_is_mutable ... ok
[INFO] [stdout] test tests::test_sql_select_where_eq ... ok
[INFO] [stdout] test tests::test_sql_select_where_gt ... ok
[INFO] [stdout] test tests::test_sql_select_where_order_limit ... ok
[INFO] [stdout] test tests::test_with_tt_single ... ok
[INFO] [stdout] test tests::test_wrapper_display_via_lifetime ... ok
[INFO] [stdout] test tests::test_sql_select_multiple_columns ... ok
[INFO] [stdout] test tests::test_str_ref_via_lifetime ... ok
[INFO] [stdout] test tests::test_sum_all_multiple ... ok
[INFO] [stdout] test tests::test_sum_all_zero ... ok
[INFO] [stdout] test tests::test_with_tt_group ... ok
[INFO] [stdout] test tests::test_trait_impl_via_macro ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 48 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/02_proc_macro_basics.rs (/opt/rustwide/target/release/build/ch05-macro-systems/23098ec64f0650b3/out/02_proc_macro_basics-23098ec64f0650b3)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test tests::test_describe_config ... ok
[INFO] [stdout] test tests::test_builder_overwrite ... ok
[INFO] [stdout] test tests::test_builder_missing_field ... ok
[INFO] [stdout] test tests::test_token_stream_concept ... ok
[INFO] [stdout] test tests::test_describe_student ... ok
[INFO] [stdout] test tests::test_into_static_str ... ok
[INFO] [stdout] test tests::test_variant_name_unit_enum ... ok
[INFO] [stdout] test tests::test_variant_name_complex_enum ... ok
[INFO] [stdout] test tests::test_builder_success ... ok
[INFO] [stderr]      Running unittests src/bin/03_derive_macro.rs (/opt/rustwide/target/release/build/ch05-macro-systems/352792c98cea4d4b/out/03_derive_macro-352792c98cea4d4b)
[INFO] [stdout] test tests::test_logger_simulation ... ok
[INFO] [stdout] test tests::test_function_signature_concept ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 25 tests
[INFO] [stdout] test tests::test_api_event_variant_name_and_into_static_str ... ok
[INFO] [stdout] test tests::test_builder_all_fields_set ... ok
[INFO] [stdout] test tests::test_builder_no_fields_set ... ok
[INFO] [stdout] test tests::test_describe_http_request_all_fields ... ok
[INFO] [stdout] test tests::test_into_static_str_http_methods ... ok
[INFO] [stdout] test tests::test_describe_point_contains_field_names ... ok
[INFO] [stdout] test tests::test_describe_point_contains_struct_name ... ok
[INFO] [stdout] test tests::test_into_static_str_struct_variant ... ok
[INFO] [stdout] test tests::test_describe_point_contains_field_types ... ok
[INFO] [stdout] test tests::test_builder_overwrite_multiple_fields ... ok
[INFO] [stdout] test tests::test_into_static_str_tuple_variant ... ok
[INFO] [stdout] test tests::test_into_static_str_unit_variant ... ok
[INFO] [stdout] test tests::test_variant_name_struct_variant ... ok
[INFO] [stdout] test tests::test_variant_name_unit_enum ... ok
[INFO] [stdout] test tests::test_variant_name_unit_variant ... ok
[INFO] [stdout] test tests::test_into_static_str_multi_field_tuple ... ok
[INFO] [stdout] test tests::test_builder_equality ... ok
[INFO] [stdout] test tests::test_builder_into_static_str_combined ... ok
[INFO] [stdout] test tests::test_builder_missing_multiple_fields ... ok
[INFO] [stdout] test tests::test_builder_missing_one_field ... ok
[INFO] [stdout] test tests::test_builder_overwrite_field ... ok
[INFO] [stdout] test tests::test_into_static_str_lifetime_is_static ... ok
[INFO] [stdout] test tests::test_variant_name_message_all_kinds ... ok
[INFO] [stdout] test tests::test_describe_log_entry_struct ... ok
[INFO] [stdout] test tests::test_variant_name_tuple_variant ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/04_dsl_design.rs (/opt/rustwide/target/release/build/ch05-macro-systems/f3ffbf5219c55de7/out/04_dsl_design-f3ffbf5219c55de7)
[INFO] [stdout] 
[INFO] [stdout] running 53 tests
[INFO] [stdout] test tests::test_alt2_all_fail ... ok
[INFO] [stdout] test tests::test_alt2_first_branch ... ok
[INFO] [stdout] test tests::test_assert_that_starts_with_pass ... ok
[INFO] [stdout] test tests::test_assert_that_equals_pass ... ok
[INFO] [stdout] test tests::test_build_struct_and_new ... ok
[INFO] [stdout] test tests::test_char_parser_failure ... ok
[INFO] [stdout] test tests::test_char_parser_success ... ok
[INFO] [stdout] test tests::test_assert_that_starts_with_fail - should panic ... ok
[INFO] [stdout] test tests::test_config_bool_false ... ok
[INFO] [stdout] test tests::test_assert_that_contains_pass ... ok
[INFO] [stdout] test tests::test_config_bool_true ... ok
[INFO] [stdout] test tests::test_assert_that_greater_than_fail - should panic ... ok
[INFO] [stdout] test tests::test_alt2_second_branch ... ok
[INFO] [stdout] test tests::test_assert_that_greater_than_pass ... ok
[INFO] [stdout] test tests::test_assert_that_equals_fail - should panic ... ok
[INFO] [stdout] test tests::test_checked_div_expression ... ok
[INFO] [stdout] test tests::test_config_list ... ok
[INFO] [stdout] test tests::test_html_multiple_children ... ok
[INFO] [stdout] test tests::test_html_nested_elements ... ok
[INFO] [stdout] test tests::test_assert_that_ends_with_pass ... ok
[INFO] [stdout] test tests::test_config_string_value ... ok
[INFO] [stdout] test tests::test_html_deeply_nested ... ok
[INFO] [stdout] test tests::test_html_img_void ... ok
[INFO] [stdout] test tests::test_integer_parser ... ok
[INFO] [stdout] test tests::test_html_simple_element ... ok
[INFO] [stdout] test tests::test_config_nested_map ... ok
[INFO] [stdout] test tests::test_ident_parser ... ok
[INFO] [stdout] test tests::test_ident_parser_must_start_with_letter ... ok
[INFO] [stdout] test tests::test_html_text_node ... ok
[INFO] [stdout] test tests::test_config_render ... ok
[INFO] [stdout] test tests::test_html_void_element ... ok
[INFO] [stdout] test tests::test_html_escape ... ok
[INFO] [stdout] test tests::test_html_mixed_children ... ok
[INFO] [stdout] test tests::test_checked_div_zero - should panic ... ok
[INFO] [stdout] test tests::test_html_element_with_attrs ... ok
[INFO] [stdout] test tests::test_checked_query_describe ... ok
[INFO] [stdout] test tests::test_checked_query_columns ... ok
[INFO] [stdout] test tests::test_assert_that_in_range_pass ... ok
[INFO] [stdout] test tests::test_matcher_equals_matches ... ok
[INFO] [stdout] test tests::test_checked_div_normal ... ok
[INFO] [stdout] test tests::test_safe_wrap_expression ... ok
[INFO] [stdout] test tests::test_integer_parser_no_digits ... ok
[INFO] [stdout] test tests::test_seq2_combinator ... ok
[INFO] [stdout] test tests::test_matcher_equals_describe ... ok
[INFO] [stdout] test tests::test_tag_parser_failure ... ok
[INFO] [stdout] test tests::test_seq_first_parser_fails ... ok
[INFO] [stderr]      Running unittests src/bin/05_attribute_macros.rs (/opt/rustwide/target/release/build/ch05-macro-systems/32f02c38151e9e22/out/05_attribute_macros-32f02c38151e9e22)
[INFO] [stdout] test tests::test_seq_second_parser_fails ... ok
[INFO] [stdout] test tests::test_tag_parser_success ... ok
[INFO] [stdout] test tests::test_seq3_combinator ... ok
[INFO] [stdout] test tests::test_matcher_starts_with_describe ... ok
[INFO] [stdout] test tests::test_mock_query_insert ... ok
[INFO] [stdout] test tests::test_mock_query_select ... ok
[INFO] [stdout] test tests::test_safe_wrap_via_crate_path ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 53 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test tests::test_with_default_server_config ... ok
[INFO] [stdout] test tests::test_with_default_user_profile ... ok
[INFO] [stderr]      Running tests/exercises.rs (/opt/rustwide/target/release/build/ch05-macro-systems/45c153d3df8f9d7f/out/exercises-45c153d3df8f9d7f)
[INFO] [stdout] test tests::test_timed_returns_correct_value ... ok
[INFO] [stdout] test tests::test_default_then_modify ... ok
[INFO] [stdout] test tests::test_timed_with_args ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 44 tests
[INFO] [stdout] test test_builder_field_order_independent ... ok
[INFO] [stdout] test test_builder_no_fields_set ... ok
[INFO] [stdout] test test_builder_numeric_and_bool_fields ... ok
[INFO] [stdout] test test_combined_variant_name_and_into_static_str ... ok
[INFO] [stdout] test test_builder_mutable_reuse ... ok
[INFO] [stdout] test test_describe_multiple_field_types ... ok
[INFO] [stdout] test test_builder_overwrite_multiple_fields ... ok
[INFO] [stdout] test test_into_static_str_lifetime ... ok
[INFO] [stdout] test test_into_static_str_log_levels ... ok
[INFO] [stdout] test test_describe_many_fields ... ok
[INFO] [stdout] test test_into_static_str_single_variant ... ok
[INFO] [stdout] test test_into_static_str_unit_variants ... ok
[INFO] [stdout] test test_macro_rules_calculate_mul ... ok
[INFO] [stdout] test test_describe_output_format ... ok
[INFO] [stdout] test test_describe_basic_struct ... ok
[INFO] [stdout] test test_builder_missing_single_field ... ok
[INFO] [stdout] test test_combined_with_manual_impl ... ok
[INFO] [stdout] test test_macro_rules_calculate_pow ... ok
[INFO] [stdout] test test_macro_rules_define_newtype ... ok
[INFO] [stdout] test test_describe_single_field ... ok
[INFO] [stdout] test test_macro_rules_double ... ok
[INFO] [stdout] test test_macro_rules_double_complex_expr ... ok
[INFO] [stdout] test test_macro_rules_hygiene ... ok
[INFO] [stdout] test test_macro_rules_simple_map_empty ... ok
[INFO] [stdout] test test_macro_rules_vec_of_list ... ok
[INFO] [stdout] test test_builder_all_fields_set ... ok
[INFO] [stdout] test test_builder_single_field ... ok
[INFO] [stdout] test test_builder_overwrite_field ... ok
[INFO] [stdout] test test_macro_rules_simple_map ... ok
[INFO] [stdout] test test_builder_single_field_missing ... ok
[INFO] [stdout] test test_into_static_str_with_data_variants ... ok
[INFO] [stdout] test test_combined_describe_and_builder ... ok
[INFO] [stdout] test test_macro_rules_calculate_add ... ok
[INFO] [stdout] test test_builder_missing_required_field ... ok
[INFO] [stdout] test test_variant_name_http_status ... ok
[INFO] [stdout] test test_variant_name_mixed_variants ... ok
[INFO] [stdout] test test_describe_value_independent ... ok
[INFO] [stdout] test test_variant_name_multi_element_tuple ... ok
[INFO] [stdout] test test_variant_name_single_variant ... ok
[INFO] [stdout] test test_variant_name_unit_variants ... ok
[INFO] [stdout] test test_macro_rules_vec_of_list_trailing_comma ... ok
[INFO] [stdout] test test_variant_name_returns_static_str ... ok
[INFO] [stdout] test test_macro_rules_vec_of_repeat ... ok
[INFO] [stdout] test test_into_static_str_data_ignored ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/ch06-traits-patterns/94bb199be6b33ec1/out/ch06_traits_patterns-94bb199be6b33ec1)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 44 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/01_newtype.rs (/opt/rustwide/target/release/build/ch06-traits-patterns/bf6f37d1d90f0b34/out/01_newtype-bf6f37d1d90f0b34)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test tests::test_ordered_float_sort ... ok
[INFO] [stderr]      Running unittests src/bin/02_builder.rs (/opt/rustwide/target/release/build/ch06-traits-patterns/f5d06254a7d41186/out/02_builder-f5d06254a7d41186)
[INFO] [stdout] test tests::test_ordered_float_rejects_nan - should panic ... ok
[INFO] [stdout] test tests::test_header_value_valid ... ok
[INFO] [stdout] test tests::test_wrapper_deref ... ok
[INFO] [stdout] test tests::test_wrapper_display ... ok
[INFO] [stdout] test tests::test_zero_size_overhead ... ok
[INFO] [stdout] test tests::test_header_value_invalid ... ok
[INFO] [stdout] test tests::test_user_id_equality ... ok
[INFO] [stdout] test tests::test_user_id_order_id_not_interchangeable ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test tests::test_const_generics_builder_with_optional ... ok
[INFO] [stdout] test tests::test_typestate_builder ... ok
[INFO] [stderr]      Running unittests src/bin/03_type_state.rs (/opt/rustwide/target/release/build/ch06-traits-patterns/0bdee19e077b4191/out/03_type_state-0bdee19e077b4191)
[INFO] [stdout] test tests::test_classic_builder_missing_url ... ok
[INFO] [stdout] test tests::test_classic_builder_default_method ... ok
[INFO] [stdout] test tests::test_classic_builder_success ... ok
[INFO] [stdout] test tests::test_const_generics_builder ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test tests::test_file_handler_multiple_writes ... ok
[INFO] [stdout] test tests::test_file_handler_write_then_read ... ok
[INFO] [stdout] test tests::test_runtime_state_machine_invalid_transition ... ok
[INFO] [stdout] test tests::test_traffic_light_durations ... ok
[INFO] [stdout] test tests::test_traffic_light_full_cycle ... ok
[INFO] [stdout] test tests::test_runtime_state_machine_valid_transitions ... ok
[INFO] [stderr]      Running unittests src/bin/04_strategy_via_traits.rs (/opt/rustwide/target/release/build/ch06-traits-patterns/328b1bd933b77b34/out/04_strategy_via_traits-328b1bd933b77b34)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test tests::test_bubble_sort ... ok
[INFO] [stdout] test tests::test_fixed_retry ... ok
[INFO] [stdout] test tests::test_exponential_backoff ... ok
[INFO] [stdout] test tests::test_quick_sort ... ok
[INFO] [stderr]      Running unittests src/bin/05_extension_traits.rs (/opt/rustwide/target/release/build/ch06-traits-patterns/893280b693bb0979/out/05_extension_traits-893280b693bb0979)
[INFO] [stdout] test tests::test_builtin_sort ... ok
[INFO] [stdout] test tests::test_xor_encryption_composable ... ok
[INFO] [stdout] test tests::test_rle_compression ... ok
[INFO] [stdout] test tests::test_dynamic_sorter ... ok
[INFO] [stdout] test tests::test_rle_empty ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test tests::test_join_str_empty ... ok
[INFO] [stdout] test tests::test_contains_digit_true ... ok
[INFO] [stdout] test tests::test_contains_digit_false ... ok
[INFO] [stdout] test tests::test_num_ext_i32 ... ok
[INFO] [stdout] test tests::test_num_ext_f64 ... ok
[INFO] [stdout] test tests::test_every ... ok
[INFO] [stdout] test tests::test_join_str ... ok
[INFO] [stdout] test tests::test_take_vec ... ok
[INFO] [stdout] test tests::test_title_case ... ok
[INFO] [stdout] test tests::test_truncate_short_string ... ok
[INFO] [stdout] test tests::test_truncate_long_string ... ok
[INFO] [stderr]      Running unittests src/bin/06_sealed_trait.rs (/opt/rustwide/target/release/build/ch06-traits-patterns/cc68fbd5b0782ede/out/06_sealed_trait-cc68fbd5b0782ede)
[INFO] [stdout] test tests::test_with_index ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test tests::test_all_colors ... ok
[INFO] [stdout] test tests::test_color_trait ... ok
[INFO] [stdout] test tests::test_dialect_quote ... ok
[INFO] [stdout] test tests::test_dialect_timestamp ... ok
[INFO] [stdout] test tests::test_error_display ... ok
[INFO] [stdout] test tests::test_error_system ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/07_error_handling.rs (/opt/rustwide/target/release/build/ch06-traits-patterns/28313b74f9c1db4f/out/07_error_handling-28313b74f9c1db4f)
[INFO] [stdout] running 14 tests
[INFO] [stdout] test tests::test_from_database_error ... ok
[INFO] [stdout] test tests::test_error_to_status_codes ... ok
[INFO] [stdout] test tests::test_thiserror_invalid_email ... ok
[INFO] [stdout] test tests::test_load_config_missing ... ok
[INFO] [stdout] test tests::test_from_network_error ... ok
[INFO] [stdout] test tests::test_web_service_forbidden ... ok
[INFO] [stdout] test tests::test_web_service_success ... ok
[INFO] [stdout] test tests::test_parse_config_invalid_format ... ok
[INFO] [stdout] test tests::test_parse_config_too_short ... ok
[INFO] [stdout] test tests::test_web_service_unauthorized ... ok
[INFO] [stdout] test tests::test_parse_config_valid ... ok
[INFO] [stdout] test tests::test_load_config_valid ... ok
[INFO] [stdout] test tests::test_error_conversion_chain ... ok
[INFO] [stdout] test tests::test_thiserror_not_found ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/exercises.rs (/opt/rustwide/target/release/build/ch06-traits-patterns/56c4c108d2980f6c/out/exercises-56c4c108d2980f6c)
[INFO] [stdout] 
[INFO] [stdout] running 17 tests
[INFO] [stdout] test test_typestate_compile_time_safety ... ok
[INFO] [stdout] test test_strategy_static_dispatch ... ok
[INFO] [stdout] test test_error_source_chain ... ok
[INFO] [stdout] test test_extension_trait_basic ... ok
[INFO] [stdout] test test_sealed_trait_pattern ... ok
[INFO] [stdout] test test_strategy_trait_objects ... ok
[INFO] [stdout] test test_newtype_deref_pattern ... ok
[INFO] [stdout] test test_anyhow_context ... ok
[INFO] [stdout] test test_newtype_orphan_rule_workaround ... ok
[INFO] [stdout] test test_classic_builder_roundtrip ... ok
[INFO] [stdout] test test_typestate_multi_state ... ok
[INFO] [stdout] test test_extension_trait_on_slice ... ok
[INFO] [stdout] test test_from_trait_error_conversion ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/ch07-performance/53b027c1c2c3075b/out/ch07_performance-53b027c1c2c3075b)
[INFO] [stdout] test test_sealed_trait_with_default_methods ... ok
[INFO] [stdout] test test_extension_trait_chaining ... ok
[INFO] [stdout] test test_newtype_type_distinction ... ok
[INFO] [stdout] test test_thiserror_derive ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stderr]      Running unittests src/bin/01_zero_cost_abstraction.rs (/opt/rustwide/target/release/build/ch07-performance/560defe90e882fb7/out/01_zero_cost_abstraction-560defe90e882fb7)
[INFO] [stdout] test tests::test_stack_peek ... ok
[INFO] [stdout] test tests::test_stack_basic ... ok
[INFO] [stdout] test tests::test_benchmark_run ... ok
[INFO] [stdout] test tests::test_benchmark_run_many ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test tests::test_inline_functions ... ok
[INFO] [stdout] test tests::test_dynamic_vs_static_sum ... ok
[INFO] [stdout] test tests::test_generic_sum_matches_direct ... ok
[INFO] [stdout] test tests::test_numeric_ops_f64 ... ok
[INFO] [stdout] test tests::test_stack_different_types ... ok
[INFO] [stdout] test tests::test_stack_len ... ok
[INFO] [stdout] test tests::test_stack_push_pop ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/02_iterator_optimization.rs (/opt/rustwide/target/release/build/ch07-performance/14018413b70f35ed/out/02_iterator_optimization-14018413b70f35ed)
[INFO] [stdout] running 10 tests
[INFO] [stdout] test tests::test_counter_basic ... ok
[INFO] [stdout] test tests::test_iterator_pipeline_correctness ... ok
[INFO] [stdout] test tests::test_counter_exact_size ... ok
[INFO] [stdout] test tests::test_counter_rfold ... ok
[INFO] [stdout] test tests::test_fibonacci ... ok
[INFO] [stdout] test tests::test_counter_double_ended ... ok
[INFO] [stdout] test tests::test_scan_running_sum ... ok
[INFO] [stdout] test tests::test_loop_fusion_equivalence ... ok
[INFO] [stdout] test tests::test_iterator_pipeline_matches_loop ... ok
[INFO] [stdout] test tests::test_parallel_simulation ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/03_stack_allocation.rs (/opt/rustwide/target/release/build/ch07-performance/b41c9b7423ae1976/out/03_stack_allocation-b41c9b7423ae1976)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test tests::test_smallvec_spill ... ok
[INFO] [stdout] test tests::test_smallvec_inline ... ok
[INFO] [stdout] test tests::test_simple_arrayvec_drop_string ... ok
[INFO] [stdout] test tests::test_simple_arrayvec_push_get ... ok
[INFO] [stdout] test tests::test_simple_arrayvec_as_slice ... ok
[INFO] [stdout] test tests::test_stack_buffer_alloc ... ok
[INFO] [stdout] test tests::test_stack_buffer_reset ... ok
[INFO] [stderr]      Running unittests src/bin/04_simd_basics.rs (/opt/rustwide/target/release/build/ch07-performance/4cf468829586733d/out/04_simd_basics-4cf468829586733d)
[INFO] [stdout] test tests::test_stack_buffer_overflow ... ok
[INFO] [stdout] test tests::test_stack_buffer_alignment ... ok
[INFO] [stdout] test tests::test_simple_arrayvec_capacity ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test tests::test_chunked_dot_matches_scalar ... ok
[INFO] [stdout] test tests::test_chunked_dot_non_divisible ... ok
[INFO] [stdout] test tests::test_chunked_sum_matches_scalar ... ok
[INFO] [stdout] test tests::test_chunked_sum_non_divisible ... ok
[INFO] [stdout] test tests::test_wide_chunked_sum ... ok
[INFO] [stdout] test tests::test_chunked_vec_add ... ok
[INFO] [stdout] test tests::test_empty_inputs ... ok
[INFO] [stdout] test tests::test_scalar_dot ... ok
[INFO] [stdout] test tests::test_scalar_sum ... ok
[INFO] [stdout] test tests::test_vec_add ... ok
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/05_benchmarks.rs (/opt/rustwide/target/release/build/ch07-performance/23f75e63804efdf4/out/05_benchmarks-23f75e63804efdf4)
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test tests::test_search_correctness ... ok
[INFO] [stderr]      Running tests/exercises.rs (/opt/rustwide/target/release/build/ch07-performance/160fdbc61d188a37/out/exercises-160fdbc61d188a37)
[INFO] [stdout] test tests::test_compare_output ... ok
[INFO] [stdout] test tests::test_bench_result_format ... ok
[INFO] [stdout] test tests::test_data_structure_correctness ... ok
[INFO] [stdout] test tests::test_bench_runner_basic ... ok
[INFO] [stdout] test tests::test_bench_runner_deterministic ... ok
[INFO] [stdout] test tests::test_sorting_correctness ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 17 tests
[INFO] [stdout] test test_iterator_scan ... ok
[INFO] [stdout] test test_sort_unstable ... ok
[INFO] [stdout] test test_smallvec_inline_storage ... ok
[INFO] [stdout] test test_benchmark_run_many ... ok
[INFO] [stdout] test test_chunked_sum_correctness ... ok
[INFO] [stdout] test test_hashmap_operations ... ok
[INFO] [stdout] test test_stack_generic ... ok
[INFO] [stdout] test test_binary_search ... ok
[INFO] [stdout] test test_benchmark_tool ... ok
[INFO] [stdout] test test_dot_product ... ok
[INFO] [stdout] test test_linear_search ... ok
[INFO] [stdout] test test_smallvec_heap_spill ... ok
[INFO] [stdout] test test_smallvec_various_types ... ok
[INFO] [stdout] test test_sort_stability ... ok
[INFO] [stdout] test test_vec_vs_linked_list ... ok
[INFO] [stdout] test test_stack_empty_behavior ... ok
[INFO] [stdout] test test_iterator_chain_fusion ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/ch08-real-world-patterns/cec418c6eb488706/out/ch08_real_world_patterns-cec418c6eb488706)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/01_arena_allocation.rs (/opt/rustwide/target/release/build/ch08-real-world-patterns/fefe6b821febd8ff/out/01_arena_allocation-fefe6b821febd8ff)
[INFO] [stdout] running 7 tests
[INFO] [stdout] test tests::test_arena_alloc_multiple_types ... ok
[INFO] [stdout] test tests::test_arena_references_share_lifetime ... ok
[INFO] [stdout] test tests::test_arena_alloc_struct ... ok
[INFO] [stdout] test tests::test_arena_used_bytes ... ok
[INFO] [stderr]      Running unittests src/bin/02_intrusive_collections.rs (/opt/rustwide/target/release/build/ch08-real-world-patterns/b43544f5ef448875/out/02_intrusive_collections-b43544f5ef448875)
[INFO] [stdout] test tests::test_arena_alloc_basic ... ok
[INFO] [stdout] test tests::test_arena_overflow - should panic ... ok
[INFO] [stdout] test tests::test_arena_alignment ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test tests::test_intrusive_list_push_back ... ok
[INFO] [stdout] test tests::test_intrusive_list_empty ... ok
[INFO] [stdout] test tests::test_intrusive_list_push_front ... ok
[INFO] [stdout] test tests::test_single_node ... ok
[INFO] [stdout] test tests::test_intrusive_list_remove_tail ... ok
[INFO] [stdout] test tests::test_intrusive_list_remove_head ... ok
[INFO] [stdout] test tests::test_intrusive_list_remove_middle ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/03_lock_free.rs (/opt/rustwide/target/release/build/ch08-real-world-patterns/ee98673b381df78c/out/03_lock_free-ee98673b381df78c)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test tests::test_atomic_bool_swap ... ok
[INFO] [stdout] test tests::test_lockfree_counter_cas ... ok
[INFO] [stdout] test tests::test_lockfree_stack_empty_pop ... ok
[INFO] [stdout] test tests::test_lockfree_counter_increment_returns_old ... ok
[INFO] [stdout] test tests::test_lockfree_stack_strings ... ok
[INFO] [stdout] test tests::test_lockfree_stack_basic ... ok
[INFO] [stderr]      Running unittests src/bin/04_custom_iterators.rs (/opt/rustwide/target/release/build/ch08-real-world-patterns/f0969fb0ee8f2a18/out/04_custom_iterators-f0969fb0ee8f2a18)
[INFO] [stdout] test tests::test_lockfree_counter_basic ... ok
[INFO] [stdout] test tests::test_atomic_bool_cas ... ok
[INFO] [stdout] test tests::test_stack_concurrent_simulation ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 18 tests
[INFO] [stdout] test tests::test_chain_exact_size ... ok
[INFO] [stdout] test tests::test_compose_chain_zip ... ok
[INFO] [stdout] test tests::test_flatten_then_windows ... ok
[INFO] [stdout] test tests::test_flatten_vec_of_vecs ... ok
[INFO] [stdout] test tests::test_windows_size_equals_len ... ok
[INFO] [stdout] test tests::test_windows_zero_size - should panic ... ok
[INFO] [stdout] test tests::test_flatten_with_empty_inner ... ok
[INFO] [stdout] test tests::test_zip_basic ... ok
[INFO] [stdout] test tests::test_windows_size_greater_than_len ... ok
[INFO] [stdout] test tests::test_flatten_empty ... ok
[INFO] [stdout] test tests::test_zip_exact_size ... ok
[INFO] [stdout] test tests::test_windows_exact_size ... ok
[INFO] [stdout] test tests::test_chain_empty_left ... ok
[INFO] [stdout] test tests::test_windows_basic ... ok
[INFO] [stdout] test tests::test_flatten_options ... ok
[INFO] [stdout] test tests::test_zip_unequal_length ... ok
[INFO] [stderr]      Running unittests src/bin/05_plugin_system.rs (/opt/rustwide/target/release/build/ch08-real-world-patterns/55f8c9be8b16a788/out/05_plugin_system-55f8c9be8b16a788)
[INFO] [stdout] test tests::test_chain_empty_right ... ok
[INFO] [stdout] test tests::test_chain_basic ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test tests::test_plugin_context_config ... ok
[INFO] [stdout] test tests::test_dynamic_plugin ... ok
[INFO] [stdout] test tests::test_multiple_plugins ... ok
[INFO] [stdout] test tests::test_plugin_lifecycle ... ok
[INFO] [stdout] test tests::test_plugin_execute_without_init ... ok
[INFO] [stdout] test tests::test_plugin_manager_register ... ok
[INFO] [stdout] test tests::test_shutdown_reverse_order ... ok
[INFO] [stdout] test tests::test_plugin_names ... ok
[INFO] [stderr]      Running tests/exercises.rs (/opt/rustwide/target/release/build/ch08-real-world-patterns/d4d1ca100535e00b/out/exercises-d4d1ca100535e00b)
[INFO] [stdout] test tests::test_plugin_double_init ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 17 tests
[INFO] [stdout] test test_all_concepts_verified ... ok
[INFO] [stdout] test test_arena_alignment ... ok
[INFO] [stdout] test test_cas_pattern ... ok
[INFO] [stdout] test test_intrusive_chain ... ok
[INFO] [stdout] test test_arena_mixed_types ... ok
[INFO] [stdout] test test_arena_with_iterator_pattern ... ok
[INFO] [stdout] test test_plugin_system_lifecycle ... ok
[INFO] [stdout] test test_arena_overflow_panics - should panic ... ok
[INFO] [stdout] test test_arena_stress ... ok
[INFO] [stdout] test test_cas_retry_loop ... ok
[INFO] [stdout] test test_fibonacci_sum ... ok
[INFO] [stdout] test test_intrusive_list_operations ... ok
[INFO] [stdout] test test_iterator_take_while ... ok
[INFO] [stdout] test test_fibonacci_iterator ... ok
[INFO] [stdout] test test_iterator_scan_pattern ... ok
[INFO] [stdout] test test_iterator_zip_chain ... ok
[INFO] [stdout] test test_atomic_counter_concurrent ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/common/79a922627fe7191c/out/common-79a922627fe7191c)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test tests::test_inspect_macro ... ok
[INFO] [stdout] test tests::test_demo_assert_fails - should panic ... ok
[INFO] [stdout] test tests::test_demo_assert_passes ... ok
[INFO] [stdout] test tests::test_type_name_of ... ok
[INFO] [stdout] test tests::test_section_header ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/derive_macros/1abd8cd873f64f9b/out/derive_macros-1abd8cd873f64f9b)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/derive_tests.rs (/opt/rustwide/target/release/build/derive_macros/3285f49c4182163c/out/derive_tests-3285f49c4182163c)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test test_variant_name ... ok
[INFO] [stdout] test test_variant_name_with_fields ... ok
[INFO] [stdout] test test_into_static_str_with_data ... ok
[INFO] [stderr]    Doc-tests ch01_type_system
[INFO] [stdout] test test_builder_all_fields ... ok
[INFO] [stdout] test test_builder_overwrite ... ok
[INFO] [stdout] test test_into_static_str ... ok
[INFO] [stdout] test test_describe_basic ... ok
[INFO] [stdout] test test_builder_missing_field ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests ch02_ownership_advanced
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests ch03_unsafe_and_ffi
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests ch04_async_internals
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests ch05_macro_systems
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests ch06_traits_patterns
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests ch07_performance
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests ch08_real_world_patterns
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests common
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test common/src/lib.rs - (line 4) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.39s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests derive_macros
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test ch05-macro-systems/derive_macros/src/lib.rs - derive_builder (line 127) ... ignored
[INFO] [stdout] test ch05-macro-systems/derive_macros/src/lib.rs - derive_describe (line 12) ... ignored
[INFO] [stdout] test ch05-macro-systems/derive_macros/src/lib.rs - derive_into_static_str (line 244) ... ignored
[INFO] [stdout] test ch05-macro-systems/derive_macros/src/lib.rs - derive_variant_name (line 68) ... ignored
[INFO] [stdout] test ch05-macro-systems/derive_macros/src/lib.rs - timed (line 306) ... ignored
[INFO] [stdout] test ch05-macro-systems/derive_macros/src/lib.rs - with_default_impl (line 348) ... ignored
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 6 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "819a3b80119f8e2ab6ff42999bfef1e197cf3f7f565d33ce2fb8aa24e17f4039", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "819a3b80119f8e2ab6ff42999bfef1e197cf3f7f565d33ce2fb8aa24e17f4039", kill_on_drop: false }`
[INFO] [stdout] 819a3b80119f8e2ab6ff42999bfef1e197cf3f7f565d33ce2fb8aa24e17f4039
