[INFO] cloning repository https://github.com/greyseth/tetris-clone
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/greyseth/tetris-clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgreyseth%2Ftetris-clone", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgreyseth%2Ftetris-clone'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] b2f0066750a5e48480728e5404d951e1c87b73ca
[INFO] checking greyseth/tetris-clone against 5c543b0b8c73c7b72bc8284ced4fb22ead15734d for pr-160186
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgreyseth%2Ftetris-clone" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/greyseth/tetris-clone
[INFO] finished tweaking git repo https://github.com/greyseth/tetris-clone
[INFO] tweaked toml for git repo https://github.com/greyseth/tetris-clone written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/greyseth/tetris-clone on toolchain 5c543b0b8c73c7b72bc8284ced4fb22ead15734d
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/greyseth/tetris-clone 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" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 92bfd4c8ad8fbd442a6cac15b141adcd09cd7e679f98aae56381a0868b5a5e02
[INFO] running `Command { std: "docker" "start" "92bfd4c8ad8fbd442a6cac15b141adcd09cd7e679f98aae56381a0868b5a5e02", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "92bfd4c8ad8fbd442a6cac15b141adcd09cd7e679f98aae56381a0868b5a5e02", 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" "92bfd4c8ad8fbd442a6cac15b141adcd09cd7e679f98aae56381a0868b5a5e02" "/opt/rustwide/cargo-home/bin/cargo" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "92bfd4c8ad8fbd442a6cac15b141adcd09cd7e679f98aae56381a0868b5a5e02", 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" "92bfd4c8ad8fbd442a6cac15b141adcd09cd7e679f98aae56381a0868b5a5e02" "/opt/rustwide/cargo-home/bin/cargo" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.159
[INFO] [stderr]     Checking once_cell v1.20.2
[INFO] [stderr]     Checking fdeflate v0.3.5
[INFO] [stderr]    Compiling syn v2.0.79
[INFO] [stderr]     Checking flate2 v1.0.34
[INFO] [stderr]     Checking png v0.17.14
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]     Checking miniquad v0.4.6
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]     Checking ahash v0.8.11
[INFO] [stderr]     Checking ppv-lite86 v0.2.20
[INFO] [stderr]     Checking hashbrown v0.13.2
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking fontdue v0.7.3
[INFO] [stderr]     Checking macroquad v0.4.13
[INFO] [stderr]     Checking tetris-clone v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `fmt::format` and `thread::spawn`
[INFO] [stdout]  --> src/main.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{f32::INFINITY, fmt::format, thread::spawn};
[INFO] [stdout]   |                          ^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `I_BLOCK`, `J_BLOCK`, `L_BLOCK`, `O_BLOCK`, `S_BLOCK`, `T_BLOCK`, and `Z_BLOCK`
[INFO] [stdout]  --> src/main.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use data::block_data::{I_BLOCK, J_BLOCK, L_BLOCK, O_BLOCK, S_BLOCK, T_BLOCK, Z_BLOCK};
[INFO] [stdout]   |                        ^^^^^^^  ^^^^^^^  ^^^^^^^  ^^^^^^^  ^^^^^^^  ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BLUE`, `GREEN`, `PURPLE`, `RED`, `YELLOW`, `prelude::coroutines::wait_seconds`, `request_new_screen_size`, `self`, and `ui::root_ui`
[INFO] [stdout]  --> src/main.rs:4:25
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...::{self, Color, BLACK, BLUE, GRAY, GREEN, PURPLE, RED, WHITE, YELLOW}, input::{is_key_down, is_key_pressed, KeyCode}, prelude::coroutines::wait_seconds, shapes::{draw_rectangle, draw_rectangle_lines}, text::draw_text, time::get_frame_time, ui::root_ui, window::{clear_background, next_frame, request_new_screen_size, s...
[INFO] [stdout]   |       ^^^^                ^^^^        ^^^^^  ^^^^^^  ^^^         ^^^^^^                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                         ^^^^^^^^^^^                                         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::ChooseRandom`
[INFO] [stdout]  --> src/system/bagging.rs:1:73
[INFO] [stdout]   |
[INFO] [stdout] 1 | use macroquad::{color::{Color, BLUE, GRAY, GREEN, PURPLE, RED, YELLOW}, rand::ChooseRandom};
[INFO] [stdout]   |                                                                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/main.rs:9:35
[INFO] [stdout]   |
[INFO] [stdout] 9 | use models::{block::Block, tile::{self, Tile}, vector2::Vector2};
[INFO] [stdout]   |                                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use rand::Rng;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]   --> src/main.rs:11:23
[INFO] [stdout]    |
[INFO] [stdout] 11 | use system::bagging::{self, Bag};
[INFO] [stdout]    |                       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f32::INFINITY`: replaced by the `INFINITY` associated constant on `f32`
[INFO] [stdout]  --> src/main.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{f32::INFINITY, fmt::format, thread::spawn};
[INFO] [stdout]   |                ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f32::INFINITY`: replaced by the `INFINITY` associated constant on `f32`
[INFO] [stdout]    --> src/main.rs:167:37
[INFO] [stdout]     |
[INFO] [stdout] 167 |     let mut smallest_move_distance= INFINITY as i32;
[INFO] [stdout]     |                                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `fmt::format` and `thread::spawn`
[INFO] [stdout]  --> src/main.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{f32::INFINITY, fmt::format, thread::spawn};
[INFO] [stdout]   |                          ^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `I_BLOCK`, `J_BLOCK`, `L_BLOCK`, `O_BLOCK`, `S_BLOCK`, `T_BLOCK`, and `Z_BLOCK`
[INFO] [stdout]  --> src/main.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use data::block_data::{I_BLOCK, J_BLOCK, L_BLOCK, O_BLOCK, S_BLOCK, T_BLOCK, Z_BLOCK};
[INFO] [stdout]   |                        ^^^^^^^  ^^^^^^^  ^^^^^^^  ^^^^^^^  ^^^^^^^  ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BLUE`, `GREEN`, `PURPLE`, `RED`, `YELLOW`, `prelude::coroutines::wait_seconds`, `request_new_screen_size`, `self`, and `ui::root_ui`
[INFO] [stdout]  --> src/main.rs:4:25
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...::{self, Color, BLACK, BLUE, GRAY, GREEN, PURPLE, RED, WHITE, YELLOW}, input::{is_key_down, is_key_pressed, KeyCode}, prelude::coroutines::wait_seconds, shapes::{draw_rectangle, draw_rectangle_lines}, text::draw_text, time::get_frame_time, ui::root_ui, window::{clear_background, next_frame, request_new_screen_size, s...
[INFO] [stdout]   |       ^^^^                ^^^^        ^^^^^  ^^^^^^  ^^^         ^^^^^^                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                         ^^^^^^^^^^^                                         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::ChooseRandom`
[INFO] [stdout]  --> src/system/bagging.rs:1:73
[INFO] [stdout]   |
[INFO] [stdout] 1 | use macroquad::{color::{Color, BLUE, GRAY, GREEN, PURPLE, RED, YELLOW}, rand::ChooseRandom};
[INFO] [stdout]   |                                                                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/main.rs:9:35
[INFO] [stdout]   |
[INFO] [stdout] 9 | use models::{block::Block, tile::{self, Tile}, vector2::Vector2};
[INFO] [stdout]   |                                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use rand::Rng;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]   --> src/main.rs:11:23
[INFO] [stdout]    |
[INFO] [stdout] 11 | use system::bagging::{self, Bag};
[INFO] [stdout]    |                       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f32::INFINITY`: replaced by the `INFINITY` associated constant on `f32`
[INFO] [stdout]  --> src/main.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{f32::INFINITY, fmt::format, thread::spawn};
[INFO] [stdout]   |                ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f32::INFINITY`: replaced by the `INFINITY` associated constant on `f32`
[INFO] [stdout]    --> src/main.rs:167:37
[INFO] [stdout]     |
[INFO] [stdout] 167 |     let mut smallest_move_distance= INFINITY as i32;
[INFO] [stdout]     |                                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `boosting` is never read
[INFO] [stdout]   --> src/main.rs:27:24
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let mut boosting = false;
[INFO] [stdout]    |                        ^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 46 |         else {boosting = false;}
[INFO] [stdout]    |               ---------------- `boosting` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `paused` is never read
[INFO] [stdout]   --> src/main.rs:37:49
[INFO] [stdout]    |
[INFO] [stdout] 37 |             if is_key_pressed(KeyCode::Escape) {paused = false;}
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prev_tiles`
[INFO] [stdout]    --> src/main.rs:220:9
[INFO] [stdout]     |
[INFO] [stdout] 220 |     let prev_tiles = block.tiles.clone();
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prev_tiles`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `angle`
[INFO] [stdout]    --> src/main.rs:290:35
[INFO] [stdout]     |
[INFO] [stdout] 290 | fn rotate_point(cx: i32, cy: i32, angle: i32, p: Vector2) -> Vector2 {
[INFO] [stdout]     |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_angle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `rotated_vector` is never read
[INFO] [stdout]    --> src/main.rs:291:30
[INFO] [stdout]     |
[INFO] [stdout] 291 |     let mut rotated_vector = Vector2::new(0, 0);
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 295 |     rotated_vector = Vector2::new(local_vector.x + cx, local_vector.y + cy);
[INFO] [stdout]     |     ----------------------------------------------------------------------- `rotated_vector` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `boosting` is never read
[INFO] [stdout]   --> src/main.rs:27:24
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let mut boosting = false;
[INFO] [stdout]    |                        ^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 46 |         else {boosting = false;}
[INFO] [stdout]    |               ---------------- `boosting` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `col`
[INFO] [stdout]    --> src/main.rs:313:17
[INFO] [stdout]     |
[INFO] [stdout] 313 |             for col in 0..10 {
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `paused` is never read
[INFO] [stdout]   --> src/main.rs:37:49
[INFO] [stdout]    |
[INFO] [stdout] 37 |             if is_key_pressed(KeyCode::Escape) {paused = false;}
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/models/tile.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Tile {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 11 |     pub fn new(x: i32, y: i32 ) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `placed` is never read
[INFO] [stdout]  --> src/models/block.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Block {
[INFO] [stdout]   |            ----- field in this struct
[INFO] [stdout] 7 |     pub tiles: Vec<Tile>,
[INFO] [stdout] 8 |     pub placed: bool,
[INFO] [stdout]   |         ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Block` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_preview` is never used
[INFO] [stdout]   --> src/models/block.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Block {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn new_preview(color: Color, tiles: [[bool; 4]; 4]) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prev_tiles`
[INFO] [stdout]    --> src/main.rs:220:9
[INFO] [stdout]     |
[INFO] [stdout] 220 |     let prev_tiles = block.tiles.clone();
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prev_tiles`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `angle`
[INFO] [stdout]    --> src/main.rs:290:35
[INFO] [stdout]     |
[INFO] [stdout] 290 | fn rotate_point(cx: i32, cy: i32, angle: i32, p: Vector2) -> Vector2 {
[INFO] [stdout]     |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_angle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `rotated_vector` is never read
[INFO] [stdout]    --> src/main.rs:291:30
[INFO] [stdout]     |
[INFO] [stdout] 291 |     let mut rotated_vector = Vector2::new(0, 0);
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 295 |     rotated_vector = Vector2::new(local_vector.x + cx, local_vector.y + cy);
[INFO] [stdout]     |     ----------------------------------------------------------------------- `rotated_vector` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `col`
[INFO] [stdout]    --> src/main.rs:313:17
[INFO] [stdout]     |
[INFO] [stdout] 313 |             for col in 0..10 {
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/models/tile.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Tile {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 11 |     pub fn new(x: i32, y: i32 ) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `placed` is never read
[INFO] [stdout]  --> src/models/block.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Block {
[INFO] [stdout]   |            ----- field in this struct
[INFO] [stdout] 7 |     pub tiles: Vec<Tile>,
[INFO] [stdout] 8 |     pub placed: bool,
[INFO] [stdout]   |         ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Block` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_preview` is never used
[INFO] [stdout]   --> src/models/block.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Block {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn new_preview(color: Color, tiles: [[bool; 4]; 4]) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.27s
[INFO] running `Command { std: "docker" "inspect" "92bfd4c8ad8fbd442a6cac15b141adcd09cd7e679f98aae56381a0868b5a5e02", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "92bfd4c8ad8fbd442a6cac15b141adcd09cd7e679f98aae56381a0868b5a5e02", kill_on_drop: false }`
[INFO] [stdout] 92bfd4c8ad8fbd442a6cac15b141adcd09cd7e679f98aae56381a0868b5a5e02
