[INFO] cloning repository https://github.com/mtthwcmpbll/rust-battleship
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mtthwcmpbll/rust-battleship" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmtthwcmpbll%2Frust-battleship", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmtthwcmpbll%2Frust-battleship'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e3e5941b9164abb58860785d0dc37d3140be47f0
[INFO] testing mtthwcmpbll/rust-battleship against master#d98a5da813da67eb189387b8ccfb73cf481275d8+rustflags=-Copt-level=3 for pr-138759
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmtthwcmpbll%2Frust-battleship" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/mtthwcmpbll/rust-battleship
[INFO] finished tweaking git repo https://github.com/mtthwcmpbll/rust-battleship
[INFO] tweaked toml for git repo https://github.com/mtthwcmpbll/rust-battleship written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/mtthwcmpbll/rust-battleship on toolchain d98a5da813da67eb189387b8ccfb73cf481275d8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/mtthwcmpbll/rust-battleship already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e919e61937047b64d096fea0ad7d6c364ff942935b76a406051adebb36938a4b
[INFO] running `Command { std: "docker" "start" "-a" "e919e61937047b64d096fea0ad7d6c364ff942935b76a406051adebb36938a4b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e919e61937047b64d096fea0ad7d6c364ff942935b76a406051adebb36938a4b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e919e61937047b64d096fea0ad7d6c364ff942935b76a406051adebb36938a4b", kill_on_drop: false }`
[INFO] [stdout] e919e61937047b64d096fea0ad7d6c364ff942935b76a406051adebb36938a4b
[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 -Copt-level=3" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 56ef6e8bac212bd49b861872ea8366b075d0f31058c073c78172d5b31655cfc2
[INFO] running `Command { std: "docker" "start" "-a" "56ef6e8bac212bd49b861872ea8366b075d0f31058c073c78172d5b31655cfc2", kill_on_drop: false }`
[INFO] [stderr]    Compiling game v0.1.0 (/opt/rustwide/workdir/game)
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> game/src/ship.rs:77:24
[INFO] [stdout]    |
[INFO] [stdout] 77 |                     if (self.damage[(x-self.x) as usize]) {
[INFO] [stdout]    |                        ^                                ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 77 -                     if (self.damage[(x-self.x) as usize]) {
[INFO] [stdout] 77 +                     if self.damage[(x-self.x) as usize] {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> game/src/ship.rs:89:24
[INFO] [stdout]    |
[INFO] [stdout] 89 |                     if (self.damage[(y-self.y) as usize]) {
[INFO] [stdout]    |                        ^                                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 89 -                     if (self.damage[(y-self.y) as usize]) {
[INFO] [stdout] 89 +                     if self.damage[(y-self.y) as usize] {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `max` and `min`
[INFO] [stdout]  --> game/src/board.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UndamagedShip`
[INFO] [stdout]  --> game/src/board.rs:4:48
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::board::CoordinateState::{OpenWater, UndamagedShip};
[INFO] [stdout]   |                                                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::board::ShipState::Undamaged`
[INFO] [stdout]  --> game/src/board.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::board::ShipState::Undamaged;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ShipOrientation`
[INFO] [stdout]  --> game/src/board.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     ShipOrientation,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Horizontal` and `Vertical` are never constructed
[INFO] [stdout]   --> game/src/ship.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 9  | pub enum ShipOrientation {
[INFO] [stdout]    |          --------------- variants in this enum
[INFO] [stdout] 10 |     Horizontal,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 11 |     Vertical,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `damage`, and `overlaps` are never used
[INFO] [stdout]   --> game/src/ship.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Ship {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 21 |     pub fn new(x: u8, y: u8, size: u8, orientation: ShipOrientation) -> Ship {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn damage(&mut self, i: usize) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn overlaps(&self, other_ship: &Ship) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `state` is never read
[INFO] [stdout]   --> game/src/board.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Board {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub state: BoardState,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `COMPLETE` is never constructed
[INFO] [stdout]   --> game/src/board.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum BoardState {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] 21 |     INCOMPLETE,
[INFO] [stdout] 22 |     COMPLETE,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BoardState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `with_ship` is never used
[INFO] [stdout]   --> game/src/board.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl Board {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn with_ship(&mut self, new_ship: Ship) -> &mut Board {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Miss` is never constructed
[INFO] [stdout]   --> game/src/board.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub enum CoordinateState {
[INFO] [stdout]    |          --------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 91 |     Miss,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `board` is never read
[INFO] [stdout]  --> game/src/game.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Game {
[INFO] [stdout]   |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 7 |     pub board: Board,
[INFO] [stdout]   |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling battleship v0.1.0 (/opt/rustwide/workdir/battleship)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.63s
[INFO] running `Command { std: "docker" "inspect" "56ef6e8bac212bd49b861872ea8366b075d0f31058c073c78172d5b31655cfc2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "56ef6e8bac212bd49b861872ea8366b075d0f31058c073c78172d5b31655cfc2", kill_on_drop: false }`
[INFO] [stdout] 56ef6e8bac212bd49b861872ea8366b075d0f31058c073c78172d5b31655cfc2
[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 -Copt-level=3" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a2de8d969e6672fa8cb697386104bf0cdcde02b31e36b7c0b645796062d667b4
[INFO] running `Command { std: "docker" "start" "-a" "a2de8d969e6672fa8cb697386104bf0cdcde02b31e36b7c0b645796062d667b4", kill_on_drop: false }`
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> game/src/ship.rs:77:24
[INFO] [stdout]    |
[INFO] [stdout] 77 |                     if (self.damage[(x-self.x) as usize]) {
[INFO] [stdout]    |                        ^                                ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 77 -                     if (self.damage[(x-self.x) as usize]) {
[INFO] [stdout] 77 +                     if self.damage[(x-self.x) as usize] {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> game/src/ship.rs:89:24
[INFO] [stdout]    |
[INFO] [stdout] 89 |                     if (self.damage[(y-self.y) as usize]) {
[INFO] [stdout]    |                        ^                                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 89 -                     if (self.damage[(y-self.y) as usize]) {
[INFO] [stdout] 89 +                     if self.damage[(y-self.y) as usize] {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `max` and `min`
[INFO] [stdout]  --> game/src/board.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UndamagedShip`
[INFO] [stdout]  --> game/src/board.rs:4:48
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::board::CoordinateState::{OpenWater, UndamagedShip};
[INFO] [stdout]   |                                                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::board::ShipState::Undamaged`
[INFO] [stdout]  --> game/src/board.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::board::ShipState::Undamaged;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ShipOrientation`
[INFO] [stdout]  --> game/src/board.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     ShipOrientation,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Horizontal` and `Vertical` are never constructed
[INFO] [stdout]   --> game/src/ship.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 9  | pub enum ShipOrientation {
[INFO] [stdout]    |          --------------- variants in this enum
[INFO] [stdout] 10 |     Horizontal,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 11 |     Vertical,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `damage`, and `overlaps` are never used
[INFO] [stdout]   --> game/src/ship.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Ship {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 21 |     pub fn new(x: u8, y: u8, size: u8, orientation: ShipOrientation) -> Ship {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn damage(&mut self, i: usize) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn overlaps(&self, other_ship: &Ship) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `state` is never read
[INFO] [stdout]   --> game/src/board.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Board {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub state: BoardState,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `COMPLETE` is never constructed
[INFO] [stdout]   --> game/src/board.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum BoardState {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] 21 |     INCOMPLETE,
[INFO] [stdout] 22 |     COMPLETE,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BoardState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `with_ship` is never used
[INFO] [stdout]   --> game/src/board.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl Board {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn with_ship(&mut self, new_ship: Ship) -> &mut Board {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Miss` is never constructed
[INFO] [stdout]   --> game/src/board.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub enum CoordinateState {
[INFO] [stdout]    |          --------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 91 |     Miss,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `board` is never read
[INFO] [stdout]  --> game/src/game.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Game {
[INFO] [stdout]   |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 7 |     pub board: Board,
[INFO] [stdout]   |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling battleship v0.1.0 (/opt/rustwide/workdir/battleship)
[INFO] [stderr]    Compiling game v0.1.0 (/opt/rustwide/workdir/game)
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> game/src/ship.rs:77:24
[INFO] [stdout]    |
[INFO] [stdout] 77 |                     if (self.damage[(x-self.x) as usize]) {
[INFO] [stdout]    |                        ^                                ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 77 -                     if (self.damage[(x-self.x) as usize]) {
[INFO] [stdout] 77 +                     if self.damage[(x-self.x) as usize] {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> game/src/ship.rs:89:24
[INFO] [stdout]    |
[INFO] [stdout] 89 |                     if (self.damage[(y-self.y) as usize]) {
[INFO] [stdout]    |                        ^                                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 89 -                     if (self.damage[(y-self.y) as usize]) {
[INFO] [stdout] 89 +                     if self.damage[(y-self.y) as usize] {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `max` and `min`
[INFO] [stdout]  --> game/src/board.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UndamagedShip`
[INFO] [stdout]  --> game/src/board.rs:4:48
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::board::CoordinateState::{OpenWater, UndamagedShip};
[INFO] [stdout]   |                                                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::board::ShipState::Undamaged`
[INFO] [stdout]  --> game/src/board.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::board::ShipState::Undamaged;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `COMPLETE` is never constructed
[INFO] [stdout]   --> game/src/board.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum BoardState {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] 21 |     INCOMPLETE,
[INFO] [stdout] 22 |     COMPLETE,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BoardState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Miss` is never constructed
[INFO] [stdout]   --> game/src/board.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub enum CoordinateState {
[INFO] [stdout]    |          --------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 91 |     Miss,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `board` is never read
[INFO] [stdout]  --> game/src/game.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Game {
[INFO] [stdout]   |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 7 |     pub board: Board,
[INFO] [stdout]   |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.85s
[INFO] running `Command { std: "docker" "inspect" "a2de8d969e6672fa8cb697386104bf0cdcde02b31e36b7c0b645796062d667b4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a2de8d969e6672fa8cb697386104bf0cdcde02b31e36b7c0b645796062d667b4", kill_on_drop: false }`
[INFO] [stdout] a2de8d969e6672fa8cb697386104bf0cdcde02b31e36b7c0b645796062d667b4
[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 -Copt-level=3" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 43088d0e4dcb686e41c1b364dacf1df647749c1a4cc79456c0ec04e4e288bd70
[INFO] running `Command { std: "docker" "start" "-a" "43088d0e4dcb686e41c1b364dacf1df647749c1a4cc79456c0ec04e4e288bd70", kill_on_drop: false }`
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> game/src/ship.rs:77:24
[INFO] [stderr]    |
[INFO] [stderr] 77 |                     if (self.damage[(x-self.x) as usize]) {
[INFO] [stderr]    |                        ^                                ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 77 -                     if (self.damage[(x-self.x) as usize]) {
[INFO] [stderr] 77 +                     if self.damage[(x-self.x) as usize] {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> game/src/ship.rs:89:24
[INFO] [stderr]    |
[INFO] [stderr] 89 |                     if (self.damage[(y-self.y) as usize]) {
[INFO] [stderr]    |                        ^                                ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 89 -                     if (self.damage[(y-self.y) as usize]) {
[INFO] [stderr] 89 +                     if self.damage[(y-self.y) as usize] {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `max` and `min`
[INFO] [stderr]  --> game/src/board.rs:2:16
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::cmp::{max, min};
[INFO] [stderr]   |                ^^^  ^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `UndamagedShip`
[INFO] [stderr]  --> game/src/board.rs:4:48
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::board::CoordinateState::{OpenWater, UndamagedShip};
[INFO] [stderr]   |                                                ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::board::ShipState::Undamaged`
[INFO] [stderr]  --> game/src/board.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::board::ShipState::Undamaged;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ShipOrientation`
[INFO] [stderr]  --> game/src/board.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 |     ShipOrientation,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Horizontal` and `Vertical` are never constructed
[INFO] [stderr]   --> game/src/ship.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 9  | pub enum ShipOrientation {
[INFO] [stderr]    |          --------------- variants in this enum
[INFO] [stderr] 10 |     Horizontal,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 11 |     Vertical,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `damage`, and `overlaps` are never used
[INFO] [stderr]   --> game/src/ship.rs:21:12
[INFO] [stderr]    |
[INFO] [stderr] 20 | impl Ship {
[INFO] [stderr]    | --------- associated items in this implementation
[INFO] [stderr] 21 |     pub fn new(x: u8, y: u8, size: u8, orientation: ShipOrientation) -> Ship {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 31 |     pub fn damage(&mut self, i: usize) {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 35 |     pub fn overlaps(&self, other_ship: &Ship) -> bool {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `state` is never read
[INFO] [stderr]   --> game/src/board.rs:15:9
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub struct Board {
[INFO] [stderr]    |            ----- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 15 |     pub state: BoardState,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `COMPLETE` is never constructed
[INFO] [stderr]   --> game/src/board.rs:22:5
[INFO] [stderr]    |
[INFO] [stderr] 20 | pub enum BoardState {
[INFO] [stderr]    |          ---------- variant in this enum
[INFO] [stderr] 21 |     INCOMPLETE,
[INFO] [stderr] 22 |     COMPLETE,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `BoardState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `with_ship` is never used
[INFO] [stderr]   --> game/src/board.rs:50:12
[INFO] [stderr]    |
[INFO] [stderr] 25 | impl Board {
[INFO] [stderr]    | ---------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 50 |     pub fn with_ship(&mut self, new_ship: Ship) -> &mut Board {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `Miss` is never constructed
[INFO] [stderr]   --> game/src/board.rs:91:5
[INFO] [stderr]    |
[INFO] [stderr] 87 | pub enum CoordinateState {
[INFO] [stderr]    |          --------------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 91 |     Miss,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `board` is never read
[INFO] [stderr]  --> game/src/game.rs:7:9
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub struct Game {
[INFO] [stderr]   |            ---- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 7 |     pub board: Board,
[INFO] [stderr]   |         ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `game` (lib) generated 13 warnings (run `cargo fix --lib -p game` to apply 6 suggestions)
[INFO] [stderr] warning: variant `COMPLETE` is never constructed
[INFO] [stderr]   --> game/src/board.rs:22:5
[INFO] [stderr]    |
[INFO] [stderr] 20 | pub enum BoardState {
[INFO] [stderr]    |          ---------- variant in this enum
[INFO] [stderr] 21 |     INCOMPLETE,
[INFO] [stderr] 22 |     COMPLETE,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `BoardState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `game` (lib test) generated 8 warnings (7 duplicates)
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.03s
[INFO] [stdout] running 0 tests
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/battleship-cf8bc6dd7866c960)
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/game-38ce49656da88c9b)
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 13 tests
[INFO] [stdout] test board::tests::board_creation ... ok
[INFO] [stdout] test board::tests::board_with_nonoverlapping_ships ... ok
[INFO] [stdout] test board::tests::board_with_overlapping_ships_vert_horiz_throws_error - should panic ... FAILED
[INFO] [stdout] test board::tests::empty_board_to_string ... ok
[INFO] [stdout] test board::tests::one_horizontal_ship_board_to_string ... ok
[INFO] [stdout] test board::tests::one_vertical_damaged_ship_board_to_string ... ok
[INFO] [stdout] test board::tests::one_vertical_ship_board_to_string ... ok
[INFO] [stdout] test ship::tests::damaged_ship_get_state ... ok
[INFO] [stdout] test game::tests::game_creation ... ok
[INFO] [stdout] test ship::tests::undamaged_ship_get_state ... ok
[INFO] [stdout] test board::tests::board_with_overlapping_ships_horiz_vert_throws_error - should panic ... FAILED
[INFO] [stdout] test board::tests::board_with_overlapping_ships_horiz_horiz_throws_error - should panic ... ok
[INFO] [stdout] test board::tests::board_with_overlapping_ships_vert_vert_throws_error - should panic ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- board::tests::board_with_overlapping_ships_vert_horiz_throws_error stdout ----
[INFO] [stdout] note: test did not panic as expected at game/src/board.rs:130:8
[INFO] [stderr] error: test failed, to rerun pass `-p game --lib`
[INFO] [stdout] ---- board::tests::board_with_overlapping_ships_horiz_vert_throws_error stdout ----
[INFO] [stdout] note: test did not panic as expected at game/src/board.rs:138:8
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     board::tests::board_with_overlapping_ships_horiz_vert_throws_error
[INFO] [stdout]     board::tests::board_with_overlapping_ships_vert_horiz_throws_error
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 11 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "43088d0e4dcb686e41c1b364dacf1df647749c1a4cc79456c0ec04e4e288bd70", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "43088d0e4dcb686e41c1b364dacf1df647749c1a4cc79456c0ec04e4e288bd70", kill_on_drop: false }`
[INFO] [stdout] 43088d0e4dcb686e41c1b364dacf1df647749c1a4cc79456c0ec04e4e288bd70
