[INFO] cloning repository https://github.com/Amelia10007/rustetris
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Amelia10007/rustetris" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAmelia10007%2Frustetris", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAmelia10007%2Frustetris'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 024b1330e82516c019887e50fec5e6b2810d7940
[INFO] testing Amelia10007/rustetris against master#733b47ea4b1b86216f14ef56e49440c33933f230+rustflags=-Copt-level=3 for pr-138759
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAmelia10007%2Frustetris" "/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/Amelia10007/rustetris
[INFO] finished tweaking git repo https://github.com/Amelia10007/rustetris
[INFO] tweaked toml for git repo https://github.com/Amelia10007/rustetris written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Amelia10007/rustetris on toolchain 733b47ea4b1b86216f14ef56e49440c33933f230
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Amelia10007/rustetris 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" "+733b47ea4b1b86216f14ef56e49440c33933f230" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e5c860f9987a8c50fd5c1e2ed259f069ca33c3e02b3a6d5bc6a2f719aa183abc
[INFO] running `Command { std: "docker" "start" "-a" "e5c860f9987a8c50fd5c1e2ed259f069ca33c3e02b3a6d5bc6a2f719aa183abc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e5c860f9987a8c50fd5c1e2ed259f069ca33c3e02b3a6d5bc6a2f719aa183abc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e5c860f9987a8c50fd5c1e2ed259f069ca33c3e02b3a6d5bc6a2f719aa183abc", kill_on_drop: false }`
[INFO] [stdout] e5c860f9987a8c50fd5c1e2ed259f069ca33c3e02b3a6d5bc6a2f719aa183abc
[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 -Copt-level=3" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 883bb064f840daf8a57c9e5c8c43fbc9bb2fb8fd4da76a9f8339b7614466e218
[INFO] running `Command { std: "docker" "start" "-a" "883bb064f840daf8a57c9e5c8c43fbc9bb2fb8fd4da76a9f8339b7614466e218", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.74
[INFO] [stderr]    Compiling regex-syntax v0.6.27
[INFO] [stderr]    Compiling unicode-width v0.1.8
[INFO] [stderr]    Compiling either v1.5.3
[INFO] [stderr]    Compiling take-if v1.0.0
[INFO] [stderr]    Compiling itertools v0.9.0
[INFO] [stderr]    Compiling terminal_size v0.1.13
[INFO] [stderr]    Compiling termios v0.3.2
[INFO] [stderr]    Compiling regex v1.6.0
[INFO] [stderr]    Compiling console v0.11.3
[INFO] [stderr]    Compiling rustetris v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `row_major_table::RowMajorTable`
[INFO] [stdout]  --> src/data_type.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use row_major_table::RowMajorTable;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `field_under_agent_control::FieldUnderAgentControl`
[INFO] [stdout]   --> src/game.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use field_under_agent_control::FieldUnderAgentControl;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `take_if::TakeIf`
[INFO] [stdout]  --> src/game/animation/drop_cell.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use take_if::TakeIf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/user/input.rs:76:23
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn map(&self, key: Key) -> (Option<GameCommand>, Option<GameCommand>) {
[INFO] [stdout]    |                       ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_ended` is never used
[INFO] [stdout]   --> src/data_type/counter.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | / impl<T, R: RangeBounds<T>> Counter<T, R>
[INFO] [stdout] 11 | | where
[INFO] [stdout] 12 | |     T: Copy + PartialOrd + Add<Output = T> + One,
[INFO] [stdout]    | |_________________________________________________- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 31 |       pub fn is_ended(&self) -> bool {
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `swap`, `into`, `try_into`, and `map` are never used
[INFO] [stdout]   --> src/data_type/pair.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl<T> Pair<T> {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn swap(self) -> Pair<T> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn into<U>(self) -> Pair<U>
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn try_into<U>(self) -> Result<Pair<U>, T::Error>
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn map<U, F>(self, f: F) -> Pair<U>
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TableRowIterMut` is never constructed
[INFO] [stdout]   --> src/data_type/row_major_table.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct TableRowIterMut<'a, T> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TableColumnIter` is never constructed
[INFO] [stdout]   --> src/data_type/row_major_table.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct TableColumnIter<'a, T> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/data_type/row_major_table.rs:61:12
[INFO] [stdout]     |
[INFO] [stdout] 39  | impl<T> RowMajorTable<T> {
[INFO] [stdout]     | ------------------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 61  |     pub fn from_vec(vec: Vec<T>, size: TableSize) -> RowMajorTable<T> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 89  |     pub fn from_lines(lines: Vec<Vec<T>>) -> RowMajorTable<T> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn iter_items(&self) -> impl Iterator<Item = &T> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     pub fn iter_row_mut(&mut self) -> TableRowIterMut<'_, T> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub fn iter_column(&self) -> TableColumnIter<'_, T> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn as_raw_slice(&self) -> &[T] {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn as_raw_slice_mut(&mut self) -> &mut [T] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn into_inner(self) -> Vec<T> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 196 |     pub fn map<U, F>(self, f: F) -> RowMajorTable<U>
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_fill` is never used
[INFO] [stdout]    --> src/data_type/row_major_table.rs:221:12
[INFO] [stdout]     |
[INFO] [stdout] 217 | impl<T: Clone> RowMajorTable<T> {
[INFO] [stdout]     | ------------------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn from_fill(init: T, size: TableSize) -> RowMajorTable<T> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/data_type/row_major_table.rs:313:8
[INFO] [stdout]     |
[INFO] [stdout] 312 | impl<'a, T> TableRowIterMut<'a, T> {
[INFO] [stdout]     | ---------------------------------- associated function in this implementation
[INFO] [stdout] 313 |     fn new(table: &'a mut RowMajorTable<T>) -> TableRowIterMut<'a, T> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/data_type/row_major_table.rs:345:14
[INFO] [stdout]     |
[INFO] [stdout] 344 | impl<'a, T> TableColumnIter<'a, T> {
[INFO] [stdout]     | ---------------------------------- associated function in this implementation
[INFO] [stdout] 345 |     const fn new(table: &'a RowMajorTable<T>) -> TableColumnIter<'a, T> {
[INFO] [stdout]     |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/data_type/row_major_table.rs:367:14
[INFO] [stdout]     |
[INFO] [stdout] 366 | impl<'a, T> TableColumnIterItem<'a, T> {
[INFO] [stdout]     | -------------------------------------- associated function in this implementation
[INFO] [stdout] 367 |     const fn new(table: &'a RowMajorTable<T>, column: usize) -> TableColumnIterItem<'a, T> {
[INFO] [stdout]     |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `non_empty_cell_count` is never used
[INFO] [stdout]   --> src/game/block_template.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl BlockShape {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 26 |     /// このブロック形状が，空でないセルをいくつ含むか返す．
[INFO] [stdout] 27 |     pub fn non_empty_cell_count(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `All` is never constructed
[INFO] [stdout]    --> src/game/block_template.rs:159:5
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub enum BombTag {
[INFO] [stdout]     |          ------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 159 |     All,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BombTag` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `row` and `row_mut` are never used
[INFO] [stdout]   --> src/game/field.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Field {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn row(&self, y: PosY) -> Option<FieldRow<'_>> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn row_mut(&mut self, y: PosY) -> Option<FieldRowMut<'_>> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `width` is never used
[INFO] [stdout]    --> src/game/field.rs:111:18
[INFO] [stdout]     |
[INFO] [stdout] 106 | impl<'f> FieldRow<'f> {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub const fn width(&self) -> usize {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FieldRowMut` is never constructed
[INFO] [stdout]    --> src/game/field.rs:139:12
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub struct FieldRowMut<'f> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `y` are never used
[INFO] [stdout]    --> src/game/field.rs:145:12
[INFO] [stdout]     |
[INFO] [stdout] 144 | impl<'f> FieldRowMut<'f> {
[INFO] [stdout]     | ------------------------ associated items in this implementation
[INFO] [stdout] 145 |     pub fn new(field: &'f mut Field, y: PosY) -> Option<FieldRowMut<'f>> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn y(&self) -> PosY {
[INFO] [stdout]     |            ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `end_frame` is never used
[INFO] [stdout]   --> src/game/animation.rs:74:18
[INFO] [stdout]    |
[INFO] [stdout] 62 | impl AnimationFrame {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub const fn end_frame(&self) -> usize {
[INFO] [stdout]    |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `right_below` is never used
[INFO] [stdout]   --> src/geometry/roi.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl RegionOfInterest {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn right_below(&self) -> Pos {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MenuCommand` is never used
[INFO] [stdout]  --> src/user/input.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum MenuCommand {
[INFO] [stdout]   |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MenuInputMapper` is never constructed
[INFO] [stdout]   --> src/user/input.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct MenuInputMapper;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `map` is never used
[INFO] [stdout]   --> src/user/input.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl MenuInputMapper {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] 39 |     pub fn map(&self, key: Key) -> Option<MenuCommand> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DoublePlayerInputMapper` is never constructed
[INFO] [stdout]   --> src/user/input.rs:73:12
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct DoublePlayerInputMapper;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `map` is never used
[INFO] [stdout]   --> src/user/input.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 75 | impl DoublePlayerInputMapper {
[INFO] [stdout]    | ---------------------------- method in this implementation
[INFO] [stdout] 76 |     pub fn map(&self, key: Key) -> (Option<GameCommand>, Option<GameCommand>) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::slice::IterMut` that must be used
[INFO] [stdout]    --> src/data_type/row_major_table.rs:329:9
[INFO] [stdout]     |
[INFO] [stdout] 329 |         self.table.vec.iter_mut();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: iterators are lazy and do nothing unless consumed
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 329 |         let _ = self.table.vec.iter_mut();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 26.58s
[INFO] running `Command { std: "docker" "inspect" "883bb064f840daf8a57c9e5c8c43fbc9bb2fb8fd4da76a9f8339b7614466e218", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "883bb064f840daf8a57c9e5c8c43fbc9bb2fb8fd4da76a9f8339b7614466e218", kill_on_drop: false }`
[INFO] [stdout] 883bb064f840daf8a57c9e5c8c43fbc9bb2fb8fd4da76a9f8339b7614466e218
[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 -Copt-level=3" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0725655b957934b962ce8db2bf988780b607f68d9d9590f0464a6e659a73e5b9
[INFO] running `Command { std: "docker" "start" "-a" "0725655b957934b962ce8db2bf988780b607f68d9d9590f0464a6e659a73e5b9", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustetris v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `row_major_table::RowMajorTable`
[INFO] [stdout]  --> src/data_type.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use row_major_table::RowMajorTable;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `field_under_agent_control::FieldUnderAgentControl`
[INFO] [stdout]   --> src/game.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use field_under_agent_control::FieldUnderAgentControl;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `take_if::TakeIf`
[INFO] [stdout]  --> src/game/animation/drop_cell.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use take_if::TakeIf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/user/input.rs:76:23
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn map(&self, key: Key) -> (Option<GameCommand>, Option<GameCommand>) {
[INFO] [stdout]    |                       ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `swap` is never used
[INFO] [stdout]   --> src/data_type/pair.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl<T> Pair<T> {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn swap(self) -> Pair<T> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `non_empty_cell_count` is never used
[INFO] [stdout]   --> src/game/block_template.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl BlockShape {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 26 |     /// このブロック形状が，空でないセルをいくつ含むか返す．
[INFO] [stdout] 27 |     pub fn non_empty_cell_count(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `width` is never used
[INFO] [stdout]    --> src/game/field.rs:111:18
[INFO] [stdout]     |
[INFO] [stdout] 106 | impl<'f> FieldRow<'f> {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub const fn width(&self) -> usize {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MenuCommand` is never used
[INFO] [stdout]  --> src/user/input.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum MenuCommand {
[INFO] [stdout]   |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MenuInputMapper` is never constructed
[INFO] [stdout]   --> src/user/input.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct MenuInputMapper;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `map` is never used
[INFO] [stdout]   --> src/user/input.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl MenuInputMapper {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] 39 |     pub fn map(&self, key: Key) -> Option<MenuCommand> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DoublePlayerInputMapper` is never constructed
[INFO] [stdout]   --> src/user/input.rs:73:12
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct DoublePlayerInputMapper;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `map` is never used
[INFO] [stdout]   --> src/user/input.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 75 | impl DoublePlayerInputMapper {
[INFO] [stdout]    | ---------------------------- method in this implementation
[INFO] [stdout] 76 |     pub fn map(&self, key: Key) -> (Option<GameCommand>, Option<GameCommand>) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::slice::IterMut` that must be used
[INFO] [stdout]    --> src/data_type/row_major_table.rs:329:9
[INFO] [stdout]     |
[INFO] [stdout] 329 |         self.table.vec.iter_mut();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: iterators are lazy and do nothing unless consumed
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 329 |         let _ = self.table.vec.iter_mut();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 24.14s
[INFO] running `Command { std: "docker" "inspect" "0725655b957934b962ce8db2bf988780b607f68d9d9590f0464a6e659a73e5b9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0725655b957934b962ce8db2bf988780b607f68d9d9590f0464a6e659a73e5b9", kill_on_drop: false }`
[INFO] [stdout] 0725655b957934b962ce8db2bf988780b607f68d9d9590f0464a6e659a73e5b9
[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 -Copt-level=3" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 621f701dc51c26a60df2acc80580f92306c5e544d0d6f9d199ceb920ebf4341b
[INFO] running `Command { std: "docker" "start" "-a" "621f701dc51c26a60df2acc80580f92306c5e544d0d6f9d199ceb920ebf4341b", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `row_major_table::RowMajorTable`
[INFO] [stderr]  --> src/data_type.rs:9:9
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub use row_major_table::RowMajorTable;
[INFO] [stderr]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `field_under_agent_control::FieldUnderAgentControl`
[INFO] [stderr]   --> src/game.rs:13:9
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub use field_under_agent_control::FieldUnderAgentControl;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `take_if::TakeIf`
[INFO] [stderr]  --> src/game/animation/drop_cell.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use take_if::TakeIf;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `key`
[INFO] [stderr]   --> src/user/input.rs:76:23
[INFO] [stderr]    |
[INFO] [stdout] 
[INFO] [stderr] 76 |     pub fn map(&self, key: Key) -> (Option<GameCommand>, Option<GameCommand>) {
[INFO] [stdout] running 107 tests
[INFO] [stderr]    |                       ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `swap` is never used
[INFO] [stderr]   --> src/data_type/pair.rs:34:12
[INFO] [stderr]    |
[INFO] [stderr] 11 | impl<T> Pair<T> {
[INFO] [stderr]    | --------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 34 |     pub fn swap(self) -> Pair<T> {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `non_empty_cell_count` is never used
[INFO] [stderr]   --> src/game/block_template.rs:27:12
[INFO] [stderr]    |
[INFO] [stderr] 25 | impl BlockShape {
[INFO] [stderr]    | --------------- method in this implementation
[INFO] [stderr] 26 |     /// このブロック形状が，空でないセルをいくつ含むか返す．
[INFO] [stderr] 27 |     pub fn non_empty_cell_count(&self) -> usize {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `width` is never used
[INFO] [stderr]    --> src/game/field.rs:111:18
[INFO] [stderr]     |
[INFO] [stderr] 106 | impl<'f> FieldRow<'f> {
[INFO] [stderr]     | --------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 111 |     pub const fn width(&self) -> usize {
[INFO] [stderr]     |                  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `MenuCommand` is never used
[INFO] [stderr]  --> src/user/input.rs:5:10
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub enum MenuCommand {
[INFO] [stderr]   |          ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MenuInputMapper` is never constructed
[INFO] [stderr]   --> src/user/input.rs:36:12
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub struct MenuInputMapper;
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `map` is never used
[INFO] [stderr]   --> src/user/input.rs:39:12
[INFO] [stderr]    |
[INFO] [stderr] 38 | impl MenuInputMapper {
[INFO] [stderr]    | -------------------- method in this implementation
[INFO] [stderr] 39 |     pub fn map(&self, key: Key) -> Option<MenuCommand> {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `DoublePlayerInputMapper` is never constructed
[INFO] [stderr]   --> src/user/input.rs:73:12
[INFO] [stderr]    |
[INFO] [stderr] 73 | pub struct DoublePlayerInputMapper;
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `map` is never used
[INFO] [stderr]   --> src/user/input.rs:76:12
[INFO] [stderr]    |
[INFO] [stderr] 75 | impl DoublePlayerInputMapper {
[INFO] [stderr]    | ---------------------------- method in this implementation
[INFO] [stderr] 76 |     pub fn map(&self, key: Key) -> (Option<GameCommand>, Option<GameCommand>) {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::slice::IterMut` that must be used
[INFO] [stderr]    --> src/data_type/row_major_table.rs:329:9
[INFO] [stderr]     |
[INFO] [stderr] 329 |         self.table.vec.iter_mut();
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: iterators are lazy and do nothing unless consumed
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 329 |         let _ = self.table.vec.iter_mut();
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `rustetris` (bin "rustetris" test) generated 13 warnings (run `cargo fix --bin "rustetris" --tests` to apply 2 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.03s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/rustetris-c02f16ac120c6821)
[INFO] [stdout] test data_type::counter::tests::test_exclusive_range ... ok
[INFO] [stdout] test data_type::counter::tests::test_inclusive_range ... ok
[INFO] [stdout] test data_type::pair::tests::test_add ... ok
[INFO] [stdout] test data_type::pair::tests::test_add_assign ... ok
[INFO] [stdout] test data_type::pair::tests::test_default ... ok
[INFO] [stdout] test data_type::pair::tests::test_div ... ok
[INFO] [stdout] test data_type::pair::tests::test_div_assign ... ok
[INFO] [stdout] test data_type::pair::tests::test_into ... ok
[INFO] [stdout] test data_type::pair::tests::test_map ... ok
[INFO] [stdout] test data_type::pair::tests::test_mul_assign ... ok
[INFO] [stdout] test data_type::pair::tests::test_neg ... ok
[INFO] [stdout] test data_type::pair::tests::test_new ... ok
[INFO] [stdout] test data_type::pair::tests::test_try_into_success ... ok
[INFO] [stdout] test data_type::row_major_table::tests::test_as_raw_slice ... ok
[INFO] [stdout] test data_type::pair::tests::test_sub_assign ... ok
[INFO] [stdout] test data_type::pair::tests::test_try_into_fail ... ok
[INFO] [stdout] test data_type::pair::tests::test_sub ... ok
[INFO] [stdout] test data_type::row_major_table::tests::test_display ... ok
[INFO] [stdout] test data_type::row_major_table::tests::test_as_raw_slice_mut ... ok
[INFO] [stdout] test data_type::row_major_table::tests::test_from_fill ... ok
[INFO] [stdout] test data_type::row_major_table::tests::test_from_lines ... ok
[INFO] [stdout] test data_type::row_major_table::tests::test_as_raw_vec ... ok
[INFO] [stdout] test data_type::pair::tests::test_mul ... ok
[INFO] [stdout] test data_type::row_major_table::tests::test_from_vec ... ok
[INFO] [stdout] test data_type::counter::tests::test_unbounded_start_range - should panic ... ok
[INFO] [stdout] test data_type::counter::tests::test_unbounded_start_range2 - should panic ... ok
[INFO] [stdout] test data_type::row_major_table::tests::test_get ... ok
[INFO] [stdout] test data_type::counter::tests::test_unbounded_range - should panic ... ok
[INFO] [stdout] test data_type::row_major_table::tests::test_get_mut ... ok
[INFO] [stdout] test data_type::row_major_table::tests::test_from_lines_none_empty - should panic ... ok
[INFO] [stdout] test data_type::row_major_table::tests::test_index ... ok
[INFO] [stdout] test data_type::row_major_table::tests::test_index_mut ... ok
[INFO] [stdout] test data_type::row_major_table::tests::test_from_fill_none_width - should panic ... ok
[INFO] [stdout] test data_type::row_major_table::tests::test_index_out_of_range_y - should panic ... ok
[INFO] [stdout] test data_type::row_major_table::tests::test_from_lines_none_jagged - should panic ... ok
[INFO] [stdout] test data_type::row_major_table::tests::test_from_fill_none_height - should panic ... ok
[INFO] [stdout] test data_type::row_major_table::tests::test_iter_column ... ok
[INFO] [stdout] test data_type::row_major_table::tests::test_iter_items ... ok
[INFO] [stdout] test data_type::row_major_table::tests::test_from_vec_none - should panic ... ok
[INFO] [stdout] test data_type::row_major_table::tests::test_from_vec_zero_none - should panic ... ok
[INFO] [stdout] test data_type::row_major_table::tests::test_iter_row ... ok
[INFO] [stdout] test data_type::row_major_table::tests::test_iter_row_mut ... ok
[INFO] [stdout] test data_type::row_major_table::tests::test_size ... ok
[INFO] [stdout] test data_type::shake::tests_shake::test_iter ... ok
[INFO] [stdout] test game::block_queue::tests::test_fill ... ok
[INFO] [stdout] test game::block_queue::tests::test_pop_and_fill ... ok
[INFO] [stdout] test game::animation::tests::test_animation_frame_zero_duration ... ok
[INFO] [stdout] test data_type::row_major_table::tests::test_index_mut_out_of_range_x - should panic ... ok
[INFO] [stdout] test game::block_template::tests::test_cell_table_size ... ok
[INFO] [stdout] test game::block_template::tests::test_cells_all_bomb ... ok
[INFO] [stdout] test game::block_template::tests::test_cells_single_bomb ... ok
[INFO] [stdout] test data_type::row_major_table::tests::test_index_out_of_range_x - should panic ... ok
[INFO] [stdout] test data_type::row_major_table::tests::test_index_mut_out_of_range_y - should panic ... ok
[INFO] [stdout] test data_type::row_major_table::tests::test_map ... ok
[INFO] [stdout] test game::block_template::tests::test_rotate_unticlockwise ... ok
[INFO] [stdout] test game::cell::tests::test_is_empty ... ok
[INFO] [stdout] test game::field::tests::test_empty ... ok
[INFO] [stdout] test game::field::tests::test_get ... ok
[INFO] [stdout] test game::field::tests::test_get_mut ... ok
[INFO] [stdout] test game::field::tests::test_height ... ok
[INFO] [stdout] test game::field::tests::test_row ... ok
[INFO] [stdout] test game::field::tests::test_row_mut ... ok
[INFO] [stdout] test game::field::tests::test_rows ... ok
[INFO] [stdout] test game::field_under_agent_control::tests::test_is_arrangeable_empty_field ... ok
[INFO] [stdout] test game::block_template::tests::test_cells_without_bomb ... ok
[INFO] [stdout] test game::block_template::tests::test_iter_pos_and_occupied_cell ... ok
[INFO] [stdout] test game::field_under_agent_control::tests::test_is_arrangeable_filled_field ... ok
[INFO] [stdout] test game::block_template::tests::test_rotate_clockwise ... ok
[INFO] [stdout] test game::field::tests::test_width ... ok
[INFO] [stdout] test geometry::position::tests_move_y::test_add ... ok
[INFO] [stdout] test geometry::position::tests_movement::test_add ... ok
[INFO] [stdout] test geometry::position::tests_movement::test_from_movex ... ok
[INFO] [stdout] test geometry::position::tests_position::test_add ... ok
[INFO] [stdout] test game::field_under_agent_control::tests::test_is_arrangeable_non_empty_field ... ok
[INFO] [stdout] test geometry::position::tests_move_x::test_add ... ok
[INFO] [stdout] test geometry::position::tests_movement::test_from_movey ... ok
[INFO] [stdout] test geometry::position::tests_position_x::test_right_from_origin ... ok
[INFO] [stdout] test geometry::position::tests_position_y::test_add ... ok
[INFO] [stdout] test geometry::position::tests_position_x::test_sub ... ok
[INFO] [stdout] test geometry::position::tests_position_y::test_as_positive_index ... ok
[INFO] [stdout] test geometry::position::tests_position_y::test_origin ... ok
[INFO] [stdout] test geometry::position::tests_position_y::test_below ... ok
[INFO] [stdout] test geometry::position::tests_position_y::test_sub ... ok
[INFO] [stdout] test geometry::roi::tests::test_contains ... ok
[INFO] [stdout] test geometry::roi::tests::test_new ... ok
[INFO] [stdout] test geometry::roi::tests::test_new_negative_height - should panic ... FAILED
[INFO] [stdout] test geometry::roi::tests::test_new_negative_width - should panic ... FAILED
[INFO] [stdout] test geometry::roi::tests::test_right_below ... ok
[INFO] [stdout] test geometry::position::tests_position_x::test_as_positive_index ... ok
[INFO] [stdout] test geometry::position::tests_position_x::test_origin ... ok
[INFO] [stdout] test graphics::canvas::tests_child_canvas::test_child_draw_cell ... ok
[INFO] [stdout] test geometry::position::tests_position::test_origin ... ok
[INFO] [stdout] test geometry::position::tests_position_x::test_add ... ok
[INFO] [stdout] test graphics::canvas::tests_child_canvas::test_draw_cell_out_of_roi_above ... ok
[INFO] [stdout] test graphics::canvas::tests_child_canvas::test_draw_cell ... ok
[INFO] [stdout] test graphics::canvas::tests_child_canvas::test_draw_cell_out_of_roi_right ... ok
[INFO] [stdout] test graphics::canvas::tests_child_canvas::test_draw_cell_out_of_roi_below ... ok
[INFO] [stdout] test graphics::canvas::tests_child_canvas::test_draw_cell_out_of_roi_left ... ok
[INFO] [stdout] test graphics::canvas_cell::tests::test_square_char_invalid_right - should panic ... FAILED
[INFO] [stdout] test graphics::canvas::tests_root_canvas::test_child ... ok
[INFO] [stdout] test graphics::canvas::tests_root_canvas::test_draw_cell ... ok
[INFO] [stdout] test graphics::canvas_cell::tests::test_square_char_new ... ok
[INFO] [stdout] test graphics::canvas::tests_root_canvas::test_clear ... ok
[INFO] [stdout] test geometry::roi::tests::test_iter_pos ... ok
[INFO] [stdout] test graphics::canvas_cell::tests::test_square_char_invalid_left - should panic ... FAILED
[INFO] [stdout] test graphics::colored_str::tests::test_region_size ... ok
[INFO] [stdout] test game::animation::tests::test_animation_frame ... ok
[INFO] [stderr] error: test failed, to rerun pass `--bin rustetris`
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- geometry::roi::tests::test_new_negative_height stdout ----
[INFO] [stdout] note: test did not panic as expected at src/geometry/roi.rs:73:8
[INFO] [stdout] ---- geometry::roi::tests::test_new_negative_width stdout ----
[INFO] [stdout] note: test did not panic as expected at src/geometry/roi.rs:65:8
[INFO] [stdout] ---- graphics::canvas_cell::tests::test_square_char_invalid_right stdout ----
[INFO] [stdout] note: test did not panic as expected at src/graphics/canvas_cell.rs:94:8
[INFO] [stdout] ---- graphics::canvas_cell::tests::test_square_char_invalid_left stdout ----
[INFO] [stdout] note: test did not panic as expected at src/graphics/canvas_cell.rs:88:8
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     geometry::roi::tests::test_new_negative_height
[INFO] [stdout]     geometry::roi::tests::test_new_negative_width
[INFO] [stdout]     graphics::canvas_cell::tests::test_square_char_invalid_left
[INFO] [stdout]     graphics::canvas_cell::tests::test_square_char_invalid_right
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 103 passed; 4 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "621f701dc51c26a60df2acc80580f92306c5e544d0d6f9d199ceb920ebf4341b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "621f701dc51c26a60df2acc80580f92306c5e544d0d6f9d199ceb920ebf4341b", kill_on_drop: false }`
[INFO] [stdout] 621f701dc51c26a60df2acc80580f92306c5e544d0d6f9d199ceb920ebf4341b
