[INFO] cloning repository https://github.com/LyricalToxic/rust-2048game
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/LyricalToxic/rust-2048game" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLyricalToxic%2Frust-2048game", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLyricalToxic%2Frust-2048game'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 201e1b986d82afb7881f6612e8f4599661e3f913
[INFO] checking LyricalToxic/rust-2048game against try#db4e1d23234d93b5e96ecc768b35d9090c32cddf for pr-149901
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLyricalToxic%2Frust-2048game" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/LyricalToxic/rust-2048game
[INFO] finished tweaking git repo https://github.com/LyricalToxic/rust-2048game
[INFO] tweaked toml for git repo https://github.com/LyricalToxic/rust-2048game written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/LyricalToxic/rust-2048game on toolchain db4e1d23234d93b5e96ecc768b35d9090c32cddf
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+db4e1d23234d93b5e96ecc768b35d9090c32cddf" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/LyricalToxic/rust-2048game 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" "+db4e1d23234d93b5e96ecc768b35d9090c32cddf" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] checking LyricalToxic/rust-2048game against try#db4e1d23234d93b5e96ecc768b35d9090c32cddf for pr-149901
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLyricalToxic%2Frust-2048game" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/LyricalToxic/rust-2048game
[INFO] finished tweaking git repo https://github.com/LyricalToxic/rust-2048game
[INFO] tweaked toml for git repo https://github.com/LyricalToxic/rust-2048game written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/LyricalToxic/rust-2048game on toolchain db4e1d23234d93b5e96ecc768b35d9090c32cddf
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+db4e1d23234d93b5e96ecc768b35d9090c32cddf" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/LyricalToxic/rust-2048game 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" "+db4e1d23234d93b5e96ecc768b35d9090c32cddf" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded piston v0.54.0
[INFO] [stderr]   Downloaded pistoncore-sdl2_window v0.69.0
[INFO] [stderr]   Downloaded piston_window v0.130.0
[INFO] [stderr]   Downloaded piston2d-opengl_graphics v0.83.0
[INFO] [stderr]   Downloaded pistoncore-event_loop v0.54.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db4e1d23234d93b5e96ecc768b35d9090c32cddf" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 813c17d078dd71a67691e2a4ab1c03aa9954b4fbae62ce537294794a632b5f63
[INFO] running `Command { std: "docker" "start" "-a" "813c17d078dd71a67691e2a4ab1c03aa9954b4fbae62ce537294794a632b5f63", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "813c17d078dd71a67691e2a4ab1c03aa9954b4fbae62ce537294794a632b5f63", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "813c17d078dd71a67691e2a4ab1c03aa9954b4fbae62ce537294794a632b5f63", kill_on_drop: false }`
[INFO] [stdout] 813c17d078dd71a67691e2a4ab1c03aa9954b4fbae62ce537294794a632b5f63
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db4e1d23234d93b5e96ecc768b35d9090c32cddf" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9784fafa96baec52c44aeb57940df1e34935773c5e5c74491cd20b46723269c9
[INFO] running `Command { std: "docker" "start" "-a" "9784fafa96baec52c44aeb57940df1e34935773c5e5c74491cd20b46723269c9", kill_on_drop: false }`
[INFO] [stderr]    Compiling xml-rs v0.8.19
[INFO] [stderr]    Compiling proc-macro2 v1.0.69
[INFO] [stderr]    Compiling libc v0.2.149
[INFO] [stderr]     Checking miniz_oxide v0.7.1
[INFO] [stderr]     Checking libloading v0.8.1
[INFO] [stderr]    Compiling wayland-sys v0.29.5
[INFO] [stderr]     Checking bytemuck v1.14.0
[INFO] [stderr]     Checking piston-float v1.0.1
[INFO] [stderr]     Checking fdeflate v0.3.0
[INFO] [stderr]     Checking memchr v2.6.4
[INFO] [stderr]    Compiling thiserror v1.0.50
[INFO] [stderr]     Checking piston-graphics_api_version v1.0.1
[INFO] [stderr]    Compiling serde v1.0.190
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]    Compiling smithay-client-toolkit v0.16.1
[INFO] [stderr]     Checking piston-viewport v1.0.2
[INFO] [stderr]     Checking ttf-parser v0.19.2
[INFO] [stderr]     Checking dlib v0.5.2
[INFO] [stderr]     Checking num-integer v0.1.45
[INFO] [stderr]     Checking flume v0.11.0
[INFO] [stderr]     Checking jpeg-decoder v0.3.0
[INFO] [stderr]     Checking draw_state v0.8.0
[INFO] [stderr]     Checking tiny-skia-path v0.8.4
[INFO] [stderr]    Compiling wayland-sys v0.30.1
[INFO] [stderr]     Checking ttf-parser v0.15.2
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]     Checking shader_version v0.7.0
[INFO] [stderr]    Compiling glutin v0.30.10
[INFO] [stderr]     Checking gfx_core v0.9.2
[INFO] [stderr]     Checking flate2 v1.0.28
[INFO] [stderr]     Checking exr v1.71.0
[INFO] [stderr]     Checking num-rational v0.4.1
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking piston-texture v0.9.0
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]    Compiling gl_generator v0.13.1
[INFO] [stderr]     Checking vecmath v1.0.0
[INFO] [stderr]    Compiling glutin-winit v0.3.0
[INFO] [stderr]    Compiling quote v1.0.33
[INFO] [stderr]     Checking png v0.17.10
[INFO] [stderr]     Checking tiff v0.9.0
[INFO] [stderr]     Checking read_color v1.0.0
[INFO] [stderr]     Checking interpolation v0.3.0
[INFO] [stderr]     Checking spin_sleep v1.1.1
[INFO] [stderr]     Checking piston-shaders_graphics2d v0.4.0
[INFO] [stderr]    Compiling wayland-scanner v0.29.5
[INFO] [stderr]    Compiling syn v2.0.38
[INFO] [stderr]    Compiling glutin_glx_sys v0.4.0
[INFO] [stderr]    Compiling glutin_egl_sys v0.5.1
[INFO] [stderr]    Compiling gfx_gl v0.6.1
[INFO] [stderr]     Checking nix v0.24.3
[INFO] [stderr]     Checking nix v0.25.1
[INFO] [stderr]     Checking memmap2 v0.5.10
[INFO] [stderr]    Compiling gl v0.13.0
[INFO] [stderr]     Checking mio v0.8.9
[INFO] [stderr]     Checking tiny-skia v0.8.4
[INFO] [stderr]     Checking xcursor v0.3.4
[INFO] [stderr]     Checking gfx v0.18.3
[INFO] [stderr]     Checking getrandom v0.2.10
[INFO] [stderr]    Compiling wayland-client v0.29.5
[INFO] [stderr]    Compiling wayland-protocols v0.29.5
[INFO] [stderr]     Checking owned_ttf_parser v0.19.0
[INFO] [stderr]    Compiling winit v0.28.7
[INFO] [stderr]     Checking ab_glyph v0.2.22
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking owned_ttf_parser v0.15.2
[INFO] [stderr]     Checking sdl2-sys v0.35.2
[INFO] [stderr]     Checking rusttype v0.9.3
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking piston2d-graphics v0.44.0
[INFO] [stderr]     Checking wayland-commons v0.29.5
[INFO] [stderr]     Checking image v0.24.7
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking sdl2 v0.35.2
[INFO] [stderr]    Compiling thiserror-impl v1.0.50
[INFO] [stderr]    Compiling serde_derive v1.0.190
[INFO] [stderr]     Checking wayland-cursor v0.29.5
[INFO] [stderr]     Checking gfx_device_gl v0.16.2
[INFO] [stderr]     Checking calloop v0.10.6
[INFO] [stderr]     Checking piston-gfx_texture v0.44.0
[INFO] [stderr]     Checking piston2d-opengl_graphics v0.83.0
[INFO] [stderr]     Checking piston2d-gfx_graphics v0.80.0
[INFO] [stderr]     Checking pistoncore-input v1.0.1
[INFO] [stderr]     Checking pistoncore-window v1.0.0
[INFO] [stderr]     Checking pistoncore-event_loop v0.54.0
[INFO] [stderr]     Checking pistoncore-sdl2_window v0.69.0
[INFO] [stderr]     Checking piston v0.54.0
[INFO] [stderr]     Checking sctk-adwaita v0.5.4
[INFO] [stderr]     Checking pistoncore-glutin_window v0.72.0
[INFO] [stderr]     Checking piston_window v0.130.0
[INFO] [stderr]     Checking game2048 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0425]: cannot find value `index` in this scope
[INFO] [stdout]   --> src/grid_cell/grid_cell.rs:34:20
[INFO] [stdout]    |
[INFO] [stdout] 34 |         self.cells[index] = new_cell;
[INFO] [stdout]    |                    ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `row` in this scope
[INFO] [stdout]   --> src/layout/layout.rs:87:32
[INFO] [stdout]    |
[INFO] [stdout] 87 |                 self.move_cell(row, col, row, col + 1);
[INFO] [stdout]    |                                ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `col` in this scope
[INFO] [stdout]   --> src/layout/layout.rs:87:37
[INFO] [stdout]    |
[INFO] [stdout] 87 |                 self.move_cell(row, col, row, col + 1);
[INFO] [stdout]    |                                     ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `row` in this scope
[INFO] [stdout]   --> src/layout/layout.rs:87:42
[INFO] [stdout]    |
[INFO] [stdout] 87 |                 self.move_cell(row, col, row, col + 1);
[INFO] [stdout]    |                                          ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `col` in this scope
[INFO] [stdout]   --> src/layout/layout.rs:87:47
[INFO] [stdout]    |
[INFO] [stdout] 87 |                 self.move_cell(row, col, row, col + 1);
[INFO] [stdout]    |                                               ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `inherent_associated_types` is incomplete and may not be safe to use and/or cause compiler crashes
[INFO] [stdout]  --> src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(inherent_associated_types)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: see issue #8995 <https://github.com/rust-lang/rust/issues/8995> for more information
[INFO] [stdout]   = note: `#[warn(incomplete_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/lib.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::HashMap;
[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: `Line` and `clear`
[INFO] [stdout]  --> src/lib.rs:6:32
[INFO] [stdout]   |
[INFO] [stdout] 6 | use graphics::{CharacterCache, clear, Context, Graphics, Line, rectangle, Text};
[INFO] [stdout]   |                                ^^^^^                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GREEN`
[INFO] [stdout]  --> src/lib.rs:7:30
[INFO] [stdout]   |
[INFO] [stdout] 7 | use graphics::color::{BLACK, GREEN, WHITE};
[INFO] [stdout]   |                              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `graphics::grid::Grid`
[INFO] [stdout]  --> src/lib.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use graphics::grid::Grid;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `graphics::line::Shape`
[INFO] [stdout]  --> src/lib.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use graphics::line::Shape;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GlGraphics` and `OpenGL`
[INFO] [stdout]   --> src/lib.rs:11:23
[INFO] [stdout]    |
[INFO] [stdout] 11 | use opengl_graphics::{GlGraphics, OpenGL};
[INFO] [stdout]    |                       ^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `opengl_graphics::GlyphCache`
[INFO] [stdout]   --> src/lib.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use opengl_graphics::GlyphCache;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ButtonState` and `Button`
[INFO] [stdout]   --> src/lib.rs:13:14
[INFO] [stdout]    |
[INFO] [stdout] 13 | use piston::{Button, ButtonState};
[INFO] [stdout]    |              ^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ButtonArgs`, `RenderArgs`, and `UpdateArgs`
[INFO] [stdout]   --> src/lib.rs:14:21
[INFO] [stdout]    |
[INFO] [stdout] 14 | use piston::input::{ButtonArgs, RenderArgs, UpdateArgs};
[INFO] [stdout]    |                     ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `piston::Key`
[INFO] [stdout]   --> src/lib.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use piston::Key;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `piston_window::prelude::*`
[INFO] [stdout]   --> src/lib.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use piston_window::prelude::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Rng`, `random`, and `thread_rng`
[INFO] [stdout]   --> src/lib.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | use rand::{random, Rng, thread_rng};
[INFO] [stdout]    |            ^^^^^^  ^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `game_field::game_field::GameField`
[INFO] [stdout]   --> src/lib.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use game_field::game_field::GameField;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `index` in this scope
[INFO] [stdout]   --> src/grid_cell/grid_cell.rs:34:20
[INFO] [stdout]    |
[INFO] [stdout] 34 |         self.cells[index] = new_cell;
[INFO] [stdout]    |                    ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `row` in this scope
[INFO] [stdout]   --> src/layout/layout.rs:87:32
[INFO] [stdout]    |
[INFO] [stdout] 87 |                 self.move_cell(row, col, row, col + 1);
[INFO] [stdout]    |                                ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `col` in this scope
[INFO] [stdout]   --> src/layout/layout.rs:87:37
[INFO] [stdout]    |
[INFO] [stdout] 87 |                 self.move_cell(row, col, row, col + 1);
[INFO] [stdout]    |                                     ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `row` in this scope
[INFO] [stdout]   --> src/layout/layout.rs:87:42
[INFO] [stdout]    |
[INFO] [stdout] 87 |                 self.move_cell(row, col, row, col + 1);
[INFO] [stdout]    |                                          ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `col` in this scope
[INFO] [stdout]   --> src/layout/layout.rs:87:47
[INFO] [stdout]    |
[INFO] [stdout] 87 |                 self.move_cell(row, col, row, col + 1);
[INFO] [stdout]    |                                               ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `inherent_associated_types` is incomplete and may not be safe to use and/or cause compiler crashes
[INFO] [stdout]  --> src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(inherent_associated_types)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: see issue #8995 <https://github.com/rust-lang/rust/issues/8995> for more information
[INFO] [stdout]   = note: `#[warn(incomplete_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/lib.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::HashMap;
[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: `Line` and `clear`
[INFO] [stdout]  --> src/lib.rs:6:32
[INFO] [stdout]   |
[INFO] [stdout] 6 | use graphics::{CharacterCache, clear, Context, Graphics, Line, rectangle, Text};
[INFO] [stdout]   |                                ^^^^^                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GREEN`
[INFO] [stdout]  --> src/lib.rs:7:30
[INFO] [stdout]   |
[INFO] [stdout] 7 | use graphics::color::{BLACK, GREEN, WHITE};
[INFO] [stdout]   |                              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `graphics::grid::Grid`
[INFO] [stdout]  --> src/lib.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use graphics::grid::Grid;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `graphics::line::Shape`
[INFO] [stdout]  --> src/lib.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use graphics::line::Shape;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GlGraphics` and `OpenGL`
[INFO] [stdout]   --> src/lib.rs:11:23
[INFO] [stdout]    |
[INFO] [stdout] 11 | use opengl_graphics::{GlGraphics, OpenGL};
[INFO] [stdout]    |                       ^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `opengl_graphics::GlyphCache`
[INFO] [stdout]   --> src/lib.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use opengl_graphics::GlyphCache;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ButtonState` and `Button`
[INFO] [stdout]   --> src/lib.rs:13:14
[INFO] [stdout]    |
[INFO] [stdout] 13 | use piston::{Button, ButtonState};
[INFO] [stdout]    |              ^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ButtonArgs`, `RenderArgs`, and `UpdateArgs`
[INFO] [stdout]   --> src/lib.rs:14:21
[INFO] [stdout]    |
[INFO] [stdout] 14 | use piston::input::{ButtonArgs, RenderArgs, UpdateArgs};
[INFO] [stdout]    |                     ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `piston::Key`
[INFO] [stdout]   --> src/lib.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use piston::Key;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `piston_window::prelude::*`
[INFO] [stdout]   --> src/lib.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use piston_window::prelude::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Rng`, `random`, and `thread_rng`
[INFO] [stdout]   --> src/lib.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | use rand::{random, Rng, thread_rng};
[INFO] [stdout]    |            ^^^^^^  ^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `game_field::game_field::GameField`
[INFO] [stdout]   --> src/lib.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use game_field::game_field::GameField;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: a value of type `std::slice::Iter<'_, game_cell::Cell2048>` cannot be built from an iterator over elements of type `&game_cell::Cell2048`
[INFO] [stdout]   --> src/grid_cell/grid_cell.rs:42:46
[INFO] [stdout]    |
[INFO] [stdout] 42 |         self.cells.iter().flat_map(|row|row).collect()
[INFO] [stdout]    |                                              ^^^^^^^ value of type `std::slice::Iter<'_, game_cell::Cell2048>` cannot be built from `std::iter::Iterator<Item=&game_cell::Cell2048>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromIterator<&game_cell::Cell2048>` is not implemented for `std::slice::Iter<'_, game_cell::Cell2048>`
[INFO] [stdout] note: the method call chain might not have had the expected associated types
[INFO] [stdout]   --> src/grid_cell/grid_cell.rs:42:27
[INFO] [stdout]    |
[INFO] [stdout] 42 |         self.cells.iter().flat_map(|row|row).collect()
[INFO] [stdout]    |         ---------- ------ ^^^^^^^^^^^^^^^^^^ `Iterator::Item` changed to `&Cell2048` here
[INFO] [stdout]    |         |          |
[INFO] [stdout]    |         |          `Iterator::Item` is `&Vec<Cell2048>` here
[INFO] [stdout]    |         this expression has type `Vec<Vec<Cell2048>>`
[INFO] [stdout] note: required by a bound in `collect`
[INFO] [stdout]   --> /rustc/db4e1d23234d93b5e96ecc768b35d9090c32cddf/library/core/src/iter/traits/iterator.rs:2015:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: a value of type `std::slice::Iter<'_, game_cell::Cell2048>` cannot be built from an iterator over elements of type `&game_cell::Cell2048`
[INFO] [stdout]   --> src/grid_cell/grid_cell.rs:42:46
[INFO] [stdout]    |
[INFO] [stdout] 42 |         self.cells.iter().flat_map(|row|row).collect()
[INFO] [stdout]    |                                              ^^^^^^^ value of type `std::slice::Iter<'_, game_cell::Cell2048>` cannot be built from `std::iter::Iterator<Item=&game_cell::Cell2048>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromIterator<&game_cell::Cell2048>` is not implemented for `std::slice::Iter<'_, game_cell::Cell2048>`
[INFO] [stdout] note: the method call chain might not have had the expected associated types
[INFO] [stdout]   --> src/grid_cell/grid_cell.rs:42:27
[INFO] [stdout]    |
[INFO] [stdout] 42 |         self.cells.iter().flat_map(|row|row).collect()
[INFO] [stdout]    |         ---------- ------ ^^^^^^^^^^^^^^^^^^ `Iterator::Item` changed to `&Cell2048` here
[INFO] [stdout]    |         |          |
[INFO] [stdout]    |         |          `Iterator::Item` is `&Vec<Cell2048>` here
[INFO] [stdout]    |         this expression has type `Vec<Vec<Cell2048>>`
[INFO] [stdout] note: required by a bound in `collect`
[INFO] [stdout]   --> /rustc/db4e1d23234d93b5e96ecc768b35d9090c32cddf/library/core/src/iter/traits/iterator.rs:2015:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 1 argument was supplied
[INFO] [stdout]   --> src/layout/layout.rs:59:24
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let new_cell = Cell2048::new(&String::from(value));
[INFO] [stdout]    |                        ^^^^^^^^^^^^^---------------------- two arguments of type `u32` and `u32` are missing
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/game_cell.rs:15:19
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub(crate) fn new(value: &str, row: u32, col: u32) -> Self {
[INFO] [stdout]    |                   ^^^              --------  --------
[INFO] [stdout] help: provide the arguments
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let new_cell = Cell2048::new(&String::from(value), /* u32 */, /* u32 */);
[INFO] [stdout]    |                                                          ++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 1 argument was supplied
[INFO] [stdout]   --> src/layout/layout.rs:59:24
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let new_cell = Cell2048::new(&String::from(value));
[INFO] [stdout]    |                        ^^^^^^^^^^^^^---------------------- two arguments of type `u32` and `u32` are missing
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/game_cell.rs:15:19
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub(crate) fn new(value: &str, row: u32, col: u32) -> Self {
[INFO] [stdout]    |                   ^^^              --------  --------
[INFO] [stdout] help: provide the arguments
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let new_cell = Cell2048::new(&String::from(value), /* u32 */, /* u32 */);
[INFO] [stdout]    |                                                          ++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 3 arguments but 2 arguments were supplied
[INFO] [stdout]   --> src/layout/layout.rs:63:20
[INFO] [stdout]    |
[INFO] [stdout] 63 |         self.cells.insert(chosen_cell_index, new_cell);
[INFO] [stdout]    |                    ^^^^^^                    -------- argument #2 of type `usize` is missing
[INFO] [stdout]    |
[INFO] [stdout] note: expected `usize`, found `(usize, usize)`
[INFO] [stdout]   --> src/layout/layout.rs:63:27
[INFO] [stdout]    |
[INFO] [stdout] 63 |         self.cells.insert(chosen_cell_index, new_cell);
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: expected type `usize`
[INFO] [stdout]              found tuple `(usize, usize)`
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> src/grid_cell/grid_cell.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn insert(&self, row: usize, col:usize, new_cell: Cell2048) {
[INFO] [stdout]    |            ^^^^^^        ----------  ---------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]    |
[INFO] [stdout] 63 -         self.cells.insert(chosen_cell_index, new_cell);
[INFO] [stdout] 63 +         self.cells.insert(/* usize */, /* usize */, new_cell);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/layout/layout.rs:64:54
[INFO] [stdout]    |
[INFO] [stdout] 64 |         let (row, col) = self.cells.index_to_row_col(chosen_cell_index);
[INFO] [stdout]    |                                     ---------------- ^^^^^^^^^^^^^^^^^ expected `usize`, found `(usize, usize)`
[INFO] [stdout]    |                                     |
[INFO] [stdout]    |                                     arguments to this method are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected type `usize`
[INFO] [stdout]              found tuple `(usize, usize)`
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> src/grid_cell/grid_cell.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn index_to_row_col(&self, index: usize) -> (u32, u32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^        ------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 3 arguments but 2 arguments were supplied
[INFO] [stdout]   --> src/layout/layout.rs:63:20
[INFO] [stdout]    |
[INFO] [stdout] 63 |         self.cells.insert(chosen_cell_index, new_cell);
[INFO] [stdout]    |                    ^^^^^^                    -------- argument #2 of type `usize` is missing
[INFO] [stdout]    |
[INFO] [stdout] note: expected `usize`, found `(usize, usize)`
[INFO] [stdout]   --> src/layout/layout.rs:63:27
[INFO] [stdout]    |
[INFO] [stdout] 63 |         self.cells.insert(chosen_cell_index, new_cell);
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: expected type `usize`
[INFO] [stdout]              found tuple `(usize, usize)`
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> src/grid_cell/grid_cell.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn insert(&self, row: usize, col:usize, new_cell: Cell2048) {
[INFO] [stdout]    |            ^^^^^^        ----------  ---------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]    |
[INFO] [stdout] 63 -         self.cells.insert(chosen_cell_index, new_cell);
[INFO] [stdout] 63 +         self.cells.insert(/* usize */, /* usize */, new_cell);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/layout/layout.rs:64:54
[INFO] [stdout]    |
[INFO] [stdout] 64 |         let (row, col) = self.cells.index_to_row_col(chosen_cell_index);
[INFO] [stdout]    |                                     ---------------- ^^^^^^^^^^^^^^^^^ expected `usize`, found `(usize, usize)`
[INFO] [stdout]    |                                     |
[INFO] [stdout]    |                                     arguments to this method are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected type `usize`
[INFO] [stdout]              found tuple `(usize, usize)`
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> src/grid_cell/grid_cell.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn index_to_row_col(&self, index: usize) -> (u32, u32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^        ------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get` found for struct `GridCell2048` in the current scope
[INFO] [stdout]    --> src/layout/layout.rs:134:39
[INFO] [stdout]     |
[INFO] [stdout] 134 |         let current_cell = self.cells.get(&(current_row, current_col)).unwrap().clone();
[INFO] [stdout]     |                                       ^^^ method not found in `GridCell2048`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/grid_cell/grid_cell.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub struct GridCell2048 {
[INFO] [stdout]     | ----------------------- method `get` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following traits define an item `get`, perhaps you need to implement one of them:
[INFO] [stdout]             candidate #1: `SliceIndex`
[INFO] [stdout]             candidate #2: `nix::sys::socket::GetSockOpt`
[INFO] [stdout]             candidate #3: `nix::sys::socket::GetSockOpt`
[INFO] [stdout]             candidate #4: `smithay_client_toolkit::environment::GlobalHandler`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_mut` found for struct `GridCell2048` in the current scope
[INFO] [stdout]    --> src/layout/layout.rs:135:36
[INFO] [stdout]     |
[INFO] [stdout] 135 |         let next_cell = self.cells.get_mut(&(next_row, next_col)).unwrap().clone();
[INFO] [stdout]     |                                    ^^^^^^^ method not found in `GridCell2048`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/grid_cell/grid_cell.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub struct GridCell2048 {
[INFO] [stdout]     | ----------------------- method `get_mut` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following trait defines an item `get_mut`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `SliceIndex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/layout/layout.rs:138:59
[INFO] [stdout]     |
[INFO] [stdout] 138 |             self.cells.insert((current_row, current_col), Cell2048::new(&String::from("")));
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^------------------- two arguments of type `u32` and `u32` are missing
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/game_cell.rs:15:19
[INFO] [stdout]     |
[INFO] [stdout]  15 |     pub(crate) fn new(value: &str, row: u32, col: u32) -> Self {
[INFO] [stdout]     |                   ^^^              --------  --------
[INFO] [stdout] help: provide the arguments
[INFO] [stdout]     |
[INFO] [stdout] 138 |             self.cells.insert((current_row, current_col), Cell2048::new(&String::from(""), /* u32 */, /* u32 */));
[INFO] [stdout]     |                                                                                          ++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get` found for struct `GridCell2048` in the current scope
[INFO] [stdout]    --> src/layout/layout.rs:134:39
[INFO] [stdout]     |
[INFO] [stdout] 134 |         let current_cell = self.cells.get(&(current_row, current_col)).unwrap().clone();
[INFO] [stdout]     |                                       ^^^ method not found in `GridCell2048`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/grid_cell/grid_cell.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub struct GridCell2048 {
[INFO] [stdout]     | ----------------------- method `get` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following traits define an item `get`, perhaps you need to implement one of them:
[INFO] [stdout]             candidate #1: `SliceIndex`
[INFO] [stdout]             candidate #2: `nix::sys::socket::GetSockOpt`
[INFO] [stdout]             candidate #3: `nix::sys::socket::GetSockOpt`
[INFO] [stdout]             candidate #4: `smithay_client_toolkit::environment::GlobalHandler`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 3 arguments but 2 arguments were supplied
[INFO] [stdout]    --> src/layout/layout.rs:138:24
[INFO] [stdout]     |
[INFO] [stdout] 138 |             self.cells.insert((current_row, current_col), Cell2048::new(&String::from("")));
[INFO] [stdout]     |                        ^^^^^^                             -------------------------------- argument #2 of type `usize` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: expected `usize`, found `(u32, u32)`
[INFO] [stdout]    --> src/layout/layout.rs:138:31
[INFO] [stdout]     |
[INFO] [stdout] 138 |             self.cells.insert((current_row, current_col), Cell2048::new(&String::from("")));
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: expected type `usize`
[INFO] [stdout]               found tuple `(u32, u32)`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/grid_cell/grid_cell.rs:33:12
[INFO] [stdout]     |
[INFO] [stdout]  33 |     pub fn insert(&self, row: usize, col:usize, new_cell: Cell2048) {
[INFO] [stdout]     |            ^^^^^^        ----------  ---------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 138 -             self.cells.insert((current_row, current_col), Cell2048::new(&String::from("")));
[INFO] [stdout] 138 +             self.cells.insert(/* usize */, /* usize */, Cell2048::new(&String::from("")));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/layout/layout.rs:139:53
[INFO] [stdout]     |
[INFO] [stdout] 139 |             self.cells.insert((next_row, next_col), Cell2048::new(&sum.to_string()));
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^------------------ two arguments of type `u32` and `u32` are missing
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/game_cell.rs:15:19
[INFO] [stdout]     |
[INFO] [stdout]  15 |     pub(crate) fn new(value: &str, row: u32, col: u32) -> Self {
[INFO] [stdout]     |                   ^^^              --------  --------
[INFO] [stdout] help: provide the arguments
[INFO] [stdout]     |
[INFO] [stdout] 139 |             self.cells.insert((next_row, next_col), Cell2048::new(&sum.to_string(), /* u32 */, /* u32 */));
[INFO] [stdout]     |                                                                                   ++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 3 arguments but 2 arguments were supplied
[INFO] [stdout]    --> src/layout/layout.rs:139:24
[INFO] [stdout]     |
[INFO] [stdout] 139 |             self.cells.insert((next_row, next_col), Cell2048::new(&sum.to_string()));
[INFO] [stdout]     |                        ^^^^^^                       ------------------------------- argument #2 of type `usize` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: expected `usize`, found `(u32, u32)`
[INFO] [stdout]    --> src/layout/layout.rs:139:31
[INFO] [stdout]     |
[INFO] [stdout] 139 |             self.cells.insert((next_row, next_col), Cell2048::new(&sum.to_string()));
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: expected type `usize`
[INFO] [stdout]               found tuple `(u32, u32)`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/grid_cell/grid_cell.rs:33:12
[INFO] [stdout]     |
[INFO] [stdout]  33 |     pub fn insert(&self, row: usize, col:usize, new_cell: Cell2048) {
[INFO] [stdout]     |            ^^^^^^        ----------  ---------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 139 -             self.cells.insert((next_row, next_col), Cell2048::new(&sum.to_string()));
[INFO] [stdout] 139 +             self.cells.insert(/* usize */, /* usize */, Cell2048::new(&sum.to_string()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/layout/layout.rs:141:59
[INFO] [stdout]     |
[INFO] [stdout] 141 |             self.cells.insert((current_row, current_col), Cell2048::new(&String::from("")));
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^------------------- two arguments of type `u32` and `u32` are missing
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/game_cell.rs:15:19
[INFO] [stdout]     |
[INFO] [stdout]  15 |     pub(crate) fn new(value: &str, row: u32, col: u32) -> Self {
[INFO] [stdout]     |                   ^^^              --------  --------
[INFO] [stdout] help: provide the arguments
[INFO] [stdout]     |
[INFO] [stdout] 141 |             self.cells.insert((current_row, current_col), Cell2048::new(&String::from(""), /* u32 */, /* u32 */));
[INFO] [stdout]     |                                                                                          ++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_mut` found for struct `GridCell2048` in the current scope
[INFO] [stdout]    --> src/layout/layout.rs:135:36
[INFO] [stdout]     |
[INFO] [stdout] 135 |         let next_cell = self.cells.get_mut(&(next_row, next_col)).unwrap().clone();
[INFO] [stdout]     |                                    ^^^^^^^ method not found in `GridCell2048`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/grid_cell/grid_cell.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub struct GridCell2048 {
[INFO] [stdout]     | ----------------------- method `get_mut` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following trait defines an item `get_mut`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `SliceIndex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/layout/layout.rs:138:59
[INFO] [stdout]     |
[INFO] [stdout] 138 |             self.cells.insert((current_row, current_col), Cell2048::new(&String::from("")));
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^------------------- two arguments of type `u32` and `u32` are missing
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/game_cell.rs:15:19
[INFO] [stdout]     |
[INFO] [stdout]  15 |     pub(crate) fn new(value: &str, row: u32, col: u32) -> Self {
[INFO] [stdout]     |                   ^^^              --------  --------
[INFO] [stdout] help: provide the arguments
[INFO] [stdout]     |
[INFO] [stdout] 138 |             self.cells.insert((current_row, current_col), Cell2048::new(&String::from(""), /* u32 */, /* u32 */));
[INFO] [stdout]     |                                                                                          ++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 3 arguments but 2 arguments were supplied
[INFO] [stdout]    --> src/layout/layout.rs:141:24
[INFO] [stdout]     |
[INFO] [stdout] 141 |             self.cells.insert((current_row, current_col), Cell2048::new(&String::from("")));
[INFO] [stdout]     |                        ^^^^^^                             -------------------------------- argument #2 of type `usize` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: expected `usize`, found `(u32, u32)`
[INFO] [stdout]    --> src/layout/layout.rs:141:31
[INFO] [stdout]     |
[INFO] [stdout] 141 |             self.cells.insert((current_row, current_col), Cell2048::new(&String::from("")));
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: expected type `usize`
[INFO] [stdout]               found tuple `(u32, u32)`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/grid_cell/grid_cell.rs:33:12
[INFO] [stdout]     |
[INFO] [stdout]  33 |     pub fn insert(&self, row: usize, col:usize, new_cell: Cell2048) {
[INFO] [stdout]     |            ^^^^^^        ----------  ---------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 141 -             self.cells.insert((current_row, current_col), Cell2048::new(&String::from("")));
[INFO] [stdout] 141 +             self.cells.insert(/* usize */, /* usize */, Cell2048::new(&String::from("")));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/layout/layout.rs:142:53
[INFO] [stdout]     |
[INFO] [stdout] 142 |             self.cells.insert((next_row, next_col), Cell2048::new(&current_cell.value.clone()));
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^----------------------------- two arguments of type `u32` and `u32` are missing
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/game_cell.rs:15:19
[INFO] [stdout]     |
[INFO] [stdout]  15 |     pub(crate) fn new(value: &str, row: u32, col: u32) -> Self {
[INFO] [stdout]     |                   ^^^              --------  --------
[INFO] [stdout] help: provide the arguments
[INFO] [stdout]     |
[INFO] [stdout] 142 |             self.cells.insert((next_row, next_col), Cell2048::new(&current_cell.value.clone(), /* u32 */, /* u32 */));
[INFO] [stdout]     |                                                                                              ++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 3 arguments but 2 arguments were supplied
[INFO] [stdout]    --> src/layout/layout.rs:138:24
[INFO] [stdout]     |
[INFO] [stdout] 138 |             self.cells.insert((current_row, current_col), Cell2048::new(&String::from("")));
[INFO] [stdout]     |                        ^^^^^^                             -------------------------------- argument #2 of type `usize` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: expected `usize`, found `(u32, u32)`
[INFO] [stdout]    --> src/layout/layout.rs:138:31
[INFO] [stdout]     |
[INFO] [stdout] 138 |             self.cells.insert((current_row, current_col), Cell2048::new(&String::from("")));
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: expected type `usize`
[INFO] [stdout]               found tuple `(u32, u32)`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/grid_cell/grid_cell.rs:33:12
[INFO] [stdout]     |
[INFO] [stdout]  33 |     pub fn insert(&self, row: usize, col:usize, new_cell: Cell2048) {
[INFO] [stdout]     |            ^^^^^^        ----------  ---------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 138 -             self.cells.insert((current_row, current_col), Cell2048::new(&String::from("")));
[INFO] [stdout] 138 +             self.cells.insert(/* usize */, /* usize */, Cell2048::new(&String::from("")));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/layout/layout.rs:139:53
[INFO] [stdout]     |
[INFO] [stdout] 139 |             self.cells.insert((next_row, next_col), Cell2048::new(&sum.to_string()));
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^------------------ two arguments of type `u32` and `u32` are missing
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/game_cell.rs:15:19
[INFO] [stdout]     |
[INFO] [stdout]  15 |     pub(crate) fn new(value: &str, row: u32, col: u32) -> Self {
[INFO] [stdout]     |                   ^^^              --------  --------
[INFO] [stdout] help: provide the arguments
[INFO] [stdout]     |
[INFO] [stdout] 139 |             self.cells.insert((next_row, next_col), Cell2048::new(&sum.to_string(), /* u32 */, /* u32 */));
[INFO] [stdout]     |                                                                                   ++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 3 arguments but 2 arguments were supplied
[INFO] [stdout]    --> src/layout/layout.rs:142:24
[INFO] [stdout]     |
[INFO] [stdout] 142 |             self.cells.insert((next_row, next_col), Cell2048::new(&current_cell.value.clone()));
[INFO] [stdout]     |                        ^^^^^^                       ------------------------------------------ argument #2 of type `usize` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: expected `usize`, found `(u32, u32)`
[INFO] [stdout]    --> src/layout/layout.rs:142:31
[INFO] [stdout]     |
[INFO] [stdout] 142 |             self.cells.insert((next_row, next_col), Cell2048::new(&current_cell.value.clone()));
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: expected type `usize`
[INFO] [stdout]               found tuple `(u32, u32)`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/grid_cell/grid_cell.rs:33:12
[INFO] [stdout]     |
[INFO] [stdout]  33 |     pub fn insert(&self, row: usize, col:usize, new_cell: Cell2048) {
[INFO] [stdout]     |            ^^^^^^        ----------  ---------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 142 -             self.cells.insert((next_row, next_col), Cell2048::new(&current_cell.value.clone()));
[INFO] [stdout] 142 +             self.cells.insert(/* usize */, /* usize */, Cell2048::new(&current_cell.value.clone()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/layout/layout.rs:146:13
[INFO] [stdout]     |
[INFO] [stdout] 146 |         for (pos, cell) in self.cells.iter() {
[INFO] [stdout]     |             ^^^^^^^^^^^    ----------------- this is an iterator with items of type `&game_cell::Cell2048`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             expected `Cell2048`, found `(_, _)`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `game_cell::Cell2048`
[INFO] [stdout]                 found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/layout/layout.rs:151:33
[INFO] [stdout]     |
[INFO] [stdout] 151 |         !self.cells.iter().any(|(_pos, cell)| {
[INFO] [stdout]     |                                 ^^^^^^^^^^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 expected `Cell2048`, found `(_, _)`
[INFO] [stdout]     |                                 expected due to this
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `game_cell::Cell2048`
[INFO] [stdout]                 found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 3 arguments but 2 arguments were supplied
[INFO] [stdout]    --> src/layout/layout.rs:139:24
[INFO] [stdout]     |
[INFO] [stdout] 139 |             self.cells.insert((next_row, next_col), Cell2048::new(&sum.to_string()));
[INFO] [stdout]     |                        ^^^^^^                       ------------------------------- argument #2 of type `usize` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: expected `usize`, found `(u32, u32)`
[INFO] [stdout]    --> src/layout/layout.rs:139:31
[INFO] [stdout]     |
[INFO] [stdout] 139 |             self.cells.insert((next_row, next_col), Cell2048::new(&sum.to_string()));
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: expected type `usize`
[INFO] [stdout]               found tuple `(u32, u32)`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/grid_cell/grid_cell.rs:33:12
[INFO] [stdout]     |
[INFO] [stdout]  33 |     pub fn insert(&self, row: usize, col:usize, new_cell: Cell2048) {
[INFO] [stdout]     |            ^^^^^^        ----------  ---------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 139 -             self.cells.insert((next_row, next_col), Cell2048::new(&sum.to_string()));
[INFO] [stdout] 139 +             self.cells.insert(/* usize */, /* usize */, Cell2048::new(&sum.to_string()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/layout/layout.rs:141:59
[INFO] [stdout]     |
[INFO] [stdout] 141 |             self.cells.insert((current_row, current_col), Cell2048::new(&String::from("")));
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^------------------- two arguments of type `u32` and `u32` are missing
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/game_cell.rs:15:19
[INFO] [stdout]     |
[INFO] [stdout]  15 |     pub(crate) fn new(value: &str, row: u32, col: u32) -> Self {
[INFO] [stdout]     |                   ^^^              --------  --------
[INFO] [stdout] help: provide the arguments
[INFO] [stdout]     |
[INFO] [stdout] 141 |             self.cells.insert((current_row, current_col), Cell2048::new(&String::from(""), /* u32 */, /* u32 */));
[INFO] [stdout]     |                                                                                          ++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 3 arguments but 2 arguments were supplied
[INFO] [stdout]    --> src/layout/layout.rs:141:24
[INFO] [stdout]     |
[INFO] [stdout] 141 |             self.cells.insert((current_row, current_col), Cell2048::new(&String::from("")));
[INFO] [stdout]     |                        ^^^^^^                             -------------------------------- argument #2 of type `usize` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: expected `usize`, found `(u32, u32)`
[INFO] [stdout]    --> src/layout/layout.rs:141:31
[INFO] [stdout]     |
[INFO] [stdout] 141 |             self.cells.insert((current_row, current_col), Cell2048::new(&String::from("")));
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: expected type `usize`
[INFO] [stdout]               found tuple `(u32, u32)`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/grid_cell/grid_cell.rs:33:12
[INFO] [stdout]     |
[INFO] [stdout]  33 |     pub fn insert(&self, row: usize, col:usize, new_cell: Cell2048) {
[INFO] [stdout]     |            ^^^^^^        ----------  ---------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 141 -             self.cells.insert((current_row, current_col), Cell2048::new(&String::from("")));
[INFO] [stdout] 141 +             self.cells.insert(/* usize */, /* usize */, Cell2048::new(&String::from("")));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/layout/layout.rs:142:53
[INFO] [stdout]     |
[INFO] [stdout] 142 |             self.cells.insert((next_row, next_col), Cell2048::new(&current_cell.value.clone()));
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^----------------------------- two arguments of type `u32` and `u32` are missing
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/game_cell.rs:15:19
[INFO] [stdout]     |
[INFO] [stdout]  15 |     pub(crate) fn new(value: &str, row: u32, col: u32) -> Self {
[INFO] [stdout]     |                   ^^^              --------  --------
[INFO] [stdout] help: provide the arguments
[INFO] [stdout]     |
[INFO] [stdout] 142 |             self.cells.insert((next_row, next_col), Cell2048::new(&current_cell.value.clone(), /* u32 */, /* u32 */));
[INFO] [stdout]     |                                                                                              ++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get` found for struct `GridCell2048` in the current scope
[INFO] [stdout]    --> src/layout/layout.rs:169:47
[INFO] [stdout]     |
[INFO] [stdout] 169 |                 let current_cell = self.cells.get(&(row, col)).unwrap();
[INFO] [stdout]     |                                               ^^^ method not found in `GridCell2048`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/grid_cell/grid_cell.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub struct GridCell2048 {
[INFO] [stdout]     | ----------------------- method `get` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following traits define an item `get`, perhaps you need to implement one of them:
[INFO] [stdout]             candidate #1: `SliceIndex`
[INFO] [stdout]             candidate #2: `nix::sys::socket::GetSockOpt`
[INFO] [stdout]             candidate #3: `nix::sys::socket::GetSockOpt`
[INFO] [stdout]             candidate #4: `smithay_client_toolkit::environment::GlobalHandler`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 3 arguments but 2 arguments were supplied
[INFO] [stdout]    --> src/layout/layout.rs:142:24
[INFO] [stdout]     |
[INFO] [stdout] 142 |             self.cells.insert((next_row, next_col), Cell2048::new(&current_cell.value.clone()));
[INFO] [stdout]     |                        ^^^^^^                       ------------------------------------------ argument #2 of type `usize` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: expected `usize`, found `(u32, u32)`
[INFO] [stdout]    --> src/layout/layout.rs:142:31
[INFO] [stdout]     |
[INFO] [stdout] 142 |             self.cells.insert((next_row, next_col), Cell2048::new(&current_cell.value.clone()));
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: expected type `usize`
[INFO] [stdout]               found tuple `(u32, u32)`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/grid_cell/grid_cell.rs:33:12
[INFO] [stdout]     |
[INFO] [stdout]  33 |     pub fn insert(&self, row: usize, col:usize, new_cell: Cell2048) {
[INFO] [stdout]     |            ^^^^^^        ----------  ---------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 142 -             self.cells.insert((next_row, next_col), Cell2048::new(&current_cell.value.clone()));
[INFO] [stdout] 142 +             self.cells.insert(/* usize */, /* usize */, Cell2048::new(&current_cell.value.clone()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/layout/layout.rs:146:13
[INFO] [stdout]     |
[INFO] [stdout] 146 |         for (pos, cell) in self.cells.iter() {
[INFO] [stdout]     |             ^^^^^^^^^^^    ----------------- this is an iterator with items of type `&game_cell::Cell2048`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             expected `Cell2048`, found `(_, _)`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `game_cell::Cell2048`
[INFO] [stdout]                 found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/layout/layout.rs:151:33
[INFO] [stdout]     |
[INFO] [stdout] 151 |         !self.cells.iter().any(|(_pos, cell)| {
[INFO] [stdout]     |                                 ^^^^^^^^^^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 expected `Cell2048`, found `(_, _)`
[INFO] [stdout]     |                                 expected due to this
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `game_cell::Cell2048`
[INFO] [stdout]                 found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get` found for struct `GridCell2048` in the current scope
[INFO] [stdout]    --> src/layout/layout.rs:170:54
[INFO] [stdout]     |
[INFO] [stdout] 170 |                 if let Some(right_cell) = self.cells.get(&(row, col + 1)) {
[INFO] [stdout]     |                                                      ^^^ method not found in `GridCell2048`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/grid_cell/grid_cell.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub struct GridCell2048 {
[INFO] [stdout]     | ----------------------- method `get` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following traits define an item `get`, perhaps you need to implement one of them:
[INFO] [stdout]             candidate #1: `SliceIndex`
[INFO] [stdout]             candidate #2: `nix::sys::socket::GetSockOpt`
[INFO] [stdout]             candidate #3: `nix::sys::socket::GetSockOpt`
[INFO] [stdout]             candidate #4: `smithay_client_toolkit::environment::GlobalHandler`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get` found for struct `GridCell2048` in the current scope
[INFO] [stdout]    --> src/layout/layout.rs:169:47
[INFO] [stdout]     |
[INFO] [stdout] 169 |                 let current_cell = self.cells.get(&(row, col)).unwrap();
[INFO] [stdout]     |                                               ^^^ method not found in `GridCell2048`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/grid_cell/grid_cell.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub struct GridCell2048 {
[INFO] [stdout]     | ----------------------- method `get` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following traits define an item `get`, perhaps you need to implement one of them:
[INFO] [stdout]             candidate #1: `SliceIndex`
[INFO] [stdout]             candidate #2: `nix::sys::socket::GetSockOpt`
[INFO] [stdout]             candidate #3: `nix::sys::socket::GetSockOpt`
[INFO] [stdout]             candidate #4: `smithay_client_toolkit::environment::GlobalHandler`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get` found for struct `GridCell2048` in the current scope
[INFO] [stdout]    --> src/layout/layout.rs:175:55
[INFO] [stdout]     |
[INFO] [stdout] 175 |                 if let Some(bottom_cell) = self.cells.get(&(row - 1, col)) {
[INFO] [stdout]     |                                                       ^^^ method not found in `GridCell2048`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/grid_cell/grid_cell.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub struct GridCell2048 {
[INFO] [stdout]     | ----------------------- method `get` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following traits define an item `get`, perhaps you need to implement one of them:
[INFO] [stdout]             candidate #1: `SliceIndex`
[INFO] [stdout]             candidate #2: `nix::sys::socket::GetSockOpt`
[INFO] [stdout]             candidate #3: `nix::sys::socket::GetSockOpt`
[INFO] [stdout]             candidate #4: `smithay_client_toolkit::environment::GlobalHandler`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> src/game_field/game_field.rs:36:30
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn update(&mut self, args: UpdateArgs) {
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get` found for struct `GridCell2048` in the current scope
[INFO] [stdout]    --> src/layout/layout.rs:170:54
[INFO] [stdout]     |
[INFO] [stdout] 170 |                 if let Some(right_cell) = self.cells.get(&(row, col + 1)) {
[INFO] [stdout]     |                                                      ^^^ method not found in `GridCell2048`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/grid_cell/grid_cell.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub struct GridCell2048 {
[INFO] [stdout]     | ----------------------- method `get` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following traits define an item `get`, perhaps you need to implement one of them:
[INFO] [stdout]             candidate #1: `SliceIndex`
[INFO] [stdout]             candidate #2: `nix::sys::socket::GetSockOpt`
[INFO] [stdout]             candidate #3: `nix::sys::socket::GetSockOpt`
[INFO] [stdout]             candidate #4: `smithay_client_toolkit::environment::GlobalHandler`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/layout/layout.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let mut cells = GridCell2048::new(shape_size);
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lib.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |         let mut stack_pointer_x = intend_x as f64 + rec_x as f64;
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0277, E0308, E0425, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get` found for struct `GridCell2048` in the current scope
[INFO] [stdout]    --> src/layout/layout.rs:175:55
[INFO] [stdout]     |
[INFO] [stdout] 175 |                 if let Some(bottom_cell) = self.cells.get(&(row - 1, col)) {
[INFO] [stdout]     |                                                       ^^^ method not found in `GridCell2048`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/grid_cell/grid_cell.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub struct GridCell2048 {
[INFO] [stdout]     | ----------------------- method `get` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following traits define an item `get`, perhaps you need to implement one of them:
[INFO] [stdout]             candidate #1: `SliceIndex`
[INFO] [stdout]             candidate #2: `nix::sys::socket::GetSockOpt`
[INFO] [stdout]             candidate #3: `nix::sys::socket::GetSockOpt`
[INFO] [stdout]             candidate #4: `smithay_client_toolkit::environment::GlobalHandler`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> src/game_field/game_field.rs:36:30
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn update(&mut self, args: UpdateArgs) {
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `game2048` (lib test) due to 24 previous errors; 17 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/layout/layout.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let mut cells = GridCell2048::new(shape_size);
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lib.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |         let mut stack_pointer_x = intend_x as f64 + rec_x as f64;
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0277, E0308, E0425, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `game2048` (lib) due to 24 previous errors; 17 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "9784fafa96baec52c44aeb57940df1e34935773c5e5c74491cd20b46723269c9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9784fafa96baec52c44aeb57940df1e34935773c5e5c74491cd20b46723269c9", kill_on_drop: false }`
[INFO] [stdout] 9784fafa96baec52c44aeb57940df1e34935773c5e5c74491cd20b46723269c9
