[INFO] fetching crate simple_chess 1.0.6...
[INFO] testing simple_chess-1.0.6 against master#ec6f9a5b4413f74386267ef8efc93712c2ce6db6 for pr-155739-1
[INFO] extracting crate simple_chess 1.0.6 into /workspace/builds/worker-5-tc1/source
[INFO] started tweaking crates.io crate simple_chess 1.0.6
[INFO] finished tweaking crates.io crate simple_chess 1.0.6
[INFO] tweaked toml for crates.io crate simple_chess 1.0.6 written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate simple_chess 1.0.6 on toolchain ec6f9a5b4413f74386267ef8efc93712c2ce6db6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 1 package to latest compatible version
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded game_board v1.0.5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 8612d486b792bfc366815b8e105d19ee636b44b720b229261786cba9ea3f20b0
[INFO] running `Command { std: "docker" "start" "-a" "8612d486b792bfc366815b8e105d19ee636b44b720b229261786cba9ea3f20b0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8612d486b792bfc366815b8e105d19ee636b44b720b229261786cba9ea3f20b0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8612d486b792bfc366815b8e105d19ee636b44b720b229261786cba9ea3f20b0", kill_on_drop: false }`
[INFO] [stdout] 8612d486b792bfc366815b8e105d19ee636b44b720b229261786cba9ea3f20b0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6ccfc01fd3e29edeb7203cd5021033c4629616bdee5a8aa2e03228e0c1814792
[INFO] running `Command { std: "docker" "start" "-a" "6ccfc01fd3e29edeb7203cd5021033c4629616bdee5a8aa2e03228e0c1814792", kill_on_drop: false }`
[INFO] [stderr]    Compiling game_board v1.0.5
[INFO] [stderr]    Compiling simple_chess v1.0.6 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.66s
[INFO] running `Command { std: "docker" "inspect" "6ccfc01fd3e29edeb7203cd5021033c4629616bdee5a8aa2e03228e0c1814792", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6ccfc01fd3e29edeb7203cd5021033c4629616bdee5a8aa2e03228e0c1814792", kill_on_drop: false }`
[INFO] [stdout] 6ccfc01fd3e29edeb7203cd5021033c4629616bdee5a8aa2e03228e0c1814792
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b4b2159492fc70c870d3d8683a8a9aa0448fa76d28eef1b863cd74e313ec6bdc
[INFO] running `Command { std: "docker" "start" "-a" "b4b2159492fc70c870d3d8683a8a9aa0448fa76d28eef1b863cd74e313ec6bdc", kill_on_drop: false }`
[INFO] [stderr]    Compiling simple_chess v1.0.6 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stdout]   --> src/piece/bishop.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 76 | /         [
[INFO] [stdout] 77 | |             (0, 7),
[INFO] [stdout] 78 | |             (0, 3),
[INFO] [stdout] 79 | |             (1, 6),
[INFO] [stdout] ...  |
[INFO] [stdout] 97 | |             assert!(moves.contains(&expected_move));
[INFO] [stdout] 98 | |         });
[INFO] [stdout]    | |__________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 76 |         let _ = [
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stdout]    --> src/piece/bishop.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout] 113 | /         [(0, 7), (0, 3), (1, 6), (1, 4), (3, 6), (4, 7)].map(|(new_col, new_row)| {
[INFO] [stdout] 114 | |             let expected_move = Move {
[INFO] [stdout] 115 | |                 original_position: (2, 5),
[INFO] [stdout] 116 | |                 new_position: (new_col, new_row),
[INFO] [stdout] ...   |
[INFO] [stdout] 121 | |             assert!(moves.contains(&expected_move));
[INFO] [stdout] 122 | |         });
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 113 |         let _ = [(0, 7), (0, 3), (1, 6), (1, 4), (3, 6), (4, 7)].map(|(new_col, new_row)| {
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stdout]    --> src/piece/bishop.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 | /         [
[INFO] [stdout] 137 | |             (0, 3, None),
[INFO] [stdout] 138 | |             (1, 4, None),
[INFO] [stdout] 139 | |             (1, 6, Some(Pawn)),
[INFO] [stdout] ...   |
[INFO] [stdout] 155 | |             assert!(moves.contains(&expected_move));
[INFO] [stdout] 156 | |         });
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 136 |         let _ = [
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stdout]    --> src/piece/king.rs:87:9
[INFO] [stdout]     |
[INFO] [stdout]  87 | /         [
[INFO] [stdout]  88 | |             (2, 5),
[INFO] [stdout]  89 | |             (3, 5),
[INFO] [stdout]  90 | |             (4, 5),
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             assert!(moves.contains(&expected_move));
[INFO] [stdout] 106 | |         });
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout]  87 |         let _ = [
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stdout]    --> src/piece/king.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 | /         [(0, 1), (1, 1), (1, 0)].map(|(new_col, new_row)| {
[INFO] [stdout] 119 | |             let expected_move = Move {
[INFO] [stdout] 120 | |                 original_position: (0, 0),
[INFO] [stdout] 121 | |                 new_position: (new_col, new_row),
[INFO] [stdout] ...   |
[INFO] [stdout] 126 | |             assert!(moves.contains(&expected_move));
[INFO] [stdout] 127 | |         });
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 118 |         let _ = [(0, 1), (1, 1), (1, 0)].map(|(new_col, new_row)| {
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stdout]    --> src/piece/king.rs:149:9
[INFO] [stdout]     |
[INFO] [stdout] 149 | /         [
[INFO] [stdout] 150 | |             (2, 5),
[INFO] [stdout] 151 | |             (3, 5),
[INFO] [stdout] 152 | |             (4, 5),
[INFO] [stdout] ...   |
[INFO] [stdout] 167 | |             assert!(moves.contains(&expected_move));
[INFO] [stdout] 168 | |         });
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 149 |         let _ = [
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stdout]   --> src/piece/knight.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 | /         [
[INFO] [stdout] 79 | |             (2, 2),
[INFO] [stdout] 80 | |             (3, 1),
[INFO] [stdout] 81 | |             (5, 1),
[INFO] [stdout] ...  |
[INFO] [stdout] 96 | |             assert!(moves.contains(&expected_move));
[INFO] [stdout] 97 | |         });
[INFO] [stdout]    | |__________^
[INFO] [stdout]    |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 78 |         let _ = [
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stdout]    --> src/piece/knight.rs:109:9
[INFO] [stdout]     |
[INFO] [stdout] 109 | /         [(1, 2), (2, 1)].map(|(new_col, new_row)| {
[INFO] [stdout] 110 | |             let expected_move = Move {
[INFO] [stdout] 111 | |                 original_position: (0, 0),
[INFO] [stdout] 112 | |                 new_position: (new_col, new_row),
[INFO] [stdout] ...   |
[INFO] [stdout] 117 | |             assert!(moves.contains(&expected_move));
[INFO] [stdout] 118 | |         });
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 109 |         let _ = [(1, 2), (2, 1)].map(|(new_col, new_row)| {
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stdout]    --> src/piece/knight.rs:141:9
[INFO] [stdout]     |
[INFO] [stdout] 141 | /         [
[INFO] [stdout] 142 | |             (2, 2, Bishop),
[INFO] [stdout] 143 | |             (3, 1, Pawn),
[INFO] [stdout] 144 | |             (5, 1, Pawn),
[INFO] [stdout] ...   |
[INFO] [stdout] 159 | |             assert!(moves.contains(&expected_move));
[INFO] [stdout] 160 | |         });
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let _ = [
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stdout]    --> src/piece/pawn.rs:308:9
[INFO] [stdout]     |
[INFO] [stdout] 308 | /         [(4, 2), (4, 3)].map(|(new_col, new_row)| {
[INFO] [stdout] 309 | |             let expected_move = Move {
[INFO] [stdout] 310 | |                 original_position: (4, 1),
[INFO] [stdout] 311 | |                 new_position: (new_col, new_row),
[INFO] [stdout] ...   |
[INFO] [stdout] 317 | |             assert!(moves.contains(&expected_move));
[INFO] [stdout] 318 | |         });
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 308 |         let _ = [(4, 2), (4, 3)].map(|(new_col, new_row)| {
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stdout]    --> src/piece/pawn.rs:330:9
[INFO] [stdout]     |
[INFO] [stdout] 330 | /         [(2, 5), (2, 4)].map(|(new_col, new_row)| {
[INFO] [stdout] 331 | |             let expected_move = Move {
[INFO] [stdout] 332 | |                 original_position: (2, 6),
[INFO] [stdout] 333 | |                 new_position: (new_col, new_row),
[INFO] [stdout] ...   |
[INFO] [stdout] 339 | |             assert!(moves.contains(&expected_move));
[INFO] [stdout] 340 | |         });
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 330 |         let _ = [(2, 5), (2, 4)].map(|(new_col, new_row)| {
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stdout]    --> src/piece/pawn.rs:352:9
[INFO] [stdout]     |
[INFO] [stdout] 352 | /         [(4, 2)].map(|(new_col, new_row)| {
[INFO] [stdout] 353 | |             let expected_move = Move {
[INFO] [stdout] 354 | |                 original_position: (4, 1),
[INFO] [stdout] 355 | |                 new_position: (new_col, new_row),
[INFO] [stdout] ...   |
[INFO] [stdout] 361 | |             assert!(moves.contains(&expected_move));
[INFO] [stdout] 362 | |         });
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 352 |         let _ = [(4, 2)].map(|(new_col, new_row)| {
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stdout]    --> src/piece/pawn.rs:374:9
[INFO] [stdout]     |
[INFO] [stdout] 374 | /         [(2, 5)].map(|(new_col, new_row)| {
[INFO] [stdout] 375 | |             let expected_move = Move {
[INFO] [stdout] 376 | |                 original_position: (2, 6),
[INFO] [stdout] 377 | |                 new_position: (new_col, new_row),
[INFO] [stdout] ...   |
[INFO] [stdout] 383 | |             assert!(moves.contains(&expected_move));
[INFO] [stdout] 384 | |         });
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 374 |         let _ = [(2, 5)].map(|(new_col, new_row)| {
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stdout]    --> src/piece/pawn.rs:396:9
[INFO] [stdout]     |
[INFO] [stdout] 396 | /         [(2, 4, Some(Knight)), (4, 4, Some(Queen)), (3, 4, None)].map(
[INFO] [stdout] 397 | |             |(new_col, new_row, taken_piece)| {
[INFO] [stdout] 398 | |                 let taken_piece = match taken_piece {
[INFO] [stdout] 399 | |                     Some(p) => Some(ChessPiece::new(p, Black)),
[INFO] [stdout] ...   |
[INFO] [stdout] 411 | |             },
[INFO] [stdout] 412 | |         );
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 396 |         let _ = [(2, 4, Some(Knight)), (4, 4, Some(Queen)), (3, 4, None)].map(
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stdout]    --> src/piece/pawn.rs:424:9
[INFO] [stdout]     |
[INFO] [stdout] 424 | /         [(2, 3, Some(King)), (4, 3, Some(Bishop)), (3, 3, None)].map(
[INFO] [stdout] 425 | |             |(new_col, new_row, taken_piece)| {
[INFO] [stdout] 426 | |                 let taken_piece = match taken_piece {
[INFO] [stdout] 427 | |                     Some(p) => Some(ChessPiece::new(p, White)),
[INFO] [stdout] ...   |
[INFO] [stdout] 439 | |             },
[INFO] [stdout] 440 | |         );
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 424 |         let _ = [(2, 3, Some(King)), (4, 3, Some(Bishop)), (3, 3, None)].map(
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stdout]    --> src/piece/pawn.rs:493:9
[INFO] [stdout]     |
[INFO] [stdout] 493 | /         [Queen, Rook, Bishop, Knight].map(|promotion_option| {
[INFO] [stdout] 494 | |             let expected_move = Move {
[INFO] [stdout] 495 | |                 original_position: (0, 6),
[INFO] [stdout] 496 | |                 new_position: (0, 7),
[INFO] [stdout] ...   |
[INFO] [stdout] 501 | |             assert!(moves.contains(&expected_move));
[INFO] [stdout] 502 | |         });
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 493 |         let _ = [Queen, Rook, Bishop, Knight].map(|promotion_option| {
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stdout]    --> src/piece/pawn.rs:515:9
[INFO] [stdout]     |
[INFO] [stdout] 515 | /         [Queen, Rook, Bishop, Knight].map(|promotion_option| {
[INFO] [stdout] 516 | |             let expected_move = Move {
[INFO] [stdout] 517 | |                 original_position: (6, 1),
[INFO] [stdout] 518 | |                 new_position: (6, 0),
[INFO] [stdout] ...   |
[INFO] [stdout] 523 | |             assert!(moves.contains(&expected_move));
[INFO] [stdout] 524 | |         });
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 515 |         let _ = [Queen, Rook, Bishop, Knight].map(|promotion_option| {
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stdout]    --> src/piece/queen.rs:79:9
[INFO] [stdout]     |
[INFO] [stdout]  79 | /         [
[INFO] [stdout]  80 | |             (4, 1),
[INFO] [stdout]  81 | |             (3, 0),
[INFO] [stdout]  82 | |             (5, 1),
[INFO] [stdout] ...   |
[INFO] [stdout] 109 | |             assert!(moves.contains(&expected_move));
[INFO] [stdout] 110 | |         });
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout]  79 |         let _ = [
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stdout]    --> src/piece/queen.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 122 | /         [(3, 4), (4, 3), (4, 2), (6, 2), (5, 3)].map(|new_position| {
[INFO] [stdout] 123 | |             let expected_move = Move {
[INFO] [stdout] 124 | |                 original_position: (5, 2),
[INFO] [stdout] 125 | |                 new_position: new_position,
[INFO] [stdout] ...   |
[INFO] [stdout] 130 | |             assert!(moves.contains(&expected_move));
[INFO] [stdout] 131 | |         });
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 122 |         let _ = [(3, 4), (4, 3), (4, 2), (6, 2), (5, 3)].map(|new_position| {
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stdout]    --> src/piece/queen.rs:143:9
[INFO] [stdout]     |
[INFO] [stdout] 143 | /         [
[INFO] [stdout] 144 | |             (3, 4, None),
[INFO] [stdout] 145 | |             (4, 3, None),
[INFO] [stdout] 146 | |             (4, 2, None),
[INFO] [stdout] ...   |
[INFO] [stdout] 170 | |             assert!(moves.contains(&expected_move));
[INFO] [stdout] 171 | |         });
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 143 |         let _ = [
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stdout]   --> src/piece/rook.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 70 | /         [
[INFO] [stdout] 71 | |             (6, 6),
[INFO] [stdout] 72 | |             (6, 7),
[INFO] [stdout] 73 | |             (7, 5),
[INFO] [stdout] ...  |
[INFO] [stdout] 94 | |             assert!(moves.contains(&expected_move));
[INFO] [stdout] 95 | |         });
[INFO] [stdout]    | |__________^
[INFO] [stdout]    |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 70 |         let _ = [
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stdout]    --> src/piece/rook.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 107 | /         [(6, 6), (6, 4), (6, 3), (6, 2), (5, 5), (4, 5)].map(|new_position| {
[INFO] [stdout] 108 | |             let expected_move = Move {
[INFO] [stdout] 109 | |                 original_position: (6, 5),
[INFO] [stdout] 110 | |                 new_position,
[INFO] [stdout] ...   |
[INFO] [stdout] 115 | |             assert!(moves.contains(&expected_move));
[INFO] [stdout] 116 | |         });
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 107 |         let _ = [(6, 6), (6, 4), (6, 3), (6, 2), (5, 5), (4, 5)].map(|new_position| {
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stdout]    --> src/piece/rook.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 128 | /         [
[INFO] [stdout] 129 | |             ((6, 6), None),
[INFO] [stdout] 130 | |             ((6, 4), None),
[INFO] [stdout] 131 | |             ((6, 3), None),
[INFO] [stdout] ...   |
[INFO] [stdout] 152 | |             assert!(moves.contains(&expected_move));
[INFO] [stdout] 153 | |         });
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 128 |         let _ = [
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.73s
[INFO] running `Command { std: "docker" "inspect" "b4b2159492fc70c870d3d8683a8a9aa0448fa76d28eef1b863cd74e313ec6bdc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b4b2159492fc70c870d3d8683a8a9aa0448fa76d28eef1b863cd74e313ec6bdc", kill_on_drop: false }`
[INFO] [stdout] b4b2159492fc70c870d3d8683a8a9aa0448fa76d28eef1b863cd74e313ec6bdc
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 2cefa5a519365a594180cd65c81a2538ef07fe5334e543e9a13f799d2b7118f3
[INFO] running `Command { std: "docker" "start" "-a" "2cefa5a519365a594180cd65c81a2538ef07fe5334e543e9a13f799d2b7118f3", kill_on_drop: false }`
[INFO] [stderr] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stderr]   --> src/piece/bishop.rs:76:9
[INFO] [stderr]    |
[INFO] [stderr] 76 | /         [
[INFO] [stderr] 77 | |             (0, 7),
[INFO] [stderr] 78 | |             (0, 3),
[INFO] [stderr] 79 | |             (1, 6),
[INFO] [stderr] ...  |
[INFO] [stderr] 97 | |             assert!(moves.contains(&expected_move));
[INFO] [stderr] 98 | |         });
[INFO] [stderr]    | |__________^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 76 |         let _ = [
[INFO] [stderr]    |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stderr]    --> src/piece/bishop.rs:113:9
[INFO] [stderr]     |
[INFO] [stderr] 113 | /         [(0, 7), (0, 3), (1, 6), (1, 4), (3, 6), (4, 7)].map(|(new_col, new_row)| {
[INFO] [stderr] 114 | |             let expected_move = Move {
[INFO] [stderr] 115 | |                 original_position: (2, 5),
[INFO] [stderr] 116 | |                 new_position: (new_col, new_row),
[INFO] [stderr] ...   |
[INFO] [stderr] 121 | |             assert!(moves.contains(&expected_move));
[INFO] [stderr] 122 | |         });
[INFO] [stderr]     | |__________^
[INFO] [stderr]     |
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 113 |         let _ = [(0, 7), (0, 3), (1, 6), (1, 4), (3, 6), (4, 7)].map(|(new_col, new_row)| {
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stderr]    --> src/piece/bishop.rs:136:9
[INFO] [stderr]     |
[INFO] [stderr] 136 | /         [
[INFO] [stderr] 137 | |             (0, 3, None),
[INFO] [stderr] 138 | |             (1, 4, None),
[INFO] [stderr] 139 | |             (1, 6, Some(Pawn)),
[INFO] [stderr] ...   |
[INFO] [stderr] 155 | |             assert!(moves.contains(&expected_move));
[INFO] [stderr] 156 | |         });
[INFO] [stderr]     | |__________^
[INFO] [stderr]     |
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 136 |         let _ = [
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stderr]    --> src/piece/king.rs:87:9
[INFO] [stderr]     |
[INFO] [stderr]  87 | /         [
[INFO] [stderr]  88 | |             (2, 5),
[INFO] [stderr]  89 | |             (3, 5),
[INFO] [stderr]  90 | |             (4, 5),
[INFO] [stderr] ...   |
[INFO] [stderr] 105 | |             assert!(moves.contains(&expected_move));
[INFO] [stderr] 106 | |         });
[INFO] [stderr]     | |__________^
[INFO] [stderr]     |
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr]  87 |         let _ = [
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stderr]    --> src/piece/king.rs:118:9
[INFO] [stderr]     |
[INFO] [stderr] 118 | /         [(0, 1), (1, 1), (1, 0)].map(|(new_col, new_row)| {
[INFO] [stderr] 119 | |             let expected_move = Move {
[INFO] [stderr] 120 | |                 original_position: (0, 0),
[INFO] [stderr] 121 | |                 new_position: (new_col, new_row),
[INFO] [stderr] ...   |
[INFO] [stderr] 126 | |             assert!(moves.contains(&expected_move));
[INFO] [stderr] 127 | |         });
[INFO] [stderr]     | |__________^
[INFO] [stderr]     |
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 118 |         let _ = [(0, 1), (1, 1), (1, 0)].map(|(new_col, new_row)| {
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stderr]    --> src/piece/king.rs:149:9
[INFO] [stderr]     |
[INFO] [stderr] 149 | /         [
[INFO] [stderr] 150 | |             (2, 5),
[INFO] [stderr] 151 | |             (3, 5),
[INFO] [stderr] 152 | |             (4, 5),
[INFO] [stderr] ...   |
[INFO] [stderr] 167 | |             assert!(moves.contains(&expected_move));
[INFO] [stderr] 168 | |         });
[INFO] [stderr]     | |__________^
[INFO] [stderr]     |
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 149 |         let _ = [
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stderr]   --> src/piece/knight.rs:78:9
[INFO] [stderr]    |
[INFO] [stderr] 78 | /         [
[INFO] [stderr] 79 | |             (2, 2),
[INFO] [stderr] 80 | |             (3, 1),
[INFO] [stderr] 81 | |             (5, 1),
[INFO] [stderr] ...  |
[INFO] [stderr] 96 | |             assert!(moves.contains(&expected_move));
[INFO] [stderr] 97 | |         });
[INFO] [stderr]    | |__________^
[INFO] [stderr]    |
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 78 |         let _ = [
[INFO] [stderr]    |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stderr]    --> src/piece/knight.rs:109:9
[INFO] [stderr]     |
[INFO] [stderr] 109 | /         [(1, 2), (2, 1)].map(|(new_col, new_row)| {
[INFO] [stderr] 110 | |             let expected_move = Move {
[INFO] [stderr] 111 | |                 original_position: (0, 0),
[INFO] [stderr] 112 | |                 new_position: (new_col, new_row),
[INFO] [stderr] ...   |
[INFO] [stderr] 117 | |             assert!(moves.contains(&expected_move));
[INFO] [stderr] 118 | |         });
[INFO] [stderr]     | |__________^
[INFO] [stderr]     |
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 109 |         let _ = [(1, 2), (2, 1)].map(|(new_col, new_row)| {
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stderr]    --> src/piece/knight.rs:141:9
[INFO] [stderr]     |
[INFO] [stderr] 141 | /         [
[INFO] [stderr] 142 | |             (2, 2, Bishop),
[INFO] [stderr] 143 | |             (3, 1, Pawn),
[INFO] [stderr] 144 | |             (5, 1, Pawn),
[INFO] [stderr] ...   |
[INFO] [stderr] 159 | |             assert!(moves.contains(&expected_move));
[INFO] [stderr] 160 | |         });
[INFO] [stderr]     | |__________^
[INFO] [stderr]     |
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 141 |         let _ = [
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stderr]    --> src/piece/pawn.rs:308:9
[INFO] [stderr]     |
[INFO] [stderr] 308 | /         [(4, 2), (4, 3)].map(|(new_col, new_row)| {
[INFO] [stderr] 309 | |             let expected_move = Move {
[INFO] [stderr] 310 | |                 original_position: (4, 1),
[INFO] [stderr] 311 | |                 new_position: (new_col, new_row),
[INFO] [stderr] ...   |
[INFO] [stderr] 317 | |             assert!(moves.contains(&expected_move));
[INFO] [stderr] 318 | |         });
[INFO] [stderr]     | |__________^
[INFO] [stderr]     |
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 308 |         let _ = [(4, 2), (4, 3)].map(|(new_col, new_row)| {
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stderr]    --> src/piece/pawn.rs:330:9
[INFO] [stderr]     |
[INFO] [stderr] 330 | /         [(2, 5), (2, 4)].map(|(new_col, new_row)| {
[INFO] [stderr] 331 | |             let expected_move = Move {
[INFO] [stderr] 332 | |                 original_position: (2, 6),
[INFO] [stderr] 333 | |                 new_position: (new_col, new_row),
[INFO] [stderr] ...   |
[INFO] [stderr] 339 | |             assert!(moves.contains(&expected_move));
[INFO] [stderr] 340 | |         });
[INFO] [stderr]     | |__________^
[INFO] [stderr]     |
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 330 |         let _ = [(2, 5), (2, 4)].map(|(new_col, new_row)| {
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stderr]    --> src/piece/pawn.rs:352:9
[INFO] [stderr]     |
[INFO] [stderr] 352 | /         [(4, 2)].map(|(new_col, new_row)| {
[INFO] [stderr] 353 | |             let expected_move = Move {
[INFO] [stderr] 354 | |                 original_position: (4, 1),
[INFO] [stderr] 355 | |                 new_position: (new_col, new_row),
[INFO] [stderr] ...   |
[INFO] [stderr] 361 | |             assert!(moves.contains(&expected_move));
[INFO] [stderr] 362 | |         });
[INFO] [stderr]     | |__________^
[INFO] [stderr]     |
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 352 |         let _ = [(4, 2)].map(|(new_col, new_row)| {
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stderr]    --> src/piece/pawn.rs:374:9
[INFO] [stderr]     |
[INFO] [stderr] 374 | /         [(2, 5)].map(|(new_col, new_row)| {
[INFO] [stderr] 375 | |             let expected_move = Move {
[INFO] [stderr] 376 | |                 original_position: (2, 6),
[INFO] [stderr] 377 | |                 new_position: (new_col, new_row),
[INFO] [stderr] ...   |
[INFO] [stderr] 383 | |             assert!(moves.contains(&expected_move));
[INFO] [stderr] 384 | |         });
[INFO] [stderr]     | |__________^
[INFO] [stderr]     |
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 374 |         let _ = [(2, 5)].map(|(new_col, new_row)| {
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stderr]    --> src/piece/pawn.rs:396:9
[INFO] [stderr]     |
[INFO] [stderr] 396 | /         [(2, 4, Some(Knight)), (4, 4, Some(Queen)), (3, 4, None)].map(
[INFO] [stderr] 397 | |             |(new_col, new_row, taken_piece)| {
[INFO] [stderr] 398 | |                 let taken_piece = match taken_piece {
[INFO] [stderr] 399 | |                     Some(p) => Some(ChessPiece::new(p, Black)),
[INFO] [stderr] ...   |
[INFO] [stderr] 411 | |             },
[INFO] [stderr] 412 | |         );
[INFO] [stderr]     | |_________^
[INFO] [stderr]     |
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 396 |         let _ = [(2, 4, Some(Knight)), (4, 4, Some(Queen)), (3, 4, None)].map(
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stderr]    --> src/piece/pawn.rs:424:9
[INFO] [stderr]     |
[INFO] [stderr] 424 | /         [(2, 3, Some(King)), (4, 3, Some(Bishop)), (3, 3, None)].map(
[INFO] [stderr] 425 | |             |(new_col, new_row, taken_piece)| {
[INFO] [stderr] 426 | |                 let taken_piece = match taken_piece {
[INFO] [stderr] 427 | |                     Some(p) => Some(ChessPiece::new(p, White)),
[INFO] [stderr] ...   |
[INFO] [stderr] 439 | |             },
[INFO] [stderr] 440 | |         );
[INFO] [stderr]     | |_________^
[INFO] [stderr]     |
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 424 |         let _ = [(2, 3, Some(King)), (4, 3, Some(Bishop)), (3, 3, None)].map(
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stderr]    --> src/piece/pawn.rs:493:9
[INFO] [stderr]     |
[INFO] [stderr] 493 | /         [Queen, Rook, Bishop, Knight].map(|promotion_option| {
[INFO] [stderr] 494 | |             let expected_move = Move {
[INFO] [stderr] 495 | |                 original_position: (0, 6),
[INFO] [stderr] 496 | |                 new_position: (0, 7),
[INFO] [stderr] ...   |
[INFO] [stderr] 501 | |             assert!(moves.contains(&expected_move));
[INFO] [stderr] 502 | |         });
[INFO] [stderr]     | |__________^
[INFO] [stderr]     |
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 493 |         let _ = [Queen, Rook, Bishop, Knight].map(|promotion_option| {
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stderr]    --> src/piece/pawn.rs:515:9
[INFO] [stderr]     |
[INFO] [stderr] 515 | /         [Queen, Rook, Bishop, Knight].map(|promotion_option| {
[INFO] [stderr] 516 | |             let expected_move = Move {
[INFO] [stderr] 517 | |                 original_position: (6, 1),
[INFO] [stderr] 518 | |                 new_position: (6, 0),
[INFO] [stderr] ...   |
[INFO] [stderr] 523 | |             assert!(moves.contains(&expected_move));
[INFO] [stderr] 524 | |         });
[INFO] [stderr]     | |__________^
[INFO] [stderr]     |
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 515 |         let _ = [Queen, Rook, Bishop, Knight].map(|promotion_option| {
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stderr]    --> src/piece/queen.rs:79:9
[INFO] [stderr]     |
[INFO] [stderr]  79 | /         [
[INFO] [stderr]  80 | |             (4, 1),
[INFO] [stderr]  81 | |             (3, 0),
[INFO] [stderr]  82 | |             (5, 1),
[INFO] [stderr] ...   |
[INFO] [stderr] 109 | |             assert!(moves.contains(&expected_move));
[INFO] [stderr] 110 | |         });
[INFO] [stderr]     | |__________^
[INFO] [stderr]     |
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr]  79 |         let _ = [
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stderr]    --> src/piece/queen.rs:122:9
[INFO] [stderr]     |
[INFO] [stderr] 122 | /         [(3, 4), (4, 3), (4, 2), (6, 2), (5, 3)].map(|new_position| {
[INFO] [stderr] 123 | |             let expected_move = Move {
[INFO] [stderr] 124 | |                 original_position: (5, 2),
[INFO] [stderr] 125 | |                 new_position: new_position,
[INFO] [stderr] ...   |
[INFO] [stderr] 130 | |             assert!(moves.contains(&expected_move));
[INFO] [stderr] 131 | |         });
[INFO] [stderr]     | |__________^
[INFO] [stderr]     |
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 122 |         let _ = [(3, 4), (4, 3), (4, 2), (6, 2), (5, 3)].map(|new_position| {
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stderr]    --> src/piece/queen.rs:143:9
[INFO] [stderr]     |
[INFO] [stderr] 143 | /         [
[INFO] [stderr] 144 | |             (3, 4, None),
[INFO] [stderr] 145 | |             (4, 3, None),
[INFO] [stderr] 146 | |             (4, 2, None),
[INFO] [stderr] ...   |
[INFO] [stderr] 170 | |             assert!(moves.contains(&expected_move));
[INFO] [stderr] 171 | |         });
[INFO] [stderr]     | |__________^
[INFO] [stderr]     |
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 143 |         let _ = [
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stderr]   --> src/piece/rook.rs:70:9
[INFO] [stderr]    |
[INFO] [stderr] 70 | /         [
[INFO] [stderr] 71 | |             (6, 6),
[INFO] [stderr] 72 | |             (6, 7),
[INFO] [stderr] 73 | |             (7, 5),
[INFO] [stderr] ...  |
[INFO] [stderr] 94 | |             assert!(moves.contains(&expected_move));
[INFO] [stderr] 95 | |         });
[INFO] [stderr]    | |__________^
[INFO] [stderr]    |
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 70 |         let _ = [
[INFO] [stderr]    |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stderr]    --> src/piece/rook.rs:107:9
[INFO] [stderr]     |
[INFO] [stderr] 107 | /         [(6, 6), (6, 4), (6, 3), (6, 2), (5, 5), (4, 5)].map(|new_position| {
[INFO] [stderr] 108 | |             let expected_move = Move {
[INFO] [stderr] 109 | |                 original_position: (6, 5),
[INFO] [stderr] 110 | |                 new_position,
[INFO] [stderr] ...   |
[INFO] [stderr] 115 | |             assert!(moves.contains(&expected_move));
[INFO] [stderr] 116 | |         });
[INFO] [stderr]     | |__________^
[INFO] [stderr]     |
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 107 |         let _ = [(6, 6), (6, 4), (6, 3), (6, 2), (5, 5), (4, 5)].map(|new_position| {
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `array::<impl [T; N]>::map` that must be used
[INFO] [stderr]    --> src/piece/rook.rs:128:9
[INFO] [stderr]     |
[INFO] [stderr] 128 | /         [
[INFO] [stderr] 129 | |             ((6, 6), None),
[INFO] [stderr] 130 | |             ((6, 4), None),
[INFO] [stderr] 131 | |             ((6, 3), None),
[INFO] [stderr] ...   |
[INFO] [stderr] 152 | |             assert!(moves.contains(&expected_move));
[INFO] [stderr] 153 | |         });
[INFO] [stderr]     | |__________^
[INFO] [stderr]     |
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 128 |         let _ = [
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `simple_chess` (lib test) generated 23 warnings
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.02s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/simple_chess-a6d89eb62e37a45b)
[INFO] [stdout] 
[INFO] [stdout] running 77 tests
[INFO] [stdout] test chess_game_builder::tests::build_basic_game_with_defaults ... ok
[INFO] [stdout] test chess_game::tests::new_game_start_correctly ... ok
[INFO] [stdout] test chess_game_builder::tests::build_game ... ok
[INFO] [stdout] test chess_game_move_analyzer::tests::can_castle_if_in_check ... ok
[INFO] [stdout] test chess_game_move_analyzer::tests::can_en_passant ... ok
[INFO] [stdout] test chess_game_move_analyzer::tests::can_not_castle_if_in_check ... ok
[INFO] [stdout] test chess_game_move_analyzer::tests::can_not_castle_if_you_do_not_have_the_right ... ok
[INFO] [stdout] test chess_game_move_analyzer::tests::can_not_castle_into_check ... ok
[INFO] [stdout] test chess_game_move_analyzer::tests::can_not_castle_through_check ... ok
[INFO] [stdout] test chess_game_move_analyzer::tests::cannot_en_passant_if_pawn_pinned ... ok
[INFO] [stdout] test chess_game_move_analyzer::tests::can_not_castle_through_pieces ... ok
[INFO] [stdout] test chess_game_move_analyzer::tests::more_complex_checkmate ... ok
[INFO] [stdout] test chess_game_move_analyzer::tests::pawns_can_promote ... ok
[INFO] [stdout] test chess_game_move_analyzer::tests::get_legal_moves_for_starting_position ... ok
[INFO] [stdout] test chess_game_move_analyzer::tests::pieces_can_be_pinned_to_the_king ... ok
[INFO] [stdout] test chess_game_move_analyzer::tests::king_in_check_limits_legal_moves ... ok
[INFO] [stdout] test chess_game_move_analyzer::tests::player_in_checkmate_has_no_legal_moves ... ok
[INFO] [stdout] test chess_game_state_analyzer::tests::game_in_check_has_legal_moves ... ok
[INFO] [stdout] test chess_game_move_analyzer::tests::stalemate_should_yield_no_legal_moves ... ok
[INFO] [stdout] test chess_game_state_analyzer::tests::game_is_in_check_mate ... ok
[INFO] [stdout] test chess_game_state_analyzer::tests::game_is_in_stalemate ... ok
[INFO] [stdout] test chess_game_state_analyzer::tests::game_with_starting_position_has_sufficient_material ... ok
[INFO] [stdout] test chess_game_state_analyzer::tests::king_and_bishop_or_knight_is_insufficient_material ... ok
[INFO] [stdout] test chess_game_state_analyzer::tests::one_player_has_insufficient_material_the_other_does_not ... ok
[INFO] [stdout] test chess_game_state_analyzer::tests::only_kings_is_insufficient_material ... ok
[INFO] [stdout] test codec::binary::tests::encoding_tests::encode_non_standard_board ... ok
[INFO] [stdout] test codec::forsyth_edwards_notation::tests::encoding_tests::building_game_from_empty_string ... ok
[INFO] [stdout] test chess_game_state_analyzer::tests::game_with_starting_position_is_in_progress ... ok
[INFO] [stdout] test codec::forsyth_edwards_notation::tests::encoding_tests::parse_fen_current_turn_string ... ok
[INFO] [stdout] test codec::forsyth_edwards_notation::tests::encoding_tests::building_game_in_starting_position ... ok
[INFO] [stdout] test codec::forsyth_edwards_notation::tests::encoding_tests::parse_fen_all_castling_rights_string ... ok
[INFO] [stdout] test codec::forsyth_edwards_notation::tests::encoding_tests::parse_fen_en_passant_string ... ok
[INFO] [stdout] test codec::forsyth_edwards_notation::tests::decoding_tests::create_new_game_from_string_and_verify_encoding_of_game ... ok
[INFO] [stdout] test codec::forsyth_edwards_notation::tests::encoding_tests::parse_fen_board_from_invalid_string ... ok
[INFO] [stdout] test codec::forsyth_edwards_notation::tests::encoding_tests::parse_fen_invalid_current_turn_string ... ok
[INFO] [stdout] test codec::binary::tests::encoding_tests::encode_starting_position ... ok
[INFO] [stdout] test codec::forsyth_edwards_notation::tests::encoding_tests::parse_fen_invalid_en_passant_string ... ok
[INFO] [stdout] test codec::forsyth_edwards_notation::tests::encoding_tests::parse_fen_half_move_counter_string ... ok
[INFO] [stdout] test codec::forsyth_edwards_notation::tests::encoding_tests::parse_fen_invalid_move_counter_string ... ok
[INFO] [stdout] test codec::forsyth_edwards_notation::tests::encoding_tests::parse_fen_invalid_turn_counter_string ... ok
[INFO] [stdout] test codec::forsyth_edwards_notation::tests::encoding_tests::parse_fen_invalid_castling_rights_string ... ok
[INFO] [stdout] test codec::forsyth_edwards_notation::tests::encoding_tests::parse_fen_no_castling_rights_string ... ok
[INFO] [stdout] test codec::forsyth_edwards_notation::tests::encoding_tests::parse_fen_no_en_passant_string ... ok
[INFO] [stdout] test piece::bishop::tests::bishop_blocked_by_friendly_pieces_movement ... ok
[INFO] [stdout] test piece::bishop::tests::bishop_movement ... ok
[INFO] [stdout] test codec::forsyth_edwards_notation::tests::encoding_tests::parse_fen_turn_counter_string ... ok
[INFO] [stdout] test codec::forsyth_edwards_notation::tests::encoding_tests::parse_fen_starting_position_to_board ... ok
[INFO] [stdout] test piece::king::tests::king_can_move_to_any_open_space_around_him ... ok
[INFO] [stdout] test piece::bishop::tests::bishop_can_take ... ok
[INFO] [stdout] test piece::king::tests::king_can_take_opponents ... ok
[INFO] [stdout] test piece::king::tests::king_respects_teammates ... ok
[INFO] [stdout] test piece::king::tests::king_respects_board_boundaries ... ok
[INFO] [stdout] test piece::knight::tests::knight_respects_board_boundaries ... ok
[INFO] [stdout] test piece::knight::tests::knight_respects_teammates ... ok
[INFO] [stdout] test piece::knight::tests::knight_can_move_to_open_spaces ... ok
[INFO] [stdout] test piece::knight::tests::knight_yeets_onto_opponents ... ok
[INFO] [stdout] test piece::pawn::tests::black_en_passent ... ok
[INFO] [stdout] test piece::pawn::tests::black_pawn_moves_forward ... ok
[INFO] [stdout] test piece::pawn::tests::white_pawn_blocked_from_moving_2_spaces_if_on_starting_square ... ok
[INFO] [stdout] test piece::pawn::tests::white_pawn_can_move_2_spaces_if_on_starting_square ... ok
[INFO] [stdout] test piece::pawn::tests::black_pawn_blocked_from_moving_2_spaces_if_on_starting_square ... ok
[INFO] [stdout] test piece::pawn::tests::white_pawn_can_take_to_either_side ... ok
[INFO] [stdout] test codec::long_algebraic_notation::tests::encode_game_to_string ... ok
[INFO] [stdout] test piece::queen::tests::queen_can_move_freely ... ok
[INFO] [stdout] test piece::pawn::tests::black_pawn_can_promote ... ok
[INFO] [stdout] test piece::pawn::tests::white_en_passent ... ok
[INFO] [stdout] test piece::pawn::tests::black_pawn_can_move_2_spaces_if_on_starting_square ... ok
[INFO] [stdout] test piece::pawn::tests::pawn_can_not_trample_teammate ... ok
[INFO] [stdout] test piece::queen::tests::queen_can_take_opponents ... ok
[INFO] [stdout] test codec::long_algebraic_notation::tests::decode_string_to_game ... ok
[INFO] [stdout] test piece::queen::tests::queen_respects_teammates ... ok
[INFO] [stdout] test piece::rook::tests::rook_can_move_freely ... ok
[INFO] [stdout] test piece::pawn::tests::white_pawn_moves_forward ... ok
[INFO] [stdout] test piece::pawn::tests::black_pawn_can_take_to_either_side ... ok
[INFO] [stderr]    Doc-tests simple_chess
[INFO] [stdout] test piece::pawn::tests::white_pawn_can_promote ... ok
[INFO] [stdout] test piece::rook::tests::rook_is_blocked_by_teammates ... ok
[INFO] [stdout] test piece::rook::tests::rook_can_take_opponent ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 77 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 21 tests
[INFO] [stdout] test src/codec/long_algebraic_notation.rs - codec::long_algebraic_notation::encode_move_as_long_algebraic_notation (line 19) ... ok
[INFO] [stdout] test src/chess_game.rs - chess_game::ChessGame::get_current_players_turn (line 144) ... ok
[INFO] [stdout] test src/codec/long_algebraic_notation.rs - codec::long_algebraic_notation::build_game_from_long_algebraic_notation (line 134) ... ok
[INFO] [stdout] test src/chess_game.rs - chess_game::ChessGame::get_board_mut (line 126) ... ok
[INFO] [stdout] test src/chess_game.rs - chess_game::ChessGame::get_last_move (line 217) ... ok
[INFO] [stdout] test src/chess_game.rs - chess_game::ChessGame::get_moves (line 198) ... ok
[INFO] [stdout] test src/codec/long_algebraic_notation.rs - codec::long_algebraic_notation::encode_game (line 88) ... ok
[INFO] [stdout] test src/codec/forsyth_edwards_notation.rs - codec::forsyth_edwards_notation::build_game_from_string (line 75) ... ok
[INFO] [stdout] test src/chess_game_builder.rs - chess_game_builder::ChessGameBuilder::build (line 65) ... ok
[INFO] [stdout] test src/chess_game.rs - chess_game::ChessGame::undo_last_move (line 325) ... ok
[INFO] [stdout] test src/chess_game_builder.rs - chess_game_builder::ChessGameBuilder::new (line 32) ... ok
[INFO] [stdout] test src/color.rs - color::Color::opposite (line 15) ... ok
[INFO] [stdout] test src/chess_game.rs - chess_game::ChessGame::get_turn_number (line 181) ... ok
[INFO] [stdout] test src/chess_game.rs - chess_game::ChessGame::get_50_move_rule_counter (line 238) ... ok
[INFO] [stdout] test src/chess_game.rs - chess_game::ChessGame::new (line 62) ... ok
[INFO] [stdout] test src/chess_move.rs - chess_move::ChessMoveType::make_move (line 73) ... ok
[INFO] [stdout] test src/piece/mod.rs - piece::ChessPiece::get_color (line 58) ... ok
[INFO] [stdout] test src/piece/mod.rs - piece::ChessPiece::as_utf_str (line 94) ... ok
[INFO] [stdout] test src/piece/mod.rs - piece::ChessPiece::possible_moves (line 138) ... ok
[INFO] [stdout] test src/piece/mod.rs - piece::ChessPiece::new (line 43) ... ok
[INFO] [stdout] test src/piece/mod.rs - piece::ChessPiece::get_piece_type (line 76) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.38s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "2cefa5a519365a594180cd65c81a2538ef07fe5334e543e9a13f799d2b7118f3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2cefa5a519365a594180cd65c81a2538ef07fe5334e543e9a13f799d2b7118f3", kill_on_drop: false }`
[INFO] [stdout] 2cefa5a519365a594180cd65c81a2538ef07fe5334e543e9a13f799d2b7118f3
