[INFO] cloning repository https://github.com/gab50000/SnakeAI
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/gab50000/SnakeAI" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgab50000%2FSnakeAI", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgab50000%2FSnakeAI'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 5e323586e69811c4706d57301956475b07a5276d
[INFO] checking gab50000/SnakeAI against try#ae258e1fcbee4a062f5f3d869f06004d7cea088e for pr-135272
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgab50000%2FSnakeAI" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/gab50000/SnakeAI on toolchain ae258e1fcbee4a062f5f3d869f06004d7cea088e
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ae258e1fcbee4a062f5f3d869f06004d7cea088e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/gab50000/SnakeAI
[INFO] finished tweaking git repo https://github.com/gab50000/SnakeAI
[INFO] tweaked toml for git repo https://github.com/gab50000/SnakeAI written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/gab50000/SnakeAI 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" "+ae258e1fcbee4a062f5f3d869f06004d7cea088e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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:819108c5571ea2e421544af4d832f968d213c87fbe3707a016657f43d2f853bc" "/opt/rustwide/cargo-home/bin/cargo" "+ae258e1fcbee4a062f5f3d869f06004d7cea088e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 490129386df72063ba90b57e38d4a5367d5392e6c29b2282fc23c75f5739540a
[INFO] running `Command { std: "docker" "start" "-a" "490129386df72063ba90b57e38d4a5367d5392e6c29b2282fc23c75f5739540a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "490129386df72063ba90b57e38d4a5367d5392e6c29b2282fc23c75f5739540a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "490129386df72063ba90b57e38d4a5367d5392e6c29b2282fc23c75f5739540a", kill_on_drop: false }`
[INFO] [stdout] 490129386df72063ba90b57e38d4a5367d5392e6c29b2282fc23c75f5739540a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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:819108c5571ea2e421544af4d832f968d213c87fbe3707a016657f43d2f853bc" "/opt/rustwide/cargo-home/bin/cargo" "+ae258e1fcbee4a062f5f3d869f06004d7cea088e" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d6839027abe97063f2edf5b2f887ff6458bb3d4e1b5a79b6beac946b43635288
[INFO] running `Command { std: "docker" "start" "-a" "d6839027abe97063f2edf5b2f887ff6458bb3d4e1b5a79b6beac946b43635288", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.134
[INFO] [stderr]     Checking numtoa v0.1.0
[INFO] [stderr]     Checking unicode-width v0.1.10
[INFO] [stderr]     Checking cassowary v0.3.0
[INFO] [stderr]     Checking unicode-segmentation v1.10.0
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]     Checking termion v1.5.6
[INFO] [stderr]     Checking tui v0.16.0
[INFO] [stderr]     Checking snake_ai v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Snake` and `game_canvas::Drawable`
[INFO] [stdout]  --> src/game.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     game_canvas::Drawable,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 3 |     snake::{Direction, Position, Snake, Snakeable},
[INFO] [stdout]   |                                  ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Snake` and `game_canvas::Drawable`
[INFO] [stdout]  --> src/game.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     game_canvas::Drawable,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 3 |     snake::{Direction, Position, Snake, Snakeable},
[INFO] [stdout]   |                                  ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `collections` and `ops::DerefMut`
[INFO] [stdout]  --> src/game.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::{collections, ops::DerefMut};
[INFO] [stdout]   |           ^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `collections` and `ops::DerefMut`
[INFO] [stdout]  --> src/game.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::{collections, ops::DerefMut};
[INFO] [stdout]   |           ^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::boxed::Box`
[INFO] [stdout]  --> src/game_canvas.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::boxed::Box;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::boxed::Box`
[INFO] [stdout]  --> src/game_canvas.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::boxed::Box;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> src/game_canvas.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> src/game_canvas.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Stdout`
[INFO] [stdout]  --> src/game_canvas.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::Stdout;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Stdout`
[INFO] [stdout]  --> src/game_canvas.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::Stdout;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IntoRawMode` and `RawTerminal`
[INFO] [stdout]  --> src/game_canvas.rs:5:20
[INFO] [stdout]   |
[INFO] [stdout] 5 | use termion::raw::{IntoRawMode, RawTerminal};
[INFO] [stdout]   |                    ^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IntoRawMode` and `RawTerminal`
[INFO] [stdout]  --> src/game_canvas.rs:5:20
[INFO] [stdout]   |
[INFO] [stdout] 5 | use termion::raw::{IntoRawMode, RawTerminal};
[INFO] [stdout]   |                    ^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tui::backend::TermionBackend`
[INFO] [stdout]  --> src/game_canvas.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use tui::backend::TermionBackend;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Constraint`, `Direction`, and `Layout`
[INFO] [stdout]  --> src/game_canvas.rs:7:19
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tui::layout::{Constraint, Direction, Layout};
[INFO] [stdout]   |                   ^^^^^^^^^^  ^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tui::backend::TermionBackend`
[INFO] [stdout]  --> src/game_canvas.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use tui::backend::TermionBackend;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Canvas`, `Line`, `MapResolution`, `Map`, and `Rectangle`
[INFO] [stdout]  --> src/game_canvas.rs:9:28
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tui::widgets::canvas::{Canvas, Context, Line, Map, MapResolution, Rectangle};
[INFO] [stdout]   |                            ^^^^^^           ^^^^  ^^^  ^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Block` and `Borders`
[INFO] [stdout]   --> src/game_canvas.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 | use tui::widgets::{Block, Borders};
[INFO] [stdout]    |                    ^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Constraint`, `Direction`, and `Layout`
[INFO] [stdout]  --> src/game_canvas.rs:7:19
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tui::layout::{Constraint, Direction, Layout};
[INFO] [stdout]   |                   ^^^^^^^^^^  ^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tui::Terminal`
[INFO] [stdout]   --> src/game_canvas.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tui::Terminal;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `thread` and `time`
[INFO] [stdout]   --> src/game_canvas.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::{thread, time};
[INFO] [stdout]    |           ^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Canvas`, `Line`, `MapResolution`, `Map`, and `Rectangle`
[INFO] [stdout]  --> src/game_canvas.rs:9:28
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tui::widgets::canvas::{Canvas, Context, Line, Map, MapResolution, Rectangle};
[INFO] [stdout]   |                            ^^^^^^           ^^^^  ^^^  ^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MouseEvent`
[INFO] [stdout]  --> src/input_handler.rs:4:34
[INFO] [stdout]   |
[INFO] [stdout] 4 | use termion::event::{Event, Key, MouseEvent};
[INFO] [stdout]   |                                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Block` and `Borders`
[INFO] [stdout]   --> src/game_canvas.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 | use tui::widgets::{Block, Borders};
[INFO] [stdout]    |                    ^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Events`
[INFO] [stdout]  --> src/input_handler.rs:5:22
[INFO] [stdout]   |
[INFO] [stdout] 5 | use termion::input::{Events, TermRead};
[INFO] [stdout]   |                      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tui::Terminal`
[INFO] [stdout]   --> src/game_canvas.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tui::Terminal;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `thread` and `time`
[INFO] [stdout]   --> src/game_canvas.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::{thread, time};
[INFO] [stdout]    |           ^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MouseEvent`
[INFO] [stdout]  --> src/input_handler.rs:4:34
[INFO] [stdout]   |
[INFO] [stdout] 4 | use termion::event::{Event, Key, MouseEvent};
[INFO] [stdout]   |                                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Events`
[INFO] [stdout]  --> src/input_handler.rs:5:22
[INFO] [stdout]   |
[INFO] [stdout] 5 | use termion::input::{Events, TermRead};
[INFO] [stdout]   |                      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function cannot return without recursing
[INFO] [stdout]    --> src/snake.rs:125:5
[INFO] [stdout]     |
[INFO] [stdout] 125 |     fn update_direction(&mut self) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing
[INFO] [stdout] 126 |         self.update_direction();
[INFO] [stdout]     |         ----------------------- recursive call site
[INFO] [stdout]     |
[INFO] [stdout]     = help: a `loop` may express intention better if this is on purpose
[INFO] [stdout]     = note: `#[warn(unconditional_recursion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function cannot return without recursing
[INFO] [stdout]    --> src/snake.rs:125:5
[INFO] [stdout]     |
[INFO] [stdout] 125 |     fn update_direction(&mut self) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing
[INFO] [stdout] 126 |         self.update_direction();
[INFO] [stdout]     |         ----------------------- recursive call site
[INFO] [stdout]     |
[INFO] [stdout]     = help: a `loop` may express intention better if this is on purpose
[INFO] [stdout]     = note: `#[warn(unconditional_recursion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/game.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Fruit {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] 13 |     fn new(position: Position) -> Fruit {
[INFO] [stdout]    |        ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/game.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Fruit {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] 13 |     fn new(position: Position) -> Fruit {
[INFO] [stdout]    |        ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `width` and `height` are never read
[INFO] [stdout]   --> src/game_canvas.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct GameCanvas {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 53 |     width: i64,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 54 |     height: i64,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `width` and `height` are never read
[INFO] [stdout]   --> src/game_canvas.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct GameCanvas {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 53 |     width: i64,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 54 |     height: i64,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/main.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | use snake_ai::game::{self, Game};
[INFO] [stdout]   |                      ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GameCanvas`
[INFO] [stdout]  --> src/main.rs:2:39
[INFO] [stdout]   |
[INFO] [stdout] 2 | use snake_ai::game_canvas::{Drawable, GameCanvas};
[INFO] [stdout]   |                                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Action` and `InputHandler`
[INFO] [stdout]  --> src/main.rs:3:31
[INFO] [stdout]   |
[INFO] [stdout] 3 | use snake_ai::input_handler::{Action, InputHandler};
[INFO] [stdout]   |                               ^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error::Error` and `time::Duration`
[INFO] [stdout]  --> src/main.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::{error::Error, io, time::Duration};
[INFO] [stdout]   |           ^^^^^^^^^^^^      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Event`, `Key`, and `MouseEvent`
[INFO] [stdout]  --> src/main.rs:8:22
[INFO] [stdout]   |
[INFO] [stdout] 8 | use termion::event::{Event, Key, MouseEvent};
[INFO] [stdout]   |                      ^^^^^  ^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Events` and `TermRead`
[INFO] [stdout]  --> src/main.rs:9:22
[INFO] [stdout]   |
[INFO] [stdout] 9 | use termion::input::{Events, TermRead};
[INFO] [stdout]   |                      ^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tui::style::Color`
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use tui::style::Color;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Line`, `MapResolution`, `Map`, and `Rectangle`
[INFO] [stdout]   --> src/main.rs:14:36
[INFO] [stdout]    |
[INFO] [stdout] 14 | use tui::widgets::canvas::{Canvas, Line, Map, MapResolution, Rectangle};
[INFO] [stdout]    |                                    ^^^^  ^^^  ^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/main.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | use snake_ai::game::{self, Game};
[INFO] [stdout]   |                      ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GameCanvas`
[INFO] [stdout]  --> src/main.rs:2:39
[INFO] [stdout]   |
[INFO] [stdout] 2 | use snake_ai::game_canvas::{Drawable, GameCanvas};
[INFO] [stdout]   |                                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Action` and `InputHandler`
[INFO] [stdout]  --> src/main.rs:3:31
[INFO] [stdout]   |
[INFO] [stdout] 3 | use snake_ai::input_handler::{Action, InputHandler};
[INFO] [stdout]   |                               ^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error::Error` and `time::Duration`
[INFO] [stdout]  --> src/main.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::{error::Error, io, time::Duration};
[INFO] [stdout]   |           ^^^^^^^^^^^^      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Event`, `Key`, and `MouseEvent`
[INFO] [stdout]  --> src/main.rs:8:22
[INFO] [stdout]   |
[INFO] [stdout] 8 | use termion::event::{Event, Key, MouseEvent};
[INFO] [stdout]   |                      ^^^^^  ^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Events` and `TermRead`
[INFO] [stdout]  --> src/main.rs:9:22
[INFO] [stdout]   |
[INFO] [stdout] 9 | use termion::input::{Events, TermRead};
[INFO] [stdout]   |                      ^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tui::style::Color`
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use tui::style::Color;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Line`, `MapResolution`, `Map`, and `Rectangle`
[INFO] [stdout]   --> src/main.rs:14:36
[INFO] [stdout]    |
[INFO] [stdout] 14 | use tui::widgets::canvas::{Canvas, Line, Map, MapResolution, Rectangle};
[INFO] [stdout]    |                                    ^^^^  ^^^  ^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Snakeable`
[INFO] [stdout]  --> tests/test_snake.rs:1:39
[INFO] [stdout]   |
[INFO] [stdout] 1 | use snake_ai::snake::{self, Position, Snakeable};
[INFO] [stdout]   |                                       ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/main.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | /     loop {
[INFO] [stdout] 39 | |         terminal.draw(|frame| {
[INFO] [stdout] 40 | |             let chunks = set_layout(frame.size());
[INFO] [stdout] 41 | |             let canvas = Canvas::default()
[INFO] [stdout] ...  |
[INFO] [stdout] 53 | |         game.update();
[INFO] [stdout] 54 | |     }
[INFO] [stdout]    | |_____- any code following this expression is unreachable
[INFO] [stdout] 55 |       terminal.clear()?;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/main.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | /     loop {
[INFO] [stdout] 39 | |         terminal.draw(|frame| {
[INFO] [stdout] 40 | |             let chunks = set_layout(frame.size());
[INFO] [stdout] 41 | |             let canvas = Canvas::default()
[INFO] [stdout] ...  |
[INFO] [stdout] 53 | |         game.update();
[INFO] [stdout] 54 | |     }
[INFO] [stdout]    | |_____- any code following this expression is unreachable
[INFO] [stdout] 55 |       terminal.clear()?;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.62s
[INFO] running `Command { std: "docker" "inspect" "d6839027abe97063f2edf5b2f887ff6458bb3d4e1b5a79b6beac946b43635288", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d6839027abe97063f2edf5b2f887ff6458bb3d4e1b5a79b6beac946b43635288", kill_on_drop: false }`
[INFO] [stdout] d6839027abe97063f2edf5b2f887ff6458bb3d4e1b5a79b6beac946b43635288
