[INFO] cloning repository https://github.com/Mehbark/screen
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Mehbark/screen" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMehbark%2Fscreen", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMehbark%2Fscreen'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0465a63d9d7cea3e87a833346377ecdac09d7de1
[INFO] checking Mehbark/screen/0465a63d9d7cea3e87a833346377ecdac09d7de1 against master#8a65ee08296b36342bf7c3cdc15312ccbc357227 for pr-142704
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMehbark%2Fscreen" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/Mehbark/screen on toolchain 8a65ee08296b36342bf7c3cdc15312ccbc357227
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8a65ee08296b36342bf7c3cdc15312ccbc357227" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/Mehbark/screen
[INFO] finished tweaking git repo https://github.com/Mehbark/screen
[INFO] tweaked toml for git repo https://github.com/Mehbark/screen written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/Mehbark/screen 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" "+8a65ee08296b36342bf7c3cdc15312ccbc357227" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded prime_tools v0.3.4
[INFO] [stderr]   Downloaded libmath v0.1.4
[INFO] [stderr]   Downloaded owo-colors v3.3.0
[INFO] [stderr]   Downloaded minifb v0.23.0
[INFO] [stderr]   Downloaded color-eyre v0.6.1
[INFO] [stderr]   Downloaded orbclient v0.3.32
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8a65ee08296b36342bf7c3cdc15312ccbc357227" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 6d5e989b86d77995cdef2dc4cb5440bb1fe5379e020b1b5baaf19f59a6e25afa
[INFO] running `Command { std: "docker" "start" "-a" "6d5e989b86d77995cdef2dc4cb5440bb1fe5379e020b1b5baaf19f59a6e25afa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6d5e989b86d77995cdef2dc4cb5440bb1fe5379e020b1b5baaf19f59a6e25afa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6d5e989b86d77995cdef2dc4cb5440bb1fe5379e020b1b5baaf19f59a6e25afa", kill_on_drop: false }`
[INFO] [stdout] 6d5e989b86d77995cdef2dc4cb5440bb1fe5379e020b1b5baaf19f59a6e25afa
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8a65ee08296b36342bf7c3cdc15312ccbc357227" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2d9a73663394e5853f04a3ee6e080caea4c1a6116ba9bda6d6a2208d4edbd287
[INFO] running `Command { std: "docker" "start" "-a" "2d9a73663394e5853f04a3ee6e080caea4c1a6116ba9bda6d6a2208d4edbd287", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.123
[INFO] [stderr]    Compiling proc-macro2 v1.0.37
[INFO] [stderr]    Compiling pkg-config v0.3.25
[INFO] [stderr]     Checking once_cell v1.10.0
[INFO] [stderr]    Compiling memchr v2.4.1
[INFO] [stderr]     Checking tracing-core v0.1.26
[INFO] [stderr]     Checking smallvec v1.8.0
[INFO] [stderr]     Checking sharded-slab v0.1.4
[INFO] [stderr]     Checking thread_local v1.1.4
[INFO] [stderr]    Compiling miniz_oxide v0.4.4
[INFO] [stderr]     Checking pin-project-lite v0.2.8
[INFO] [stderr]     Checking scoped-tls v1.0.0
[INFO] [stderr]     Checking tracing v0.1.34
[INFO] [stderr]    Compiling backtrace v0.3.64
[INFO] [stderr]     Checking gimli v0.26.1
[INFO] [stderr]    Compiling eyre v0.6.8
[INFO] [stderr]    Compiling wayland-sys v0.29.4
[INFO] [stderr]    Compiling x11-dl v2.19.1
[INFO] [stderr]     Checking tracing-subscriber v0.3.11
[INFO] [stderr]     Checking nom v7.1.1
[INFO] [stderr]     Checking object v0.27.1
[INFO] [stderr]    Compiling minifb v0.23.0
[INFO] [stderr]    Compiling quote v1.0.18
[INFO] [stderr]     Checking indenter v0.3.3
[INFO] [stderr]     Checking owo-colors v3.3.0
[INFO] [stderr]    Compiling wayland-scanner v0.29.4
[INFO] [stderr]     Checking fastrand v1.7.0
[INFO] [stderr]     Checking remove_dir_all v0.5.3
[INFO] [stderr]     Checking ppv-lite86 v0.2.16
[INFO] [stderr]     Checking nix v0.22.3
[INFO] [stderr]     Checking getrandom v0.2.6
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking rand_core v0.6.3
[INFO] [stderr]     Checking tracing-error v0.2.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.3.23
[INFO] [stderr]     Checking color-spantrace v0.2.0
[INFO] [stderr]     Checking libmath v0.1.4
[INFO] [stderr]     Checking tempfile v3.3.0
[INFO] [stderr]     Checking xcursor v0.3.4
[INFO] [stderr]    Compiling wayland-client v0.29.4
[INFO] [stderr]    Compiling wayland-protocols v0.29.4
[INFO] [stderr]     Checking bit-vec v0.6.3
[INFO] [stderr]     Checking either v1.6.1
[INFO] [stderr]     Checking itertools v0.10.3
[INFO] [stderr]     Checking prime_tools v0.3.4
[INFO] [stderr]     Checking addr2line v0.17.0
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking color-eyre v0.6.1
[INFO] [stderr]     Checking wayland-commons v0.29.4
[INFO] [stderr]     Checking wayland-cursor v0.29.4
[INFO] [stderr]     Checking clock v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `components::Direction`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use components::Direction;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use itertools::Itertools;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `prime_tools::is_u32_prime`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use prime_tools::is_u32_prime;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `components::Direction`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use components::Direction;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use itertools::Itertools;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `prime_tools::is_u32_prime`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use prime_tools::is_u32_prime;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Blinker`, `Breather`, `Channel`, `FallingSand`, and `Pixel`
[INFO] [stdout]   --> src/main.rs:14:18
[INFO] [stdout]    |
[INFO] [stdout] 14 |     components::{Blinker, Breather, FallingSand, Laser},
[INFO] [stdout]    |                  ^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 15 |     screen::{Bounds, Channel, Pixel, Pos, Screen},
[INFO] [stdout]    |                      ^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Blinker`, `Breather`, `Channel`, `FallingSand`, and `Pixel`
[INFO] [stdout]   --> src/main.rs:14:18
[INFO] [stdout]    |
[INFO] [stdout] 14 |     components::{Blinker, Breather, FallingSand, Laser},
[INFO] [stdout]    |                  ^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 15 |     screen::{Bounds, Channel, Pixel, Pos, Screen},
[INFO] [stdout]    |                      ^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]  --> src/components.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]  --> src/components.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `in_bounds`
[INFO] [stdout]   --> src/screen/mod.rs:95:21
[INFO] [stdout]    |
[INFO] [stdout] 95 |                 let in_bounds = self.set_pixel(Pixel {
[INFO] [stdout]    |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_in_bounds`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `in_bounds`
[INFO] [stdout]   --> src/screen/mod.rs:95:21
[INFO] [stdout]    |
[INFO] [stdout] 95 |                 let in_bounds = self.set_pixel(Pixel {
[INFO] [stdout]    |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_in_bounds`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Blinker` is never constructed
[INFO] [stdout]  --> src/components.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct Blinker {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Blinker` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `toggle`, and `is_active` are never used
[INFO] [stdout]   --> src/components.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl Blinker {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 32 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     fn toggle(&mut self) {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     fn is_active(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Breather` is never constructed
[INFO] [stdout]   --> src/components.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct Breather {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Breather` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_up`, `is_down`, `is_left`, and `is_right` are never used
[INFO] [stdout]   --> src/components.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl Direction {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 65 |     fn is_up(&self) -> bool {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     fn is_down(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     fn is_left(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 89 |     fn is_right(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/components.rs:133:12
[INFO] [stdout]     |
[INFO] [stdout] 132 | impl Breather {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 133 |     pub fn new(color: u32, channel: Channel) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FallingSand` is never constructed
[INFO] [stdout]    --> src/components.rs:146:12
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub struct FallingSand {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FallingSand` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `new_num_sands` are never used
[INFO] [stdout]    --> src/components.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 152 | impl FallingSand {
[INFO] [stdout]     | ---------------- associated functions in this implementation
[INFO] [stdout] 153 |     pub fn new(sands: Vec<Pos>, width: usize, height: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn new_num_sands(num_sands: usize, width: usize, height: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_available`, `is_in_bounds`, and `sand_move` are never used
[INFO] [stdout]    --> src/components.rs:199:8
[INFO] [stdout]     |
[INFO] [stdout] 197 | impl FallingSand {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] 198 |     #[must_use]
[INFO] [stdout] 199 |     fn is_available(&self, pos: Pos) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     fn is_in_bounds(&self, Pos { x, y }: Pos) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     fn sand_move(&self, sand: &Pos) -> Pos {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `step`, `offset`, and `color_direction` are never read
[INFO] [stdout]    --> src/components.rs:227:5
[INFO] [stdout]     |
[INFO] [stdout] 223 | pub struct Laser {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 227 |     step: usize,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 228 |     offset: Pos,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 229 |     color: u32,
[INFO] [stdout] 230 |     color_direction: Direction,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Laser` 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 `height` is never read
[INFO] [stdout]   --> src/screen/mod.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Screen {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 21 |     height: usize,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Screen` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get` is never used
[INFO] [stdout]   --> src/screen/mod.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | impl Screen {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn get(&self, Pos { x, y }: Pos) -> Option<&u32> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Alpha`, `Green`, and `Blue` are never constructed
[INFO] [stdout]   --> src/screen/pixel.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum Channel {
[INFO] [stdout]    |          ------- variants in this enum
[INFO] [stdout] 17 |     Alpha,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 18 |     Red,
[INFO] [stdout] 19 |     Green,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 20 |     Blue,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Channel` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Blinker` is never constructed
[INFO] [stdout]  --> src/components.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct Blinker {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Blinker` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `toggle`, and `is_active` are never used
[INFO] [stdout]   --> src/components.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl Blinker {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 32 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     fn toggle(&mut self) {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     fn is_active(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Breather` is never constructed
[INFO] [stdout]   --> src/components.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct Breather {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Breather` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_up`, `is_down`, `is_left`, and `is_right` are never used
[INFO] [stdout]   --> src/components.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl Direction {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 65 |     fn is_up(&self) -> bool {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     fn is_down(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     fn is_left(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 89 |     fn is_right(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/components.rs:133:12
[INFO] [stdout]     |
[INFO] [stdout] 132 | impl Breather {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 133 |     pub fn new(color: u32, channel: Channel) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FallingSand` is never constructed
[INFO] [stdout]    --> src/components.rs:146:12
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub struct FallingSand {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FallingSand` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `new_num_sands` are never used
[INFO] [stdout]    --> src/components.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 152 | impl FallingSand {
[INFO] [stdout]     | ---------------- associated functions in this implementation
[INFO] [stdout] 153 |     pub fn new(sands: Vec<Pos>, width: usize, height: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn new_num_sands(num_sands: usize, width: usize, height: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_available`, `is_in_bounds`, and `sand_move` are never used
[INFO] [stdout]    --> src/components.rs:199:8
[INFO] [stdout]     |
[INFO] [stdout] 197 | impl FallingSand {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] 198 |     #[must_use]
[INFO] [stdout] 199 |     fn is_available(&self, pos: Pos) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     fn is_in_bounds(&self, Pos { x, y }: Pos) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     fn sand_move(&self, sand: &Pos) -> Pos {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `step`, `offset`, and `color_direction` are never read
[INFO] [stdout]    --> src/components.rs:227:5
[INFO] [stdout]     |
[INFO] [stdout] 223 | pub struct Laser {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 227 |     step: usize,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 228 |     offset: Pos,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 229 |     color: u32,
[INFO] [stdout] 230 |     color_direction: Direction,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Laser` 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 `height` is never read
[INFO] [stdout]   --> src/screen/mod.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Screen {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 21 |     height: usize,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Screen` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get` is never used
[INFO] [stdout]   --> src/screen/mod.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | impl Screen {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn get(&self, Pos { x, y }: Pos) -> Option<&u32> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Channel` is never used
[INFO] [stdout]   --> src/screen/pixel.rs:16:10
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum Channel {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Channel` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `negative_mask`, `positive_mask`, and `shift` are never used
[INFO] [stdout]   --> src/screen/pixel.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl Channel {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] 25 |     fn negative_mask(self) -> u32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     fn positive_mask(self) -> u32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     fn shift(self) -> u32 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `RgbaChannel` is never used
[INFO] [stdout]   --> src/screen/pixel.rs:53:11
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub trait RgbaChannel: Sized + Copy {
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 35.32s
[INFO] running `Command { std: "docker" "inspect" "2d9a73663394e5853f04a3ee6e080caea4c1a6116ba9bda6d6a2208d4edbd287", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2d9a73663394e5853f04a3ee6e080caea4c1a6116ba9bda6d6a2208d4edbd287", kill_on_drop: false }`
[INFO] [stdout] 2d9a73663394e5853f04a3ee6e080caea4c1a6116ba9bda6d6a2208d4edbd287
