[INFO] cloning repository https://github.com/Niedzwiedzw/rusty_game
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Niedzwiedzw/rusty_game" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNiedzwiedzw%2Frusty_game", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNiedzwiedzw%2Frusty_game'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 20ed41072d185850e9301e965cfe1aeb534e97a2
[INFO] checking Niedzwiedzw/rusty_game against eca445e5ae4a6679cc27d3a09106ce245e13a5a6 for pr-162478
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNiedzwiedzw%2Frusty_game" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Niedzwiedzw/rusty_game
[INFO] finished tweaking git repo https://github.com/Niedzwiedzw/rusty_game
[INFO] tweaked toml for git repo https://github.com/Niedzwiedzw/rusty_game written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Niedzwiedzw/rusty_game on toolchain eca445e5ae4a6679cc27d3a09106ce245e13a5a6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Niedzwiedzw/rusty_game 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" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: binary `rusty_game` should have a kebab-case name
[INFO] [stderr]    |
[INFO] [stderr]  1 | /workspace/builds/worker-0-tc1/source/target/.../rusty_game
[INFO] [stderr]    |                                                  ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::non_kebab_case_bins` is set to `warn` by default
[INFO] [stderr] help: to change the binary name to `rusty-game`, convert `package.name`
[INFO] [stderr]   --> Cargo.toml:6:8
[INFO] [stderr]    |
[INFO] [stderr]  6 - name = "rusty_game"
[INFO] [stderr]  6 + name = "rusty-game"
[INFO] [stderr]    |
[INFO] [stderr] help: to change the binary name to `rusty-game`, specify `bin.name`
[INFO] [stderr]   --> Cargo.toml:7:19
[INFO] [stderr]    |
[INFO] [stderr]  7 ~ version = "0.1.0"
[INFO] [stderr]  8 + [[bin]]
[INFO] [stderr]  9 + name = "rusty-game"
[INFO] [stderr] 10 + path = "src/main.rs"
[INFO] [stderr]    |
[INFO] [stderr] warning: `rusty_game` (manifest) generated 2 warnings
[INFO] [stderr]     Updating git repository `https://github.com/koute/stdweb`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded proc-macro2 v0.2.3
[INFO] [stderr]   Downloaded serde_json v1.0.22
[INFO] [stderr]   Downloaded quote v0.4.2
[INFO] [stderr]   Downloaded quote v0.6.3
[INFO] [stderr]   Downloaded syn v0.12.15
[INFO] [stderr]   Downloaded base-x v0.2.2
[INFO] [stderr]   Downloaded discard v1.0.3
[INFO] [stderr]   Downloaded dtoa v0.4.3
[INFO] [stderr]   Downloaded itoa v0.4.2
[INFO] [stderr]   Downloaded serde_derive v1.0.70
[INFO] [stderr]   Downloaded proc-macro2 v0.4.6
[INFO] [stderr]   Downloaded syn v0.14.4
[INFO] [stderr]   Downloaded serde v1.0.70
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] e3a6d4cd295cb64fb32a72e16ff7cd92ab88d96882e09307b020b938c69c9af3
[INFO] running `Command { std: "docker" "start" "e3a6d4cd295cb64fb32a72e16ff7cd92ab88d96882e09307b020b938c69c9af3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e3a6d4cd295cb64fb32a72e16ff7cd92ab88d96882e09307b020b938c69c9af3", 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" "e3a6d4cd295cb64fb32a72e16ff7cd92ab88d96882e09307b020b938c69c9af3" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e3a6d4cd295cb64fb32a72e16ff7cd92ab88d96882e09307b020b938c69c9af3", 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" "e3a6d4cd295cb64fb32a72e16ff7cd92ab88d96882e09307b020b938c69c9af3" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: binary `rusty_game` should have a kebab-case name
[INFO] [stderr]    |
[INFO] [stderr]  1 | /opt/rustwide/target/.../rusty_game
[INFO] [stderr]    |                          ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::non_kebab_case_bins` is set to `warn` by default
[INFO] [stderr] help: to change the binary name to `rusty-game`, convert `package.name`
[INFO] [stderr]   --> Cargo.toml:6:8
[INFO] [stderr]    |
[INFO] [stderr]  6 - name = "rusty_game"
[INFO] [stderr]  6 + name = "rusty-game"
[INFO] [stderr]    |
[INFO] [stderr] help: to change the binary name to `rusty-game`, specify `bin.name`
[INFO] [stderr]   --> Cargo.toml:7:19
[INFO] [stderr]    |
[INFO] [stderr]  7 ~ version = "0.1.0"
[INFO] [stderr]  8 + [[bin]]
[INFO] [stderr]  9 + name = "rusty-game"
[INFO] [stderr] 10 + path = "src/main.rs"
[INFO] [stderr]    |
[INFO] [stderr] warning: `rusty_game` (manifest) generated 2 warnings
[INFO] [stderr]    Compiling serde v1.0.70
[INFO] [stderr]    Compiling proc-macro2 v0.4.6
[INFO] [stderr]    Compiling proc-macro2 v0.2.3
[INFO] [stderr]     Checking dtoa v0.4.3
[INFO] [stderr]     Checking itoa v0.4.2
[INFO] [stderr]    Compiling stdweb v0.4.7 (https://github.com/koute/stdweb#85a191fb)
[INFO] [stderr]     Checking discard v1.0.3
[INFO] [stderr]    Compiling quote v0.6.3
[INFO] [stderr]    Compiling quote v0.4.2
[INFO] [stderr]    Compiling syn v0.14.4
[INFO] [stderr]    Compiling syn v0.12.15
[INFO] [stderr]    Compiling serde_derive v1.0.70
[INFO] [stderr]     Checking serde_json v1.0.22
[INFO] [stderr]    Compiling stdweb-derive v0.4.0 (https://github.com/koute/stdweb#85a191fb)
[INFO] [stderr]     Checking rusty_game v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::time::Instant`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::time::Instant;
[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 import: `std::time::Instant`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::time::Instant;
[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 import: `MouseMoveEvent`
[INFO] [stdout]   --> src/game.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     MouseMoveEvent,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MouseMoveEvent`
[INFO] [stdout]   --> src/game.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     MouseMoveEvent,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/game.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 |         console!(log, "{}", current_timestamp());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `_js_impl`
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: `#[warn(semicolon_in_expressions_from_non_local_macros)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `_js_impl` which comes from the expansion of the macro `console` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/game.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 |         console!(log, "{}", current_timestamp());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `_js_impl`
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `_js_impl` which comes from the expansion of the macro `console` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `constants::GAME_TICK`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use constants::GAME_TICK;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/game.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 |         console!(log, "{}", current_timestamp());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `_js_impl`
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: `#[warn(semicolon_in_expressions_from_non_local_macros)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `_js_impl` which comes from the expansion of the macro `console` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/game.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 |         console!(log, "{}", current_timestamp());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `_js_impl`
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `_js_impl` which comes from the expansion of the macro `console` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `constants::GAME_TICK`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use constants::GAME_TICK;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/game.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |             _ => {},
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/game.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |             Direction::Up => {self.head_y -= 1;},
[INFO] [stdout]    |             ------------- matches some of the same values
[INFO] [stdout] 86 |             Direction::Down => {self.head_y += 1;},
[INFO] [stdout]    |             --------------- matches some of the same values
[INFO] [stdout] 87 |             Direction::Left => {self.head_x -= 1;},
[INFO] [stdout]    |             --------------- matches some of the same values
[INFO] [stdout] 88 |             Direction::Right => {self.head_x += 1;},
[INFO] [stdout]    |             ---------------- matches some of the same values
[INFO] [stdout] 89 |             _ => {},
[INFO] [stdout]    |             ^ collectively making this unreachable
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/game.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |             _ => {},
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/game.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |             Direction::Up => {self.head_y -= 1;},
[INFO] [stdout]    |             ------------- matches some of the same values
[INFO] [stdout] 86 |             Direction::Down => {self.head_y += 1;},
[INFO] [stdout]    |             --------------- matches some of the same values
[INFO] [stdout] 87 |             Direction::Left => {self.head_x -= 1;},
[INFO] [stdout]    |             --------------- matches some of the same values
[INFO] [stdout] 88 |             Direction::Right => {self.head_x += 1;},
[INFO] [stdout]    |             ---------------- matches some of the same values
[INFO] [stdout] 89 |             _ => {},
[INFO] [stdout]    |             ^ collectively making this unreachable
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/draw.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |         _ => panic!("Internal error!!!"),
[INFO] [stdout]    |         ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/draw.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout]  8 |         &BoardCell::Snake => constants::OLIVE,
[INFO] [stdout]    |         ----------------- matches some of the same values
[INFO] [stdout]  9 |         &BoardCell::Apple => constants::RED,
[INFO] [stdout]    |         ----------------- matches some of the same values
[INFO] [stdout] 10 |         &BoardCell::Wall => constants::BLACK,
[INFO] [stdout]    |         ---------------- matches some of the same values
[INFO] [stdout] 11 |         &BoardCell::Blank => constants::SILVER,
[INFO] [stdout]    |         ----------------- matches some of the same values
[INFO] [stdout] 12 |         _ => panic!("Internal error!!!"),
[INFO] [stdout]    |         ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/draw.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |         _ => panic!("Internal error!!!"),
[INFO] [stdout]    |         ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/draw.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout]  8 |         &BoardCell::Snake => constants::OLIVE,
[INFO] [stdout]    |         ----------------- matches some of the same values
[INFO] [stdout]  9 |         &BoardCell::Apple => constants::RED,
[INFO] [stdout]    |         ----------------- matches some of the same values
[INFO] [stdout] 10 |         &BoardCell::Wall => constants::BLACK,
[INFO] [stdout]    |         ---------------- matches some of the same values
[INFO] [stdout] 11 |         &BoardCell::Blank => constants::SILVER,
[INFO] [stdout]    |         ----------------- matches some of the same values
[INFO] [stdout] 12 |         _ => panic!("Internal error!!!"),
[INFO] [stdout]    |         ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Apple` and `Wall` are never constructed
[INFO] [stdout]   --> src/game.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub enum BoardCell {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] 46 |     Snake,
[INFO] [stdout] 47 |     Apple,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 48 |     Wall,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BoardCell` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Down`, `Left`, and `Right` are never constructed
[INFO] [stdout]   --> src/game.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | enum Direction {
[INFO] [stdout]    |      --------- variants in this enum
[INFO] [stdout] 56 |     Up,
[INFO] [stdout] 57 |     Down,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 58 |     Left,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 59 |     Right,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Apple` and `Wall` are never constructed
[INFO] [stdout]   --> src/game.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub enum BoardCell {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] 46 |     Snake,
[INFO] [stdout] 47 |     Apple,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 48 |     Wall,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BoardCell` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `canvas` is never read
[INFO] [stdout]   --> src/game.rs:99:5
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub struct Game {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] 99 |     canvas: CanvasElement,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Down`, `Left`, and `Right` are never constructed
[INFO] [stdout]   --> src/game.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | enum Direction {
[INFO] [stdout]    |      --------- variants in this enum
[INFO] [stdout] 56 |     Up,
[INFO] [stdout] 57 |     Down,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 58 |     Left,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 59 |     Right,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `canvas` is never read
[INFO] [stdout]   --> src/game.rs:99:5
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub struct Game {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] 99 |     canvas: CanvasElement,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 16.51s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: rusty_game v0.1.0 (/opt/rustwide/workdir), stdweb v0.4.7 (https://github.com/koute/stdweb#85a191fb), syn v0.12.15, syn v0.14.4
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "e3a6d4cd295cb64fb32a72e16ff7cd92ab88d96882e09307b020b938c69c9af3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e3a6d4cd295cb64fb32a72e16ff7cd92ab88d96882e09307b020b938c69c9af3", kill_on_drop: false }`
[INFO] [stdout] e3a6d4cd295cb64fb32a72e16ff7cd92ab88d96882e09307b020b938c69c9af3
