[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] building gab50000/SnakeAI against master#11663cd3bfefef7d34e8f0892c250bf698049392+rustflags=-Dtail-expr-drop-order for pr-134523 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgab50000%2FSnakeAI" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/gab50000/SnakeAI on toolchain 11663cd3bfefef7d34e8f0892c250bf698049392 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "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-tc1/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" "+11663cd3bfefef7d34e8f0892c250bf698049392" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 3459aae94b738a380b8ee78eebcd7888e522aa07d6136de4e3f01ee9ca6d0c66 [INFO] running `Command { std: "docker" "start" "-a" "3459aae94b738a380b8ee78eebcd7888e522aa07d6136de4e3f01ee9ca6d0c66", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "3459aae94b738a380b8ee78eebcd7888e522aa07d6136de4e3f01ee9ca6d0c66", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3459aae94b738a380b8ee78eebcd7888e522aa07d6136de4e3f01ee9ca6d0c66", kill_on_drop: false }` [INFO] [stdout] 3459aae94b738a380b8ee78eebcd7888e522aa07d6136de4e3f01ee9ca6d0c66 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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 -Dtail-expr-drop-order" "-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 6415556cd3fc04d80a3b5a3da28590a5d874f5e6010fab5b683d30606f0dabae [INFO] running `Command { std: "docker" "start" "-a" "6415556cd3fc04d80a3b5a3da28590a5d874f5e6010fab5b683d30606f0dabae", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.134 [INFO] [stderr] Compiling numtoa v0.1.0 [INFO] [stderr] Compiling unicode-width v0.1.10 [INFO] [stderr] Compiling unicode-segmentation v1.10.0 [INFO] [stderr] Compiling bitflags v1.3.2 [INFO] [stderr] Compiling cassowary v0.3.0 [INFO] [stderr] Compiling termion v1.5.6 [INFO] [stderr] Compiling tui v0.16.0 [INFO] [stderr] Compiling 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: `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::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 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 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 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: 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: 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: 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 3.51s [INFO] running `Command { std: "docker" "inspect" "6415556cd3fc04d80a3b5a3da28590a5d874f5e6010fab5b683d30606f0dabae", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6415556cd3fc04d80a3b5a3da28590a5d874f5e6010fab5b683d30606f0dabae", kill_on_drop: false }` [INFO] [stdout] 6415556cd3fc04d80a3b5a3da28590a5d874f5e6010fab5b683d30606f0dabae [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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 -Dtail-expr-drop-order" "-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 80267c7f4d19bc257a9fcd6b41fb1bd43253a1829f1050b20f3147836ad4139f [INFO] running `Command { std: "docker" "start" "-a" "80267c7f4d19bc257a9fcd6b41fb1bd43253a1829f1050b20f3147836ad4139f", kill_on_drop: false }` [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 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::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 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 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 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] [stderr] Compiling snake_ai v0.1.0 (/opt/rustwide/workdir) [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: 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: 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: 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: 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: 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 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::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 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 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 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: 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: 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: 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] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.20s [INFO] running `Command { std: "docker" "inspect" "80267c7f4d19bc257a9fcd6b41fb1bd43253a1829f1050b20f3147836ad4139f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "80267c7f4d19bc257a9fcd6b41fb1bd43253a1829f1050b20f3147836ad4139f", kill_on_drop: false }` [INFO] [stdout] 80267c7f4d19bc257a9fcd6b41fb1bd43253a1829f1050b20f3147836ad4139f