[INFO] fetching crate simple_chess 1.0.6... [INFO] testing simple_chess-1.0.6 against try#b83b707f97d809763b7861afa7638871f3339a33 for pr-145838-1 [INFO] extracting crate simple_chess 1.0.6 into /workspace/builds/worker-2-tc2/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-2-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate simple_chess 1.0.6 on toolchain b83b707f97d809763b7861afa7638871f3339a33 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b83b707f97d809763b7861afa7638871f3339a33" "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" "+b83b707f97d809763b7861afa7638871f3339a33" "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" "+b83b707f97d809763b7861afa7638871f3339a33" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+b83b707f97d809763b7861afa7638871f3339a33" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] fddd72fda1ba6652141c140651d2f00b5da77775be08ca6af327c581b4e6f299 [INFO] running `Command { std: "docker" "start" "-a" "fddd72fda1ba6652141c140651d2f00b5da77775be08ca6af327c581b4e6f299", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "fddd72fda1ba6652141c140651d2f00b5da77775be08ca6af327c581b4e6f299", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fddd72fda1ba6652141c140651d2f00b5da77775be08ca6af327c581b4e6f299", kill_on_drop: false }` [INFO] [stdout] fddd72fda1ba6652141c140651d2f00b5da77775be08ca6af327c581b4e6f299 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+b83b707f97d809763b7861afa7638871f3339a33" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8bc59cb18730533177cd6895a1f0ff37b4752de7dc27709725810b9431413855 [INFO] running `Command { std: "docker" "start" "-a" "8bc59cb18730533177cd6895a1f0ff37b4752de7dc27709725810b9431413855", kill_on_drop: false }` [INFO] [stderr] Compiling game_board v1.0.3 [INFO] [stderr] Compiling simple_chess v1.0.6 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.80s [INFO] running `Command { std: "docker" "inspect" "8bc59cb18730533177cd6895a1f0ff37b4752de7dc27709725810b9431413855", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8bc59cb18730533177cd6895a1f0ff37b4752de7dc27709725810b9431413855", kill_on_drop: false }` [INFO] [stdout] 8bc59cb18730533177cd6895a1f0ff37b4752de7dc27709725810b9431413855 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+b83b707f97d809763b7861afa7638871f3339a33" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e970375728964ba48190f205c4e89090df47f77125058a191990a776b0824c03 [INFO] running `Command { std: "docker" "start" "-a" "e970375728964ba48190f205c4e89090df47f77125058a191990a776b0824c03", kill_on_drop: false }` [INFO] [stderr] Compiling simple_chess v1.0.6 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused return value of `array::::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::::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::::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::::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::::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::::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::::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::::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::::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::::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::::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::::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::::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::::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::::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::::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::::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::::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::::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::::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::::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::::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::::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 1.26s [INFO] running `Command { std: "docker" "inspect" "e970375728964ba48190f205c4e89090df47f77125058a191990a776b0824c03", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e970375728964ba48190f205c4e89090df47f77125058a191990a776b0824c03", kill_on_drop: false }` [INFO] [stdout] e970375728964ba48190f205c4e89090df47f77125058a191990a776b0824c03 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+b83b707f97d809763b7861afa7638871f3339a33" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 143e9652801cfa75111987993387e6acf511504ac1280f377e177d63581011b1 [INFO] running `Command { std: "docker" "start" "-a" "143e9652801cfa75111987993387e6acf511504ac1280f377e177d63581011b1", kill_on_drop: false }` [INFO] [stderr] warning: unused return value of `array::::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::::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::::map` that must be used [INFO] [stdout] [INFO] [stderr] --> src/piece/bishop.rs:136:9 [INFO] [stdout] running 77 tests [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] [stdout] test chess_game_move_analyzer::tests::can_not_castle_if_in_check ... ok [INFO] [stderr] ... | [INFO] [stdout] test chess_game_builder::tests::build_game ... ok [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::::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::::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] [stdout] test chess_game_builder::tests::build_basic_game_with_defaults ... ok [INFO] [stderr] | +++++++ [INFO] [stdout] test chess_game_move_analyzer::tests::can_castle_if_in_check ... ok [INFO] [stderr] [INFO] [stdout] test chess_game::tests::new_game_start_correctly ... ok [INFO] [stderr] warning: unused return value of `array::::map` that must be used [INFO] [stdout] test chess_game_move_analyzer::tests::can_en_passant ... ok [INFO] [stderr] --> src/piece/king.rs:149:9 [INFO] [stdout] test chess_game_move_analyzer::tests::can_not_castle_into_check ... ok [INFO] [stderr] | [INFO] [stdout] test chess_game_move_analyzer::tests::can_not_castle_if_you_do_not_have_the_right ... ok [INFO] [stderr] 149 | / [ [INFO] [stdout] test chess_game_move_analyzer::tests::can_not_castle_through_check ... ok [INFO] [stderr] 150 | | (2, 5), [INFO] [stdout] test chess_game_move_analyzer::tests::can_not_castle_through_pieces ... ok [INFO] [stderr] 151 | | (3, 5), [INFO] [stdout] test chess_game_move_analyzer::tests::cannot_en_passant_if_pawn_pinned ... ok [INFO] [stderr] 152 | | (4, 5), [INFO] [stdout] test chess_game_move_analyzer::tests::pawns_can_promote ... ok [INFO] [stderr] ... | [INFO] [stdout] test chess_game_move_analyzer::tests::more_complex_checkmate ... ok [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::::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] [stdout] test chess_game_move_analyzer::tests::king_in_check_limits_legal_moves ... ok [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::::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::::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::::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::::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] [stdout] test chess_game_move_analyzer::tests::stalemate_should_yield_no_legal_moves ... ok [INFO] [stderr] 340 | | }); [INFO] [stdout] test chess_game_move_analyzer::tests::player_in_checkmate_has_no_legal_moves ... ok [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::::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] [stdout] test chess_game_move_analyzer::tests::pieces_can_be_pinned_to_the_king ... ok [INFO] [stderr] [INFO] [stderr] warning: unused return value of `array::::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::::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] [stdout] test chess_game_move_analyzer::tests::get_legal_moves_for_starting_position ... ok [INFO] [stderr] | [INFO] [stdout] test chess_game_state_analyzer::tests::game_in_check_has_legal_moves ... ok [INFO] [stderr] 396 | let _ = [(2, 4, Some(Knight)), (4, 4, Some(Queen)), (3, 4, None)].map( [INFO] [stdout] test chess_game_state_analyzer::tests::game_is_in_stalemate ... ok [INFO] [stderr] | +++++++ [INFO] [stdout] test chess_game_state_analyzer::tests::game_is_in_check_mate ... ok [INFO] [stderr] [INFO] [stdout] test chess_game_state_analyzer::tests::game_with_starting_position_has_sufficient_material ... ok [INFO] [stderr] warning: unused return value of `array::::map` that must be used [INFO] [stdout] test chess_game_state_analyzer::tests::king_and_bishop_or_knight_is_insufficient_material ... ok [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::::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::::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::::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] [stdout] test chess_game_state_analyzer::tests::only_kings_is_insufficient_material ... ok [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::::map` that must be used [INFO] [stderr] --> src/piece/queen.rs:122:9 [INFO] [stderr] | [INFO] [stdout] test codec::binary::tests::encoding_tests::encode_non_standard_board ... ok [INFO] [stderr] 122 | / [(3, 4), (4, 3), (4, 2), (6, 2), (5, 3)].map(|new_position| { [INFO] [stdout] test codec::forsyth_edwards_notation::tests::encoding_tests::building_game_in_starting_position ... ok [INFO] [stderr] 123 | | let expected_move = Move { [INFO] [stdout] test codec::binary::tests::encoding_tests::encode_starting_position ... ok [INFO] [stderr] 124 | | original_position: (5, 2), [INFO] [stdout] test codec::forsyth_edwards_notation::tests::encoding_tests::building_game_from_empty_string ... ok [INFO] [stderr] 125 | | new_position: new_position, [INFO] [stdout] test chess_game_state_analyzer::tests::one_player_has_insufficient_material_the_other_does_not ... ok [INFO] [stderr] ... | [INFO] [stdout] test codec::forsyth_edwards_notation::tests::decoding_tests::create_new_game_from_string_and_verify_encoding_of_game ... ok [INFO] [stderr] 130 | | assert!(moves.contains(&expected_move)); [INFO] [stdout] test chess_game_state_analyzer::tests::game_with_starting_position_is_in_progress ... ok [INFO] [stderr] 131 | | }); [INFO] [stdout] test codec::forsyth_edwards_notation::tests::encoding_tests::parse_fen_all_castling_rights_string ... ok [INFO] [stderr] | |__________^ [INFO] [stdout] test codec::forsyth_edwards_notation::tests::encoding_tests::parse_fen_board_from_invalid_string ... ok [INFO] [stderr] | [INFO] [stdout] test codec::forsyth_edwards_notation::tests::encoding_tests::parse_fen_en_passant_string ... ok [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] test codec::forsyth_edwards_notation::tests::encoding_tests::parse_fen_current_turn_string ... ok [INFO] [stderr] | [INFO] [stdout] test codec::forsyth_edwards_notation::tests::encoding_tests::parse_fen_half_move_counter_string ... ok [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::::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::::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::::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::::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-231f67925ef88049) [INFO] [stdout] test codec::forsyth_edwards_notation::tests::encoding_tests::parse_fen_starting_position_to_board ... ok [INFO] [stdout] test codec::forsyth_edwards_notation::tests::encoding_tests::parse_fen_no_en_passant_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_no_castling_rights_string ... 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_invalid_castling_rights_string ... ok [INFO] [stdout] test codec::forsyth_edwards_notation::tests::encoding_tests::parse_fen_invalid_current_turn_string ... ok [INFO] [stdout] test codec::forsyth_edwards_notation::tests::encoding_tests::parse_fen_invalid_en_passant_string ... ok [INFO] [stdout] test piece::bishop::tests::bishop_can_take ... ok [INFO] [stdout] test piece::bishop::tests::bishop_movement ... ok [INFO] [stdout] test codec::forsyth_edwards_notation::tests::encoding_tests::parse_fen_invalid_move_counter_string ... ok [INFO] [stdout] test piece::bishop::tests::bishop_blocked_by_friendly_pieces_movement ... ok [INFO] [stdout] test piece::king::tests::king_can_move_to_any_open_space_around_him ... ok [INFO] [stdout] test piece::king::tests::king_can_take_opponents ... ok [INFO] [stdout] test codec::long_algebraic_notation::tests::decode_string_to_game ... ok [INFO] [stdout] test piece::king::tests::king_respects_teammates ... ok [INFO] [stdout] test piece::knight::tests::knight_can_move_to_open_spaces ... ok [INFO] [stdout] test piece::knight::tests::knight_respects_board_boundaries ... ok [INFO] [stdout] test piece::knight::tests::knight_yeets_onto_opponents ... 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::black_pawn_can_move_2_spaces_if_on_starting_square ... ok [INFO] [stdout] test piece::pawn::tests::black_pawn_can_promote ... ok [INFO] [stdout] test piece::pawn::tests::black_pawn_can_take_to_either_side ... ok [INFO] [stdout] test piece::pawn::tests::black_pawn_moves_forward ... ok [INFO] [stdout] test piece::pawn::tests::pawn_can_not_trample_teammate ... ok [INFO] [stdout] test piece::pawn::tests::white_en_passent ... ok [INFO] [stdout] test piece::pawn::tests::black_en_passent ... ok [INFO] [stdout] test piece::king::tests::king_respects_board_boundaries ... 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::white_pawn_can_promote ... ok [INFO] [stdout] test piece::pawn::tests::white_pawn_can_take_to_either_side ... ok [INFO] [stdout] test piece::pawn::tests::white_pawn_moves_forward ... ok [INFO] [stdout] test piece::queen::tests::queen_can_move_freely ... ok [INFO] [stdout] test piece::queen::tests::queen_can_take_opponents ... 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::rook::tests::rook_can_take_opponent ... ok [INFO] [stdout] test piece::knight::tests::knight_respects_teammates ... ok [INFO] [stdout] test piece::rook::tests::rook_is_blocked_by_teammates ... ok [INFO] [stdout] test codec::long_algebraic_notation::tests::encode_game_to_string ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 77 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s [INFO] [stdout] [INFO] [stderr] Doc-tests simple_chess [INFO] [stdout] [INFO] [stdout] running 21 tests [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_game.rs - chess_game::ChessGame::get_last_move (line 217) ... ok [INFO] [stdout] test src/chess_game_builder.rs - chess_game_builder::ChessGameBuilder::new (line 32) ... ok [INFO] [stdout] test src/chess_game.rs - chess_game::ChessGame::get_moves (line 198) ... 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::undo_last_move (line 325) ... 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::get_board_mut (line 126) ... ok [INFO] [stdout] test src/chess_game.rs - chess_game::ChessGame::get_current_players_turn (line 144) ... 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/codec/long_algebraic_notation.rs - codec::long_algebraic_notation::encode_game (line 88) ... 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_move.rs - chess_move::ChessMoveType::make_move (line 73) ... ok [INFO] [stdout] test src/color.rs - color::Color::opposite (line 15) ... 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::new (line 43) ... ok [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/piece/mod.rs - piece::ChessPiece::get_color (line 58) ... ok [INFO] [stdout] test src/piece/mod.rs - piece::ChessPiece::get_piece_type (line 76) ... ok [INFO] [stdout] test src/piece/mod.rs - piece::ChessPiece::possible_moves (line 138) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.58s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "143e9652801cfa75111987993387e6acf511504ac1280f377e177d63581011b1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "143e9652801cfa75111987993387e6acf511504ac1280f377e177d63581011b1", kill_on_drop: false }` [INFO] [stdout] 143e9652801cfa75111987993387e6acf511504ac1280f377e177d63581011b1