[INFO] cloning repository https://github.com/ankuragrawal70/rust-lab
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ankuragrawal70/rust-lab" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fankuragrawal70%2Frust-lab", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fankuragrawal70%2Frust-lab'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2e07ca5fa304716620a4c7d5793e378c4c4c16b4
[INFO] checking ankuragrawal70/rust-lab against 760e1de835e253bf28bbcbfee38b5e8ed9ffe074 for pr-133502-26
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fankuragrawal70%2Frust-lab" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ankuragrawal70/rust-lab
[INFO] finished tweaking git repo https://github.com/ankuragrawal70/rust-lab
[INFO] tweaked toml for git repo https://github.com/ankuragrawal70/rust-lab written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ankuragrawal70/rust-lab on toolchain 760e1de835e253bf28bbcbfee38b5e8ed9ffe074
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+760e1de835e253bf28bbcbfee38b5e8ed9ffe074" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ankuragrawal70/rust-lab 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" "+760e1de835e253bf28bbcbfee38b5e8ed9ffe074" "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-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:1fa6594d87c8fa7b311925a7a77a16f539833322d9dfba4ce891f211db2f90b1" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 25fffddc4f069c3fb906d9803d81d96b5049e1d5b93766a2025ce0408666703a
[INFO] running `Command { std: "docker" "start" "25fffddc4f069c3fb906d9803d81d96b5049e1d5b93766a2025ce0408666703a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "25fffddc4f069c3fb906d9803d81d96b5049e1d5b93766a2025ce0408666703a", 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" "25fffddc4f069c3fb906d9803d81d96b5049e1d5b93766a2025ce0408666703a" "/opt/rustwide/cargo-home/bin/cargo" "+760e1de835e253bf28bbcbfee38b5e8ed9ffe074" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "25fffddc4f069c3fb906d9803d81d96b5049e1d5b93766a2025ce0408666703a", 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" "25fffddc4f069c3fb906d9803d81d96b5049e1d5b93766a2025ce0408666703a" "/opt/rustwide/cargo-home/bin/cargo" "+760e1de835e253bf28bbcbfee38b5e8ed9ffe074" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking rust-lab v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `data2`
[INFO] [stdout]    --> src/lessons/ownership_deep_dive.rs:441:9
[INFO] [stdout]     |
[INFO] [stdout] 441 |     let data2 = Rc::clone(&data);  // Increases ref count, doesn't deep copy
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_data2`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `clone1`
[INFO] [stdout]    --> src/lessons/smart_pointers_explained.rs:307:13
[INFO] [stdout]     |
[INFO] [stdout] 307 |         let clone1 = Rc::clone(&data);
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_clone1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `clone2`
[INFO] [stdout]    --> src/lessons/smart_pointers_explained.rs:310:13
[INFO] [stdout]     |
[INFO] [stdout] 310 |         let clone2 = Rc::clone(&data);
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_clone2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data2`
[INFO] [stdout]    --> src/lessons/ownership_deep_dive.rs:441:9
[INFO] [stdout]     |
[INFO] [stdout] 441 |     let data2 = Rc::clone(&data);  // Increases ref count, doesn't deep copy
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_data2`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `clone1`
[INFO] [stdout]    --> src/lessons/smart_pointers_explained.rs:307:13
[INFO] [stdout]     |
[INFO] [stdout] 307 |         let clone1 = Rc::clone(&data);
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_clone1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `clone2`
[INFO] [stdout]    --> src/lessons/smart_pointers_explained.rs:310:13
[INFO] [stdout]     |
[INFO] [stdout] 310 |         let clone2 = Rc::clone(&data);
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_clone2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c3`
[INFO] [stdout]    --> src/lessons/macros.rs:223:9
[INFO] [stdout]     |
[INFO] [stdout] 223 |     let c3 = c1.clone(); // Clone
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_c3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Marker` is never constructed
[INFO] [stdout]   --> src/lessons/traits_impl.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct Marker;
[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 `update_email` is never used
[INFO] [stdout]   --> src/lessons/traits_impl.rs:93:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl Person {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub fn update_email(&mut self, new_email: &str) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `distance_to` is never used
[INFO] [stdout]    --> src/lessons/traits_impl.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 103 | impl Point {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn distance_to(&self, other: &Point) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `summarize_short` is never used
[INFO] [stdout]    --> src/lessons/traits_impl.rs:146:8
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub trait Summary {
[INFO] [stdout]     |           ------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 146 |     fn summarize_short(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_speak_generic` is never used
[INFO] [stdout]    --> src/lessons/traits_impl.rs:258:8
[INFO] [stdout]     |
[INFO] [stdout] 258 | pub fn make_speak_generic<T: Speak>(speaker: &T) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Loadable` is never used
[INFO] [stdout]   --> src/lessons/traits_advanced.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub trait Loadable {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `delete` is never used
[INFO] [stdout]    --> src/lessons/traits_advanced.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub trait PersistentEntity: Entity {
[INFO] [stdout]     |           ---------------- method in this trait
[INFO] [stdout] 146 |     fn persist(&self) -> Result<(), String>;
[INFO] [stdout] 147 |     fn delete(&self) -> Result<(), String>;
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `email` is never read
[INFO] [stdout]    --> src/lessons/traits_advanced.rs:155:9
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub struct User {
[INFO] [stdout]     |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub email: String,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `User` 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 `x` and `y` are never read
[INFO] [stdout]   --> src/lessons/ownership_deep_dive.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 74 |     struct Point {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 75 |         x: i32,
[INFO] [stdout]    |         ^
[INFO] [stdout] 76 |         y: i32,
[INFO] [stdout]    |         ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Point` 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: field `name` is never read
[INFO] [stdout]    --> src/lessons/ownership_deep_dive.rs:169:5
[INFO] [stdout]     |
[INFO] [stdout] 168 | struct Person {
[INFO] [stdout]     |        ------ field in this struct
[INFO] [stdout] 169 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Person` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `first_word` is never used
[INFO] [stdout]    --> src/lessons/ownership_deep_dive.rs:301:8
[INFO] [stdout]     |
[INFO] [stdout] 301 |     fn first_word<'a>(s: &'a str) -> &'a str {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `part` is never read
[INFO] [stdout]    --> src/lessons/ownership_deep_dive.rs:315:9
[INFO] [stdout]     |
[INFO] [stdout] 314 |     struct Excerpt<'a> {
[INFO] [stdout]     |            ------- field in this struct
[INFO] [stdout] 315 |         part: &'a str,  // This reference must outlive the struct
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Excerpt` 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]    --> src/lessons/ownership_deep_dive.rs:401:14
[INFO] [stdout]     |
[INFO] [stdout] 401 |         Cons(i32, Box<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] 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] 401 -         Cons(i32, Box<List>),
[INFO] [stdout] 401 +         Cons((), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]    --> src/lessons/ownership_deep_dive.rs:453:14
[INFO] [stdout]     |
[INFO] [stdout] 453 |         Cons(i32, Rc<SharedList>),
[INFO] [stdout]     |         ---- ^^^  ^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SharedList` 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] 453 -         Cons(i32, Rc<SharedList>),
[INFO] [stdout] 453 +         Cons((), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `value` and `children` are never read
[INFO] [stdout]    --> src/lessons/ownership_deep_dive.rs:597:9
[INFO] [stdout]     |
[INFO] [stdout] 596 |     struct Node {
[INFO] [stdout]     |            ---- fields in this struct
[INFO] [stdout] 597 |         value: i32,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 598 |         parent: RefCell<Weak<Node>>,      // Weak to parent
[INFO] [stdout] 599 |         children: RefCell<Vec<Rc<Node>>>,  // Strong to children
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Node` 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]    --> src/lessons/smart_pointers_explained.rs:183:17
[INFO] [stdout]     |
[INFO] [stdout] 183 |         Node(T, Box<List<T>>),  // Size: sizeof(T) + 8 bytes (Box pointer)
[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] 183 -         Node(T, Box<List<T>>),  // Size: sizeof(T) + 8 bytes (Box pointer)
[INFO] [stdout] 183 +         Node(T, ()),  // Size: sizeof(T) + 8 bytes (Box pointer)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]    --> src/lessons/smart_pointers_explained.rs:321:14
[INFO] [stdout]     |
[INFO] [stdout] 321 |         Node(i32, Rc<SharedList>),
[INFO] [stdout]     |         ---- ^^^  ^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SharedList` 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] 321 -         Node(i32, Rc<SharedList>),
[INFO] [stdout] 321 +         Node((), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `value` and `neighbors` are never read
[INFO] [stdout]    --> src/lessons/smart_pointers_explained.rs:350:9
[INFO] [stdout]     |
[INFO] [stdout] 349 |     struct GraphNode {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 350 |         value: i32,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 351 |         neighbors: Vec<Rc<GraphNode>>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GraphNode` 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 `read_file_verbose` is never used
[INFO] [stdout]    --> src/lessons/error_handling.rs:186:8
[INFO] [stdout]     |
[INFO] [stdout] 186 |     fn read_file_verbose(path: &str) -> Result<String, io::Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_file_chain` is never used
[INFO] [stdout]    --> src/lessons/error_handling.rs:209:8
[INFO] [stdout]     |
[INFO] [stdout] 209 |     fn read_file_chain(path: &str) -> Result<String, io::Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Custom` is never constructed
[INFO] [stdout]    --> src/lessons/error_handling.rs:307:9
[INFO] [stdout]     |
[INFO] [stdout] 304 |     enum AppError {
[INFO] [stdout]     |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 307 |         Custom(String),
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AppError` 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 `x` and `y` are never read
[INFO] [stdout]    --> src/lessons/macros.rs:205:9
[INFO] [stdout]     |
[INFO] [stdout] 204 |     struct Point {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] 205 |         x: i32,
[INFO] [stdout]     |         ^
[INFO] [stdout] 206 |         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] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `South`, `East`, and `West` are never constructed
[INFO] [stdout]    --> src/lessons/macros.rs:255:9
[INFO] [stdout]     |
[INFO] [stdout] 253 |     enum Direction {
[INFO] [stdout]     |          --------- variants in this enum
[INFO] [stdout] 254 |         North,
[INFO] [stdout] 255 |         South,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 256 |         East,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 257 |         West,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Direction` 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: field `password` is never read
[INFO] [stdout]    --> src/lessons/macros.rs:268:9
[INFO] [stdout]     |
[INFO] [stdout] 267 |     struct CustomDebug {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] 268 |         password: String,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Dog` and `Bird` are never constructed
[INFO] [stdout]    --> src/lessons/macros.rs:591:9
[INFO] [stdout]     |
[INFO] [stdout] 590 |     enum Animal {
[INFO] [stdout]     |          ------ variants in this enum
[INFO] [stdout] 591 |         Dog,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 592 |         Cat,
[INFO] [stdout] 593 |         Bird,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Animal` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lessons/smart_pointers_explained.rs:550:28
[INFO] [stdout]     |
[INFO] [stdout] 550 |     fn process_data(input: &str) -> Cow<str> {
[INFO] [stdout]     |                            ^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 550 |     fn process_data(input: &str) -> Cow<'_, str> {
[INFO] [stdout]     |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c3`
[INFO] [stdout]    --> src/lessons/macros.rs:223:9
[INFO] [stdout]     |
[INFO] [stdout] 223 |     let c3 = c1.clone(); // Clone
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_c3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Marker` is never constructed
[INFO] [stdout]   --> src/lessons/traits_impl.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct Marker;
[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 `update_email` is never used
[INFO] [stdout]   --> src/lessons/traits_impl.rs:93:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl Person {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub fn update_email(&mut self, new_email: &str) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `distance_to` is never used
[INFO] [stdout]    --> src/lessons/traits_impl.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 103 | impl Point {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn distance_to(&self, other: &Point) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `summarize_short` is never used
[INFO] [stdout]    --> src/lessons/traits_impl.rs:146:8
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub trait Summary {
[INFO] [stdout]     |           ------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 146 |     fn summarize_short(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_speak_generic` is never used
[INFO] [stdout]    --> src/lessons/traits_impl.rs:258:8
[INFO] [stdout]     |
[INFO] [stdout] 258 | pub fn make_speak_generic<T: Speak>(speaker: &T) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Loadable` is never used
[INFO] [stdout]   --> src/lessons/traits_advanced.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub trait Loadable {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `delete` is never used
[INFO] [stdout]    --> src/lessons/traits_advanced.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub trait PersistentEntity: Entity {
[INFO] [stdout]     |           ---------------- method in this trait
[INFO] [stdout] 146 |     fn persist(&self) -> Result<(), String>;
[INFO] [stdout] 147 |     fn delete(&self) -> Result<(), String>;
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `email` is never read
[INFO] [stdout]    --> src/lessons/traits_advanced.rs:155:9
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub struct User {
[INFO] [stdout]     |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub email: String,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `User` 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 `x` and `y` are never read
[INFO] [stdout]   --> src/lessons/ownership_deep_dive.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 74 |     struct Point {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 75 |         x: i32,
[INFO] [stdout]    |         ^
[INFO] [stdout] 76 |         y: i32,
[INFO] [stdout]    |         ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Point` 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: field `name` is never read
[INFO] [stdout]    --> src/lessons/ownership_deep_dive.rs:169:5
[INFO] [stdout]     |
[INFO] [stdout] 168 | struct Person {
[INFO] [stdout]     |        ------ field in this struct
[INFO] [stdout] 169 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Person` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `first_word` is never used
[INFO] [stdout]    --> src/lessons/ownership_deep_dive.rs:301:8
[INFO] [stdout]     |
[INFO] [stdout] 301 |     fn first_word<'a>(s: &'a str) -> &'a str {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `part` is never read
[INFO] [stdout]    --> src/lessons/ownership_deep_dive.rs:315:9
[INFO] [stdout]     |
[INFO] [stdout] 314 |     struct Excerpt<'a> {
[INFO] [stdout]     |            ------- field in this struct
[INFO] [stdout] 315 |         part: &'a str,  // This reference must outlive the struct
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Excerpt` 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]    --> src/lessons/ownership_deep_dive.rs:401:14
[INFO] [stdout]     |
[INFO] [stdout] 401 |         Cons(i32, Box<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] 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] 401 -         Cons(i32, Box<List>),
[INFO] [stdout] 401 +         Cons((), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]    --> src/lessons/ownership_deep_dive.rs:453:14
[INFO] [stdout]     |
[INFO] [stdout] 453 |         Cons(i32, Rc<SharedList>),
[INFO] [stdout]     |         ---- ^^^  ^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SharedList` 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] 453 -         Cons(i32, Rc<SharedList>),
[INFO] [stdout] 453 +         Cons((), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `value` and `children` are never read
[INFO] [stdout]    --> src/lessons/ownership_deep_dive.rs:597:9
[INFO] [stdout]     |
[INFO] [stdout] 596 |     struct Node {
[INFO] [stdout]     |            ---- fields in this struct
[INFO] [stdout] 597 |         value: i32,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 598 |         parent: RefCell<Weak<Node>>,      // Weak to parent
[INFO] [stdout] 599 |         children: RefCell<Vec<Rc<Node>>>,  // Strong to children
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Node` 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]    --> src/lessons/smart_pointers_explained.rs:183:17
[INFO] [stdout]     |
[INFO] [stdout] 183 |         Node(T, Box<List<T>>),  // Size: sizeof(T) + 8 bytes (Box pointer)
[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] 183 -         Node(T, Box<List<T>>),  // Size: sizeof(T) + 8 bytes (Box pointer)
[INFO] [stdout] 183 +         Node(T, ()),  // Size: sizeof(T) + 8 bytes (Box pointer)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]    --> src/lessons/smart_pointers_explained.rs:321:14
[INFO] [stdout]     |
[INFO] [stdout] 321 |         Node(i32, Rc<SharedList>),
[INFO] [stdout]     |         ---- ^^^  ^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SharedList` 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] 321 -         Node(i32, Rc<SharedList>),
[INFO] [stdout] 321 +         Node((), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `value` and `neighbors` are never read
[INFO] [stdout]    --> src/lessons/smart_pointers_explained.rs:350:9
[INFO] [stdout]     |
[INFO] [stdout] 349 |     struct GraphNode {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 350 |         value: i32,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 351 |         neighbors: Vec<Rc<GraphNode>>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GraphNode` 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 `read_file_verbose` is never used
[INFO] [stdout]    --> src/lessons/error_handling.rs:186:8
[INFO] [stdout]     |
[INFO] [stdout] 186 |     fn read_file_verbose(path: &str) -> Result<String, io::Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_file_chain` is never used
[INFO] [stdout]    --> src/lessons/error_handling.rs:209:8
[INFO] [stdout]     |
[INFO] [stdout] 209 |     fn read_file_chain(path: &str) -> Result<String, io::Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Custom` is never constructed
[INFO] [stdout]    --> src/lessons/error_handling.rs:307:9
[INFO] [stdout]     |
[INFO] [stdout] 304 |     enum AppError {
[INFO] [stdout]     |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 307 |         Custom(String),
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AppError` 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 `test_example` is never used
[INFO] [stdout]    --> src/lessons/error_handling.rs:467:8
[INFO] [stdout]     |
[INFO] [stdout] 467 |     fn test_example() {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]    --> src/lessons/macros.rs:205:9
[INFO] [stdout]     |
[INFO] [stdout] 204 |     struct Point {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] 205 |         x: i32,
[INFO] [stdout]     |         ^
[INFO] [stdout] 206 |         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] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `South`, `East`, and `West` are never constructed
[INFO] [stdout]    --> src/lessons/macros.rs:255:9
[INFO] [stdout]     |
[INFO] [stdout] 253 |     enum Direction {
[INFO] [stdout]     |          --------- variants in this enum
[INFO] [stdout] 254 |         North,
[INFO] [stdout] 255 |         South,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 256 |         East,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 257 |         West,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Direction` 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: field `password` is never read
[INFO] [stdout]    --> src/lessons/macros.rs:268:9
[INFO] [stdout]     |
[INFO] [stdout] 267 |     struct CustomDebug {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] 268 |         password: String,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Dog` and `Bird` are never constructed
[INFO] [stdout]    --> src/lessons/macros.rs:591:9
[INFO] [stdout]     |
[INFO] [stdout] 590 |     enum Animal {
[INFO] [stdout]     |          ------ variants in this enum
[INFO] [stdout] 591 |         Dog,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 592 |         Cat,
[INFO] [stdout] 593 |         Bird,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Animal` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lessons/smart_pointers_explained.rs:550:28
[INFO] [stdout]     |
[INFO] [stdout] 550 |     fn process_data(input: &str) -> Cow<str> {
[INFO] [stdout]     |                            ^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 550 |     fn process_data(input: &str) -> Cow<'_, str> {
[INFO] [stdout]     |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.84s
[INFO] running `Command { std: "docker" "inspect" "25fffddc4f069c3fb906d9803d81d96b5049e1d5b93766a2025ce0408666703a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "25fffddc4f069c3fb906d9803d81d96b5049e1d5b93766a2025ce0408666703a", kill_on_drop: false }`
[INFO] [stdout] 25fffddc4f069c3fb906d9803d81d96b5049e1d5b93766a2025ce0408666703a
