[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#733b47ea4b1b86216f14ef56e49440c33933f230+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-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/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-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/mtthwcmpbll/rust-battleship on toolchain 733b47ea4b1b86216f14ef56e49440c33933f230
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/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" "+733b47ea4b1b86216f14ef56e49440c33933f230" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f3d93f090c32a9bdee07ad8b1b7c691eb8207610da989cf4e0a18801e9669bcf
[INFO] running `Command { std: "docker" "start" "-a" "f3d93f090c32a9bdee07ad8b1b7c691eb8207610da989cf4e0a18801e9669bcf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f3d93f090c32a9bdee07ad8b1b7c691eb8207610da989cf4e0a18801e9669bcf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f3d93f090c32a9bdee07ad8b1b7c691eb8207610da989cf4e0a18801e9669bcf", kill_on_drop: false }`
[INFO] [stdout] f3d93f090c32a9bdee07ad8b1b7c691eb8207610da989cf4e0a18801e9669bcf
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Copt-level=3" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6a4278def5f8c509f272f0f5ce9b88ac905407772109dc0df989984b186a61d0
[INFO] running `Command { std: "docker" "start" "-a" "6a4278def5f8c509f272f0f5ce9b88ac905407772109dc0df989984b186a61d0", 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.91s
[INFO] running `Command { std: "docker" "inspect" "6a4278def5f8c509f272f0f5ce9b88ac905407772109dc0df989984b186a61d0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6a4278def5f8c509f272f0f5ce9b88ac905407772109dc0df989984b186a61d0", kill_on_drop: false }`
[INFO] [stdout] 6a4278def5f8c509f272f0f5ce9b88ac905407772109dc0df989984b186a61d0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Copt-level=3" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e995e11fcfb456c32583b9e9a6627ceee72cca66f3190f622390ee21bcb6ed3c
[INFO] running `Command { std: "docker" "start" "-a" "e995e11fcfb456c32583b9e9a6627ceee72cca66f3190f622390ee21bcb6ed3c", kill_on_drop: false }`
[INFO] [stderr]    Compiling battleship v0.1.0 (/opt/rustwide/workdir/battleship)
[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 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.88s
[INFO] running `Command { std: "docker" "inspect" "e995e11fcfb456c32583b9e9a6627ceee72cca66f3190f622390ee21bcb6ed3c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e995e11fcfb456c32583b9e9a6627ceee72cca66f3190f622390ee21bcb6ed3c", kill_on_drop: false }`
[INFO] [stdout] e995e11fcfb456c32583b9e9a6627ceee72cca66f3190f622390ee21bcb6ed3c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Copt-level=3" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 6d957d2fbc9bb890a42419787415d22289932acea7870eb770b7ee9c7851dc4d
[INFO] running `Command { std: "docker" "start" "-a" "6d957d2fbc9bb890a42419787415d22289932acea7870eb770b7ee9c7851dc4d", kill_on_drop: false }`
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stdout] 
[INFO] [stderr]   --> game/src/ship.rs:77:24
[INFO] [stdout] running 0 tests
[INFO] [stderr]    |
[INFO] [stdout] 
[INFO] [stderr] 77 |                     if (self.damage[(x-self.x) as usize]) {
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stderr]    |                        ^                                ^
[INFO] [stdout] 
[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] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/battleship-cf8bc6dd7866c960)
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/game-38ce49656da88c9b)
[INFO] [stdout] 
[INFO] [stdout] running 13 tests
[INFO] [stdout] test board::tests::board_with_nonoverlapping_ships ... ok
[INFO] [stdout] test board::tests::board_with_overlapping_ships_horiz_vert_throws_error - should panic ... FAILED
[INFO] [stdout] test board::tests::empty_board_to_string ... ok
[INFO] [stdout] test board::tests::board_with_overlapping_ships_vert_horiz_throws_error - should panic ... FAILED
[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 game::tests::game_creation ... ok
[INFO] [stdout] test ship::tests::undamaged_ship_get_state ... ok
[INFO] [stdout] test ship::tests::damaged_ship_get_state ... ok
[INFO] [stdout] test board::tests::board_creation ... ok
[INFO] [stdout] test board::tests::one_horizontal_ship_board_to_string ... ok
[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_horiz_vert_throws_error stdout ----
[INFO] [stdout] note: test did not panic as expected at game/src/board.rs:138:8
[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] [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.02s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `-p game --lib`
[INFO] running `Command { std: "docker" "inspect" "6d957d2fbc9bb890a42419787415d22289932acea7870eb770b7ee9c7851dc4d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6d957d2fbc9bb890a42419787415d22289932acea7870eb770b7ee9c7851dc4d", kill_on_drop: false }`
[INFO] [stdout] 6d957d2fbc9bb890a42419787415d22289932acea7870eb770b7ee9c7851dc4d
