[INFO] cloning repository https://github.com/abhinavm24/learn-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/abhinavm24/learn-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fabhinavm24%2Flearn-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fabhinavm24%2Flearn-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 12483c97379e663d7f498daf235dd938580866fa
[INFO] checking abhinavm24/learn-rust against 165655a2f1981fef27b31c547ad7631979fc5139 for pr-160235
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fabhinavm24%2Flearn-rust" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/abhinavm24/learn-rust
[INFO] removed 0 missing examples
[INFO] finished tweaking git repo https://github.com/abhinavm24/learn-rust
[INFO] tweaked toml for git repo https://github.com/abhinavm24/learn-rust written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/abhinavm24/learn-rust on toolchain 165655a2f1981fef27b31c547ad7631979fc5139
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+165655a2f1981fef27b31c547ad7631979fc5139" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/abhinavm24/learn-rust already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+165655a2f1981fef27b31c547ad7631979fc5139" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:00c5645b54fe3ce5dae1417175e3c7fb6a6646c021d554ecd63a097b8b9f3602" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 02c5904a319011780e9ab053130d75b9de6acd6c35f8fbffca4dbd399b60cd2a
[INFO] running `Command { std: "docker" "start" "02c5904a319011780e9ab053130d75b9de6acd6c35f8fbffca4dbd399b60cd2a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "02c5904a319011780e9ab053130d75b9de6acd6c35f8fbffca4dbd399b60cd2a", 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" "02c5904a319011780e9ab053130d75b9de6acd6c35f8fbffca4dbd399b60cd2a" "/opt/rustwide/cargo-home/bin/cargo" "+165655a2f1981fef27b31c547ad7631979fc5139" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "02c5904a319011780e9ab053130d75b9de6acd6c35f8fbffca4dbd399b60cd2a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "02c5904a319011780e9ab053130d75b9de6acd6c35f8fbffca4dbd399b60cd2a" "/opt/rustwide/cargo-home/bin/cargo" "+165655a2f1981fef27b31c547ad7631979fc5139" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking rust-book-examples v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: field `value` is never read
[INFO] [stdout]   --> examples/ch15_06_reference_cycles.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |     struct CyclicNode {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 50 |         value: i32,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CyclicNode` 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 `id` is never read
[INFO] [stdout]    --> examples/ch15_06_reference_cycles.rs:225:9
[INFO] [stdout]     |
[INFO] [stdout] 224 |     struct Connection {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] 225 |         id: u32,
[INFO] [stdout]     |         ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Connection` 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 variable: `post2`
[INFO] [stdout]    --> examples/ch17_03_oop_implementations.rs:233:9
[INFO] [stdout]     |
[INFO] [stdout] 233 |     let post2 = post2.reject(); // Back to draft
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_post2`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data_clone1`
[INFO] [stdout]   --> examples/ch15_04_rc_smart_pointer.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let data_clone1 = Rc::clone(&data);
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_data_clone1`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Alabama` is never constructed
[INFO] [stdout]   --> examples/ch06_03_if_let.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | enum UsState {
[INFO] [stdout]    |      ------- variant in this enum
[INFO] [stdout] 18 |     Alabama,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UsState` 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 `Nickel` is never constructed
[INFO] [stdout]   --> examples/ch06_03_if_let.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | enum Coin {
[INFO] [stdout]    |      ---- variant in this enum
[INFO] [stdout] 26 |     Penny,
[INFO] [stdout] 27 |     Nickel,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Coin` 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 `0`, `1`, and `2` are never read
[INFO] [stdout]   --> examples/ch06_03_if_let.rs:37:17
[INFO] [stdout]    |
[INFO] [stdout] 37 |     ChangeColor(i32, i32, i32),
[INFO] [stdout]    |     ----------- ^^^  ^^^  ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Message` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 37 -     ChangeColor(i32, i32, i32),
[INFO] [stdout] 37 +     ChangeColor((), (), ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Green` is never constructed
[INFO] [stdout]   --> examples/ch06_03_if_let.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 90 | enum Color {
[INFO] [stdout]    |      ----- variant in this enum
[INFO] [stdout] 91 |     Red,
[INFO] [stdout] 92 |     Green,
[INFO] [stdout]    |     ^^^^^
[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: fields `0` and `1` are never read
[INFO] [stdout]   --> examples/ch15_04_rc_smart_pointer.rs:48:10
[INFO] [stdout]    |
[INFO] [stdout] 48 |     Cons(i32, Rc<List>),
[INFO] [stdout]    |     ---- ^^^  ^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `List` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[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] 48 -     Cons(i32, Rc<List>),
[INFO] [stdout] 48 +     Cons((), ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `api_key` is never read
[INFO] [stdout]   --> examples/ch15_04_rc_smart_pointer.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 86 |     struct Config {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 87 |         database_url: String,
[INFO] [stdout] 88 |         api_key: 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: unused variable: `job_tx`
[INFO] [stdout]    --> examples/ch16_02_message_passing.rs:198:10
[INFO] [stdout]     |
[INFO] [stdout] 198 |     let (job_tx, job_rx) = mpsc::channel::<Job>();
[INFO] [stdout]     |          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_job_tx`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `job_rx`
[INFO] [stdout]    --> examples/ch16_02_message_passing.rs:198:18
[INFO] [stdout]     |
[INFO] [stdout] 198 |     let (job_tx, job_rx) = mpsc::channel::<Job>();
[INFO] [stdout]     |                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_job_rx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_rx`
[INFO] [stdout]    --> examples/ch16_02_message_passing.rs:199:21
[INFO] [stdout]     |
[INFO] [stdout] 199 |     let (result_tx, result_rx) = mpsc::channel::<JobResult>();
[INFO] [stdout]     |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_rx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_tx`
[INFO] [stdout]    --> examples/ch16_02_message_passing.rs:204:13
[INFO] [stdout]     |
[INFO] [stdout] 204 |         let result_tx = result_tx.clone();
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `value` is never read
[INFO] [stdout]    --> examples/ch15_01_smart_pointers.rs:437:9
[INFO] [stdout]     |
[INFO] [stdout] 436 |     struct MutableNode {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] 437 |         value: i32,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MutableNode` 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 `get_children` is never used
[INFO] [stdout]    --> examples/ch15_01_smart_pointers.rs:457:12
[INFO] [stdout]     |
[INFO] [stdout] 441 |     impl MutableNode {
[INFO] [stdout]     |     ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 457 |         fn get_children(&self) -> Vec<Rc<MutableNode>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `work_tx`
[INFO] [stdout]    --> examples/ch16_02_message_passing.rs:280:10
[INFO] [stdout]     |
[INFO] [stdout] 280 |     let (work_tx, work_rx) = mpsc::channel::<i32>();
[INFO] [stdout]     |          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_work_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `work_rx`
[INFO] [stdout]    --> examples/ch16_02_message_passing.rs:280:19
[INFO] [stdout]     |
[INFO] [stdout] 280 |     let (work_tx, work_rx) = mpsc::channel::<i32>();
[INFO] [stdout]     |                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_work_rx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `function_parameter_coercion` is never used
[INFO] [stdout]    --> examples/ch15_02_deref_trait.rs:206:4
[INFO] [stdout]     |
[INFO] [stdout] 206 | fn function_parameter_coercion() {
[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 `diverging_function` is never used
[INFO] [stdout]    --> examples/ch19_03_advanced_types.rs:146:8
[INFO] [stdout]     |
[INFO] [stdout] 146 |     fn diverging_function() -> ! {
[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 `infinite_loop` is never used
[INFO] [stdout]    --> examples/ch19_03_advanced_types.rs:151:8
[INFO] [stdout]     |
[INFO] [stdout] 151 |     fn infinite_loop() -> ! {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `implicit_sized` is never used
[INFO] [stdout]    --> examples/ch19_03_advanced_types.rs:282:8
[INFO] [stdout]     |
[INFO] [stdout] 282 |     fn implicit_sized<T>(_t: T) {} // Equivalent to fn implicit_sized<T: Sized>(t: T) {}
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> examples/ch19_03_advanced_types.rs:365:15
[INFO] [stdout]     |
[INFO] [stdout] 365 |         Value(u32),
[INFO] [stdout]     |         ----- ^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Status` 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] 365 -         Value(u32),
[INFO] [stdout] 365 +         Value(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `South`, `East`, and `West` are never constructed
[INFO] [stdout]    --> examples/ch18_03_pattern_syntax.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 140 |     enum Direction {
[INFO] [stdout]     |          --------- variants in this enum
[INFO] [stdout] 141 |         North,
[INFO] [stdout] 142 |         South,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 143 |         East,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 144 |         West,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Direction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = 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]    --> examples/ch18_03_pattern_syntax.rs:163:16
[INFO] [stdout]     |
[INFO] [stdout] 163 |         Move { x: i32, y: i32 },
[INFO] [stdout]     |         ----   ^       ^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Message` 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 `Quit`, `Move`, and `Write` are never constructed
[INFO] [stdout]    --> examples/ch18_03_pattern_syntax.rs:260:9
[INFO] [stdout]     |
[INFO] [stdout] 259 |     enum Message {
[INFO] [stdout]     |          ------- variants in this enum
[INFO] [stdout] 260 |         Quit,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 261 |         Move { x: i32, y: i32 },
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 262 |         Write(String),
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Message` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Rgb` is never constructed
[INFO] [stdout]    --> examples/ch18_03_pattern_syntax.rs:284:9
[INFO] [stdout]     |
[INFO] [stdout] 283 |     enum Color {
[INFO] [stdout]     |          ----- variant in this enum
[INFO] [stdout] 284 |         Rgb(i32, i32, i32),
[INFO] [stdout]     |         ^^^
[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: variants `Quit`, `Move`, and `Write` are never constructed
[INFO] [stdout]    --> examples/ch18_03_pattern_syntax.rs:290:9
[INFO] [stdout]     |
[INFO] [stdout] 289 |     enum NestedMessage {
[INFO] [stdout]     |          ------------- variants in this enum
[INFO] [stdout] 290 |         Quit,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 291 |         Move { x: i32, y: i32 },
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 292 |         Write(String),
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NestedMessage` 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 `y` and `z` are never read
[INFO] [stdout]    --> examples/ch18_03_pattern_syntax.rs:364:9
[INFO] [stdout]     |
[INFO] [stdout] 362 |     struct Point3D {
[INFO] [stdout]     |            ------- fields in this struct
[INFO] [stdout] 363 |         x: i32,
[INFO] [stdout] 364 |         y: i32,
[INFO] [stdout]     |         ^
[INFO] [stdout] 365 |         z: i32,
[INFO] [stdout]     |         ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Point3D` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Fahrenheit` is never constructed
[INFO] [stdout]    --> examples/ch18_03_pattern_syntax.rs:452:9
[INFO] [stdout]     |
[INFO] [stdout] 450 |     enum Temperature {
[INFO] [stdout]     |          ----------- variant in this enum
[INFO] [stdout] 451 |         Celsius(i32),
[INFO] [stdout] 452 |         Fahrenheit(i32),
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Temperature` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Hsv` is never constructed
[INFO] [stdout]    --> examples/ch18_03_pattern_syntax.rs:527:9
[INFO] [stdout]     |
[INFO] [stdout] 525 |     enum Color {
[INFO] [stdout]     |          ----- variant in this enum
[INFO] [stdout] 526 |         Rgb(i32, i32, i32),
[INFO] [stdout] 527 |         Hsv(i32, i32, i32),
[INFO] [stdout]     |         ^^^
[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: variant `Move` is never constructed
[INFO] [stdout]    --> examples/ch18_03_pattern_syntax.rs:533:9
[INFO] [stdout]     |
[INFO] [stdout] 531 |     enum NestedMessage {
[INFO] [stdout]     |          ------------- variant in this enum
[INFO] [stdout] 532 |         ChangeColor(Color),
[INFO] [stdout] 533 |         Move { x: i32, y: i32 },
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NestedMessage` 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 `street` is never read
[INFO] [stdout]    --> examples/ch18_03_pattern_syntax.rs:571:9
[INFO] [stdout]     |
[INFO] [stdout] 570 |     struct Address {
[INFO] [stdout]     |            ------- field in this struct
[INFO] [stdout] 571 |         street: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Address` 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 `value` is never used
[INFO] [stdout]    --> examples/ch19_02_advanced_traits.rs:405:8
[INFO] [stdout]     |
[INFO] [stdout] 400 | impl ProductId {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 405 |     fn value(&self) -> u32 {
[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 `headline` and `content` are never read
[INFO] [stdout]    --> examples/ch19_02_advanced_traits.rs:527:9
[INFO] [stdout]     |
[INFO] [stdout] 526 |     struct NewsArticle {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 527 |         headline: String,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 528 |         author: String,
[INFO] [stdout] 529 |         content: String,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CustomStruct` is never constructed
[INFO] [stdout]    --> examples/ch07_04_bringing_paths_into_scope.rs:154:16
[INFO] [stdout]     |
[INFO] [stdout] 154 |     pub struct CustomStruct {
[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 `demonstrate_patterns` is never used
[INFO] [stdout]    --> examples/ch07_04_bringing_paths_into_scope.rs:165:12
[INFO] [stdout]     |
[INFO] [stdout] 165 |     pub fn demonstrate_patterns() {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `demonstrate_glob` is never used
[INFO] [stdout]    --> examples/ch07_04_bringing_paths_into_scope.rs:187:12
[INFO] [stdout]     |
[INFO] [stdout] 187 |     pub fn demonstrate_glob() {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `demonstrate_external_usage` is never used
[INFO] [stdout]    --> examples/ch07_04_bringing_paths_into_scope.rs:202:12
[INFO] [stdout]     |
[INFO] [stdout] 202 |     pub fn demonstrate_external_usage() {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]   --> examples/ch10_03_lifetime_syntax.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let r: Option<&i32> = None;  // Declare 'r' with type annotation
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest_with_announcement` is never used
[INFO] [stdout]    --> examples/ch10_03_lifetime_syntax.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 101 |     fn longest_with_announcement<'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: variable `sum` is assigned to, but never used
[INFO] [stdout]    --> examples/ch13_04_performance_comparison.rs:239:9
[INFO] [stdout]     |
[INFO] [stdout] 239 |     let mut sum = 0;
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_sum` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `sum` is never read
[INFO] [stdout]    --> examples/ch13_04_performance_comparison.rs:241:9
[INFO] [stdout]     |
[INFO] [stdout] 241 |         sum += item * 2;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> examples/ch07_04_bringing_paths_into_scope.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     name_collision_examples();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[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] 42 |     let _ = name_collision_examples();
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: path statement with no effect
[INFO] [stdout]   --> examples/ch07_04_bringing_paths_into_scope.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 89 |     re_export::PrimaryColor::Red;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(path_statements)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]    --> examples/ch10_01_generic_data_types.rs:101:9
[INFO] [stdout]     |
[INFO] [stdout] 100 |     struct Point<T> {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] 101 |         x: T,
[INFO] [stdout]     |         ^
[INFO] [stdout] 102 |         y: T,
[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: fields `x` and `y` are never read
[INFO] [stdout]    --> examples/ch10_01_generic_data_types.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 114 |     struct PointMixed<T, U> {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 115 |         x: T,
[INFO] [stdout]     |         ^
[INFO] [stdout] 116 |         y: U,
[INFO] [stdout]     |         ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PointMixed` 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 `1` is never read
[INFO] [stdout]    --> examples/ch10_01_generic_data_types.rs:191:17
[INFO] [stdout]     |
[INFO] [stdout] 191 |         Cons(T, Box<List<T>>),
[INFO] [stdout]     |         ----    ^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `List` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 191 -         Cons(T, Box<List<T>>),
[INFO] [stdout] 191 +         Cons(T, ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `value`, `left`, and `right` are never read
[INFO] [stdout]    --> examples/ch10_01_generic_data_types.rs:205:13
[INFO] [stdout]     |
[INFO] [stdout] 204 |         Node {
[INFO] [stdout]     |         ---- fields in this variant
[INFO] [stdout] 205 |             value: T,
[INFO] [stdout]     |             ^^^^^
[INFO] [stdout] 206 |             left: Box<BinaryTree<T>>,
[INFO] [stdout]     |             ^^^^
[INFO] [stdout] 207 |             right: Box<BinaryTree<T>>,
[INFO] [stdout]     |             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BinaryTree` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `when_to_use_result_vs_panic` is never used
[INFO] [stdout]    --> examples/ch09_02_recoverable_errors.rs:269:4
[INFO] [stdout]     |
[INFO] [stdout] 269 | fn when_to_use_result_vs_panic() {
[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 `deliver_order` is never used
[INFO] [stdout]   --> examples/ch07_02_defining_modules.rs:93:8
[INFO] [stdout]    |
[INFO] [stdout] 93 |     fn deliver_order() {
[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 `fix_incorrect_order` is never used
[INFO] [stdout]   --> examples/ch07_02_defining_modules.rs:60:16
[INFO] [stdout]    |
[INFO] [stdout] 60 |         pub fn fix_incorrect_order() {
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cook_order` is never used
[INFO] [stdout]   --> examples/ch07_02_defining_modules.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 66 |         fn cook_order() {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `seasonal_fruit` is never read
[INFO] [stdout]   --> examples/ch07_02_defining_modules.rs:73:13
[INFO] [stdout]    |
[INFO] [stdout] 71 |         pub struct Breakfast {
[INFO] [stdout]    |                    --------- field in this struct
[INFO] [stdout] 72 |             pub toast: String,        // Public field
[INFO] [stdout] 73 |             seasonal_fruit: String,   // Private field
[INFO] [stdout]    |             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clarinet` is never used
[INFO] [stdout]    --> examples/ch07_02_defining_modules.rs:130:20
[INFO] [stdout]     |
[INFO] [stdout] 130 |             pub fn clarinet() {
[INFO] [stdout]     |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `demonstrate_cli_patterns` is never used
[INFO] [stdout]    --> examples/ch12_01_accepting_cli_args.rs:142:4
[INFO] [stdout]     |
[INFO] [stdout] 142 | fn demonstrate_cli_patterns() {
[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 `read_file_safe` is never used
[INFO] [stdout]    --> examples/ch12_01_accepting_cli_args.rs:219:12
[INFO] [stdout]     |
[INFO] [stdout] 219 |     pub fn read_file_safe(path: &str) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_file_safe` is never used
[INFO] [stdout]    --> examples/ch12_01_accepting_cli_args.rs:224:12
[INFO] [stdout]     |
[INFO] [stdout] 224 |     pub fn write_file_safe(path: &str, content: &str) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `file_exists` is never used
[INFO] [stdout]    --> examples/ch12_01_accepting_cli_args.rs:229:12
[INFO] [stdout]     |
[INFO] [stdout] 229 |     pub fn file_exists(path: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `interactive_input` is never used
[INFO] [stdout]    --> examples/ch12_01_accepting_cli_args.rs:233:12
[INFO] [stdout]     |
[INFO] [stdout] 233 |     pub fn interactive_input(prompt: &str) -> Result<String, io::Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_sample_file` is never used
[INFO] [stdout]    --> examples/ch12_01_accepting_cli_args.rs:242:12
[INFO] [stdout]     |
[INFO] [stdout] 242 |     pub fn create_sample_file(filename: &str) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CliError` is never used
[INFO] [stdout]    --> examples/ch12_01_accepting_cli_args.rs:259:14
[INFO] [stdout]     |
[INFO] [stdout] 259 |     pub enum CliError {
[INFO] [stdout]     |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_cli_error` is never used
[INFO] [stdout]    --> examples/ch12_01_accepting_cli_args.rs:277:12
[INFO] [stdout]     |
[INFO] [stdout] 277 |     pub fn handle_cli_error(error: CliError) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot explicitly dereference within an implicitly-borrowing pattern
[INFO] [stdout]    --> examples/ch08_03_hash_maps.rs:266:71
[INFO] [stdout]     |
[INFO] [stdout] 266 |     if let Some((winner, &max_score)) = scores.iter().max_by_key(|(_, &score)| score) {
[INFO] [stdout]     |                                                                       ^ reference pattern not allowed when implicitly borrowing
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/reference/patterns.html#binding-modes>
[INFO] [stdout] note: matching on a reference type with a non-reference pattern implicitly borrows the contents
[INFO] [stdout]    --> examples/ch08_03_hash_maps.rs:266:67
[INFO] [stdout]     |
[INFO] [stdout] 266 |     if let Some((winner, &max_score)) = scores.iter().max_by_key(|(_, &score)| score) {
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^ this non-reference pattern matches on a reference type `&_`
[INFO] [stdout] help: match on the reference with a reference pattern to avoid implicitly borrowing
[INFO] [stdout]     |
[INFO] [stdout] 266 |     if let Some((winner, &max_score)) = scores.iter().max_by_key(|&(_, &score)| score) {
[INFO] [stdout]     |                                                                   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `boxed_pointer`
[INFO] [stdout]    --> examples/ch15_03_drop_trait.rs:266:13
[INFO] [stdout]     |
[INFO] [stdout] 266 |         let boxed_pointer = Box::new(CustomSmartPointer::new("boxed data"));
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_boxed_pointer`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rc3`
[INFO] [stdout]    --> examples/ch15_03_drop_trait.rs:333:21
[INFO] [stdout]     |
[INFO] [stdout] 333 |                 let rc3 = rc2.clone();
[INFO] [stdout]     |                     ^^^ help: if this is intentional, prefix it with an underscore: `_rc3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `demonstrate_drop_and_panic` is never used
[INFO] [stdout]    --> examples/ch15_03_drop_trait.rs:345:4
[INFO] [stdout]     |
[INFO] [stdout] 345 | fn demonstrate_drop_and_panic() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> examples/ch19_01_unsafe_rust.rs:357:1
[INFO] [stdout]     |
[INFO] [stdout] 357 | / extern "C" {
[INFO] [stdout] 358 | |     fn abs(input: i32) -> i32;
[INFO] [stdout] 359 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unsafe attribute used without unsafe
[INFO] [stdout]    --> examples/ch19_01_unsafe_rust.rs:362:3
[INFO] [stdout]     |
[INFO] [stdout] 362 | #[no_mangle]
[INFO] [stdout]     |   ^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout]     |
[INFO] [stdout] help: wrap the attribute in `unsafe(...)`
[INFO] [stdout]     |
[INFO] [stdout] 362 | #[unsafe(no_mangle)]
[INFO] [stdout]     |   +++++++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_position` is never used
[INFO] [stdout]    --> examples/ch17_01_oop_characteristics.rs:140:12
[INFO] [stdout]     |
[INFO] [stdout] 138 |     trait Movable {
[INFO] [stdout]     |           ------- method in this trait
[INFO] [stdout] 139 |         fn move_to(&mut self, x: f64, y: f64);
[INFO] [stdout] 140 |         fn get_position(&self) -> (f64, 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`, `headers`, and `body` are never read
[INFO] [stdout]    --> examples/ch17_01_oop_characteristics.rs:411:9
[INFO] [stdout]     |
[INFO] [stdout] 410 |     struct HttpRequest {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 411 |         method: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 412 |         url: String,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 413 |         headers: Vec<(String, String)>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 414 |         body: Option<String>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `HttpRequest` 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 `state` is never read
[INFO] [stdout]    --> examples/ch17_01_oop_characteristics.rs:488:9
[INFO] [stdout]     |
[INFO] [stdout] 486 |     struct Post<State> {
[INFO] [stdout]     |            ---- field in this struct
[INFO] [stdout] 487 |         content: String,
[INFO] [stdout] 488 |         state: State,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reject` is never used
[INFO] [stdout]    --> examples/ch17_01_oop_characteristics.rs:519:12
[INFO] [stdout]     |
[INFO] [stdout] 511 |     impl Post<PendingReview> {
[INFO] [stdout]     |     ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 519 |         fn reject(self) -> Post<Draft> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Nickel` and `Dime` are never constructed
[INFO] [stdout]   --> examples/ch06_02_match_control_flow.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | enum Coin {
[INFO] [stdout]    |      ---- variants in this enum
[INFO] [stdout] 18 |     Penny,
[INFO] [stdout] 19 |     Nickel,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 20 |     Dime,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Coin` 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 `Alabama`, `California`, and `Texas` are never constructed
[INFO] [stdout]   --> examples/ch06_02_match_control_flow.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | enum UsState {
[INFO] [stdout]    |      ------- variants in this enum
[INFO] [stdout] 26 |     Alabama,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 27 |     Alaska,
[INFO] [stdout] 28 |     California,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 29 |     Texas,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UsState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rust-book-examples` (example "ch08_03_hash_maps") due to 1 previous error
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused variable: `quit_msg`
[INFO] [stdout]    --> examples/ch06_01_defining_enums.rs:179:9
[INFO] [stdout]     |
[INFO] [stdout] 179 |     let quit_msg = QuitMessage;
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_quit_msg`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `write_msg`
[INFO] [stdout]    --> examples/ch06_01_defining_enums.rs:180:9
[INFO] [stdout]     |
[INFO] [stdout] 180 |     let write_msg = WriteMessage(String::from("Struct approach"));
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_write_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `workers` is never read
[INFO] [stdout]   --> examples/ch20_02_multithreaded.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct ThreadPool {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 52 |     workers: Vec<Worker>,
[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 `0`, `1`, `2`, and `3` are never read
[INFO] [stdout]   --> examples/ch06_01_defining_enums.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 |     V4(u8, u8, u8, u8),
[INFO] [stdout]    |     -- ^^  ^^  ^^  ^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IpAddr` 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 fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 13 -     V4(u8, u8, u8, u8),
[INFO] [stdout] 13 +     V4((), (), (), ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> examples/ch06_01_defining_enums.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 |     V6(String),
[INFO] [stdout]    |     -- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IpAddr` 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] 14 -     V6(String),
[INFO] [stdout] 14 +     V6(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MoveMessage` is never constructed
[INFO] [stdout]   --> examples/ch06_01_defining_enums.rs:68:8
[INFO] [stdout]    |
[INFO] [stdout] 68 | struct MoveMessage {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> examples/ch06_01_defining_enums.rs:72:21
[INFO] [stdout]    |
[INFO] [stdout] 72 | struct WriteMessage(String); // tuple struct
[INFO] [stdout]    |        ------------ ^^^^^^
[INFO] [stdout]    |        |
[INFO] [stdout]    |        field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChangeColorMessage` is never constructed
[INFO] [stdout]   --> examples/ch06_01_defining_enums.rs:73:8
[INFO] [stdout]    |
[INFO] [stdout] 73 | struct ChangeColorMessage(i32, i32, i32); // tuple struct
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `thread` are never read
[INFO] [stdout]   --> examples/ch20_02_multithreaded.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 57 | struct Worker {
[INFO] [stdout]    |        ------ fields in this struct
[INFO] [stdout] 58 |     id: usize,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 59 |     thread: thread::JoinHandle<()>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> examples/ch18_02_pattern_refutability.rs:116:15
[INFO] [stdout]     |
[INFO] [stdout] 116 |         Write(String),
[INFO] [stdout]     |         ----- ^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Message` 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] 116 -         Write(String),
[INFO] [stdout] 116 +         Write(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Quit`, `Move`, and `ChangeColor` are never constructed
[INFO] [stdout]    --> examples/ch18_02_pattern_refutability.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 113 |     enum Message {
[INFO] [stdout]     |          ------- variants in this enum
[INFO] [stdout] 114 |         Quit,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 115 |         Move { x: i32, y: i32 },
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 116 |         Write(String),
[INFO] [stdout] 117 |         ChangeColor(i32, i32, i32),
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Message` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Inactive` is never constructed
[INFO] [stdout]    --> examples/ch18_02_pattern_refutability.rs:244:9
[INFO] [stdout]     |
[INFO] [stdout] 242 |     enum Status {
[INFO] [stdout]     |          ------ variant in this enum
[INFO] [stdout] 243 |         Active(String),
[INFO] [stdout] 244 |         Inactive,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Status` 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 `Red`, `Blue`, and `Hsv` are never constructed
[INFO] [stdout]    --> examples/ch18_02_pattern_refutability.rs:280:9
[INFO] [stdout]     |
[INFO] [stdout] 279 |     enum Color {
[INFO] [stdout]     |          ----- variants in this enum
[INFO] [stdout] 280 |         Red,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 281 |         Green,
[INFO] [stdout] 282 |         Blue,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 283 |         Rgb(u8, u8, u8),
[INFO] [stdout] 284 |         Hsv(u16, u8, u8),
[INFO] [stdout]     |         ^^^
[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: variants `Connected`, `Disconnected`, and `Timeout` are never constructed
[INFO] [stdout]    --> examples/ch18_02_pattern_refutability.rs:320:9
[INFO] [stdout]     |
[INFO] [stdout] 319 |     enum NetworkState {
[INFO] [stdout]     |          ------------ variants in this enum
[INFO] [stdout] 320 |         Connected,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 321 |         Disconnected,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 322 |         Error(String),
[INFO] [stdout] 323 |         Timeout,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NetworkState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compile_error_examples` is never used
[INFO] [stdout]    --> examples/ch18_02_pattern_refutability.rs:393:4
[INFO] [stdout]     |
[INFO] [stdout] 393 | fn compile_error_examples() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Penny`, `Nickel`, and `Dime` are never constructed
[INFO] [stdout]   --> examples/ch18_01_pattern_locations.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | enum Coin {
[INFO] [stdout]    |      ---- variants in this enum
[INFO] [stdout] 44 |     Penny,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 45 |     Nickel,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 46 |     Dime,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Coin` 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 `Alabama`, `California`, and `Texas` are never constructed
[INFO] [stdout]   --> examples/ch18_01_pattern_locations.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 51 | enum UsState {
[INFO] [stdout]    |      ------- variants in this enum
[INFO] [stdout] 52 |     Alabama,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 53 |     Alaska,
[INFO] [stdout] 54 |     California,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 55 |     Texas,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UsState` 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 `Write` and `ChangeColor` are never constructed
[INFO] [stdout]    --> examples/ch18_01_pattern_locations.rs:139:9
[INFO] [stdout]     |
[INFO] [stdout] 137 |     enum Message {
[INFO] [stdout]     |          ------- variants in this enum
[INFO] [stdout] 138 |         Hello { id: i32 },
[INFO] [stdout] 139 |         Write(String),
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 140 |         ChangeColor(i32, i32, i32),
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Message` 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 `street` is never read
[INFO] [stdout]    --> examples/ch18_01_pattern_locations.rs:468:9
[INFO] [stdout]     |
[INFO] [stdout] 467 |     struct Address {
[INFO] [stdout]     |            ------- field in this struct
[INFO] [stdout] 468 |         street: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Address` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Quit` is never constructed
[INFO] [stdout]    --> examples/ch18_01_pattern_locations.rs:505:9
[INFO] [stdout]     |
[INFO] [stdout] 504 |     enum Message {
[INFO] [stdout]     |          ------- variant in this enum
[INFO] [stdout] 505 |         Quit,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Message` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `uninit_array` found for union `MaybeUninit<T>` in the current scope
[INFO] [stdout]    --> examples/ch19_01_unsafe_rust.rs:424:56
[INFO] [stdout]     |
[INFO] [stdout] 424 |     let mut data: [MaybeUninit<i32>; 5] = MaybeUninit::uninit_array();
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^ associated function or constant not found in `MaybeUninit<_>`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `MaybeUninit<_>` consider using one of the following associated functions:
[INFO] [stdout]       MaybeUninit::<T>::new
[INFO] [stdout]       MaybeUninit::<T>::uninit
[INFO] [stdout]       MaybeUninit::<T>::zeroed
[INFO] [stdout]    --> /rustc/165655a2f1981fef27b31c547ad7631979fc5139/library/core/src/mem/maybe_uninit.rs:406:4
[INFO] [stdout] help: there is an associated function `uninit` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 424 -     let mut data: [MaybeUninit<i32>; 5] = MaybeUninit::uninit_array();
[INFO] [stdout] 424 +     let mut data: [MaybeUninit<i32>; 5] = MaybeUninit::uninit();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: use of unstable library feature `maybe_uninit_array_assume_init`
[INFO] [stdout]    --> examples/ch19_01_unsafe_rust.rs:433:9
[INFO] [stdout]     |
[INFO] [stdout] 433 |         MaybeUninit::array_assume_init(data)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: see issue #96097 <https://github.com/rust-lang/rust/issues/96097> for more information
[INFO] [stdout]     = help: add `#![feature(maybe_uninit_array_assume_init)]` to the crate attributes to enable
[INFO] [stdout]     = note: this compiler was built on 2026-08-04; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Draw` is more private than the item `Screen::components`
[INFO] [stdout]   --> examples/ch17_02_trait_objects.rs:97:5
[INFO] [stdout]    |
[INFO] [stdout] 97 |     pub components: Vec<Box<dyn Draw>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `Screen::components` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `Draw` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> examples/ch17_02_trait_objects.rs:31:1
[INFO] [stdout]    |
[INFO] [stdout] 31 | trait Draw {
[INFO] [stdout]    | ^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Draw` is more private than the item `Screen::add_component`
[INFO] [stdout]    --> examples/ch17_02_trait_objects.rs:107:5
[INFO] [stdout]     |
[INFO] [stdout] 107 |     pub fn add_component(&mut self, component: Box<dyn Draw>) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Screen::add_component` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `Draw` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> examples/ch17_02_trait_objects.rs:31:1
[INFO] [stdout]     |
[INFO] [stdout]  31 | trait Draw {
[INFO] [stdout]     | ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `NotObjectSafe` is never used
[INFO] [stdout]    --> examples/ch17_02_trait_objects.rs:249:7
[INFO] [stdout]     |
[INFO] [stdout] 249 | trait NotObjectSafe {
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> examples/ch19_01_unsafe_rust.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 100 |     *ptr = 999; // Direct memory manipulation
[INFO] [stdout]     |     ^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> examples/ch19_01_unsafe_rust.rs:94:1
[INFO] [stdout]     |
[INFO] [stdout]  94 | unsafe fn dangerous() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> examples/ch19_01_unsafe_rust.rs:384:21
[INFO] [stdout]     |
[INFO] [stdout] 384 |         let c_str = CStr::from_ptr(s);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> examples/ch19_01_unsafe_rust.rs:383:5
[INFO] [stdout]     |
[INFO] [stdout] 383 |     unsafe fn simulate_c_strlen(s: *const c_char) -> usize {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block
[INFO] [stdout]    --> examples/ch19_01_unsafe_rust.rs:485:9
[INFO] [stdout]     |
[INFO] [stdout] 485 |         slice::from_raw_parts(ptr, len)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> examples/ch19_01_unsafe_rust.rs:481:5
[INFO] [stdout]     |
[INFO] [stdout] 481 | /     pub unsafe fn slice_from_raw_parts_documented<'a, T>(
[INFO] [stdout] 482 | |         ptr: *const T, 
[INFO] [stdout] 483 | |         len: usize
[INFO] [stdout] 484 | |     ) -> &'a [T] {
[INFO] [stdout]     | |________________^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0133, E0599, E0658.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rust-book-examples` (example "ch19_01_unsafe_rust") due to 4 previous errors; 3 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "02c5904a319011780e9ab053130d75b9de6acd6c35f8fbffca4dbd399b60cd2a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "02c5904a319011780e9ab053130d75b9de6acd6c35f8fbffca4dbd399b60cd2a", kill_on_drop: false }`
[INFO] [stdout] 02c5904a319011780e9ab053130d75b9de6acd6c35f8fbffca4dbd399b60cd2a
