[INFO] cloning repository https://github.com/SteinarSi/Chessbot5 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/SteinarSi/Chessbot5" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSteinarSi%2FChessbot5", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSteinarSi%2FChessbot5'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] c68cb73a9fcc515d9fe3fe36b17e016157343e6b [INFO] checking SteinarSi/Chessbot5 against master#90442458ac46b1d5eed752c316da25450f67285b for pr-81477 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSteinarSi%2FChessbot5" "/workspace/builds/worker-14/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-14/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/SteinarSi/Chessbot5 on toolchain 90442458ac46b1d5eed752c316da25450f67285b [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+90442458ac46b1d5eed752c316da25450f67285b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/SteinarSi/Chessbot5 [INFO] finished tweaking git repo https://github.com/SteinarSi/Chessbot5 [INFO] tweaked toml for git repo https://github.com/SteinarSi/Chessbot5 written to /workspace/builds/worker-14/source/Cargo.toml [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+90442458ac46b1d5eed752c316da25450f67285b" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }` [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+90442458ac46b1d5eed752c316da25450f67285b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/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:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+90442458ac46b1d5eed752c316da25450f67285b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 9f8132cd4c55fb170384e1976cb5f9a92f7768b228f316fd6dea44ab1b4b2b2d [INFO] running `Command { std: "docker" "start" "-a" "9f8132cd4c55fb170384e1976cb5f9a92f7768b228f316fd6dea44ab1b4b2b2d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "9f8132cd4c55fb170384e1976cb5f9a92f7768b228f316fd6dea44ab1b4b2b2d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9f8132cd4c55fb170384e1976cb5f9a92f7768b228f316fd6dea44ab1b4b2b2d", kill_on_drop: false }` [INFO] [stdout] 9f8132cd4c55fb170384e1976cb5f9a92f7768b228f316fd6dea44ab1b4b2b2d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/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" "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:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+90442458ac46b1d5eed752c316da25450f67285b" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] c2e8595a497ae615b111facb3f53387530f00dd6b03e9929723da8c37f759060 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "c2e8595a497ae615b111facb3f53387530f00dd6b03e9929723da8c37f759060", kill_on_drop: false }` [INFO] [stderr] Checking cfg-if v1.0.0 [INFO] [stderr] Checking getrandom v0.2.3 [INFO] [stderr] Checking rand_core v0.6.3 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand_pcg v0.3.1 [INFO] [stderr] Checking rand v0.8.4 [INFO] [stderr] Checking chessbot5 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/backend/movement.rs:35:18 [INFO] [stdout] | [INFO] [stdout] 35 | let filefrom = (l.next()? as i32 - 97); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/backend/movement.rs:36:18 [INFO] [stdout] | [INFO] [stdout] 36 | let rankfrom = (56 - l.next()? as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/backend/movement.rs:37:18 [INFO] [stdout] | [INFO] [stdout] 37 | let fileto = (l.next()? as i32 - 97); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/backend/movement.rs:38:18 [INFO] [stdout] | [INFO] [stdout] 38 | let rankto = (56 - l.next()? as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PieceType::*` [INFO] [stdout] --> src/backend/zobrist.rs:1:53 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::backend::piece::{Piece, Color, Color::*, PieceType::*}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::backend::board::Board` [INFO] [stdout] --> src/backend/zobrist.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::backend::board::Board; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::backend::movement` [INFO] [stdout] --> src/main.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::backend::movement; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: label name `'outer` shadows a label name that is already in scope [INFO] [stdout] --> src/backend/board.rs:253:3 [INFO] [stdout] | [INFO] [stdout] 235 | 'outer: for dir in &[(0, -1), (1, 0), (0, 1), (-1, 0)]{ [INFO] [stdout] | ------ first declared here [INFO] [stdout] ... [INFO] [stdout] 253 | 'outer: for dir in &[(1, 1), (-1, 1)]{ [INFO] [stdout] | ^^^^^^ label `'outer` already in scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: label name `'outer` shadows a label name that is already in scope [INFO] [stdout] --> src/backend/board.rs:270:3 [INFO] [stdout] | [INFO] [stdout] 235 | 'outer: for dir in &[(0, -1), (1, 0), (0, 1), (-1, 0)]{ [INFO] [stdout] | ------ first declared here [INFO] [stdout] ... [INFO] [stdout] 270 | 'outer: for dir in &[(1, -1), (-1, -1)]{ [INFO] [stdout] | ^^^^^^ label `'outer` already in scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: label name `'outer` shadows a label name that is already in scope [INFO] [stdout] --> src/backend/board.rs:270:3 [INFO] [stdout] | [INFO] [stdout] 253 | 'outer: for dir in &[(1, 1), (-1, 1)]{ [INFO] [stdout] | ------ first declared here [INFO] [stdout] ... [INFO] [stdout] 270 | 'outer: for dir in &[(1, -1), (-1, -1)]{ [INFO] [stdout] | ^^^^^^ label `'outer` already in scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/backend/movement.rs:35:18 [INFO] [stdout] | [INFO] [stdout] 35 | let filefrom = (l.next()? as i32 - 97); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/backend/movement.rs:36:18 [INFO] [stdout] | [INFO] [stdout] 36 | let rankfrom = (56 - l.next()? as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/backend/movement.rs:37:18 [INFO] [stdout] | [INFO] [stdout] 37 | let fileto = (l.next()? as i32 - 97); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/backend/movement.rs:38:18 [INFO] [stdout] | [INFO] [stdout] 38 | let rankto = (56 - l.next()? as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PieceType::*` [INFO] [stdout] --> src/backend/zobrist.rs:1:53 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::backend::piece::{Piece, Color, Color::*, PieceType::*}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::backend::board::Board` [INFO] [stdout] --> src/backend/zobrist.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::backend::board::Board; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::backend::movement` [INFO] [stdout] --> src/main.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::backend::movement; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: label name `'outer` shadows a label name that is already in scope [INFO] [stdout] --> src/backend/board.rs:253:3 [INFO] [stdout] | [INFO] [stdout] 235 | 'outer: for dir in &[(0, -1), (1, 0), (0, 1), (-1, 0)]{ [INFO] [stdout] | ------ first declared here [INFO] [stdout] ... [INFO] [stdout] 253 | 'outer: for dir in &[(1, 1), (-1, 1)]{ [INFO] [stdout] | ^^^^^^ label `'outer` already in scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: label name `'outer` shadows a label name that is already in scope [INFO] [stdout] --> src/backend/board.rs:270:3 [INFO] [stdout] | [INFO] [stdout] 235 | 'outer: for dir in &[(0, -1), (1, 0), (0, 1), (-1, 0)]{ [INFO] [stdout] | ------ first declared here [INFO] [stdout] ... [INFO] [stdout] 270 | 'outer: for dir in &[(1, -1), (-1, -1)]{ [INFO] [stdout] | ^^^^^^ label `'outer` already in scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: label name `'outer` shadows a label name that is already in scope [INFO] [stdout] --> src/backend/board.rs:270:3 [INFO] [stdout] | [INFO] [stdout] 253 | 'outer: for dir in &[(1, 1), (-1, 1)]{ [INFO] [stdout] | ------ first declared here [INFO] [stdout] ... [INFO] [stdout] 270 | 'outer: for dir in &[(1, -1), (-1, -1)]{ [INFO] [stdout] | ^^^^^^ label `'outer` already in scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `move_str` [INFO] [stdout] --> src/backend/board.rs:141:9 [INFO] [stdout] | [INFO] [stdout] 141 | pub fn move_str(&mut self, s: &str) -> Option<()>{ [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `is_legal` [INFO] [stdout] --> src/backend/board.rs:148:9 [INFO] [stdout] | [INFO] [stdout] 148 | pub fn is_legal(&mut self, m: Move) -> bool{ [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `counter` [INFO] [stdout] --> src/backend/board.rs:160:9 [INFO] [stdout] | [INFO] [stdout] 160 | pub fn counter(&self) -> usize{ [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `hash` [INFO] [stdout] --> src/backend/board.rs:164:9 [INFO] [stdout] | [INFO] [stdout] 164 | pub fn hash(&self) -> i64{ [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `is_checkmate` [INFO] [stdout] --> src/backend/board.rs:168:9 [INFO] [stdout] | [INFO] [stdout] 168 | pub fn is_checkmate(&mut self) -> bool{ [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `winner` [INFO] [stdout] --> src/backend/board.rs:172:9 [INFO] [stdout] | [INFO] [stdout] 172 | pub fn winner(&self) -> Option{ [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `is_threatened` [INFO] [stdout] --> src/backend/board.rs:218:9 [INFO] [stdout] | [INFO] [stdout] 218 | pub fn is_threatened(&self, pos: &Position) -> bool{ [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `EMPTY` [INFO] [stdout] --> src/backend/board.rs:611:1 [INFO] [stdout] | [INFO] [stdout] 611 | / const EMPTY: &str = "\ [INFO] [stdout] 612 | | -------- [INFO] [stdout] 613 | | -------- [INFO] [stdout] 614 | | -------- [INFO] [stdout] ... | [INFO] [stdout] 618 | | -------- [INFO] [stdout] 619 | | --------"; [INFO] [stdout] | |__________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `from_str` [INFO] [stdout] --> src/backend/movement.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | pub fn from_str(s: &str) -> Option{ [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `update_xy` [INFO] [stdout] --> src/backend/zobrist.rs:47:9 [INFO] [stdout] | [INFO] [stdout] 47 | pub fn update_xy(&mut self, p: &Piece, x: usize, y: usize){ [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `update_pos` [INFO] [stdout] --> src/backend/zobrist.rs:51:9 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn update_pos(&mut self, p: &Piece, pos: &Position){ [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `swap_sides` [INFO] [stdout] --> src/backend/zobrist.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | pub fn swap_sides(&mut self){ [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `update_castle` [INFO] [stdout] --> src/backend/zobrist.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | pub fn update_castle(&mut self, castle: (bool, bool, bool, bool)){ [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `update_en_passant` [INFO] [stdout] --> src/backend/zobrist.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 78 | pub fn update_en_passant(&mut self, c: usize){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `main2` [INFO] [stdout] --> src/main.rs:11:4 [INFO] [stdout] | [INFO] [stdout] 11 | fn main2() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021. [INFO] [stdout] --> src/backend/board.rs:488:72 [INFO] [stdout] | [INFO] [stdout] 488 | [Position{x: 4, y: 7}, Position{x: 5, y: 7}, Position{x: 6, y: 7}].into_iter().all(|p| ! self.is_threatened_by(&p, Black)){ [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(array_into_iter)]` on by default [INFO] [stdout] = warning: this changes meaning in Rust 2021 [INFO] [stdout] = note: for more information, see issue #66145 [INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stdout] | [INFO] [stdout] 488 | [Position{x: 4, y: 7}, Position{x: 5, y: 7}, Position{x: 6, y: 7}].iter().all(|p| ! self.is_threatened_by(&p, Black)){ [INFO] [stdout] | ^^^^ [INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value [INFO] [stdout] | [INFO] [stdout] 488 | IntoIterator::into_iter([Position{x: 4, y: 7}, Position{x: 5, y: 7}, Position{x: 6, y: 7}]).all(|p| ! self.is_threatened_by(&p, Black)){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021. [INFO] [stdout] --> src/backend/board.rs:492:71 [INFO] [stdout] | [INFO] [stdout] 492 | [Position{x: 4, y: 7}, Position{x: 3, y: 7}, Position{x: 2, y: 7}].into_iter().all(|p| ! self.is_threatened_by(&p, Black)) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2021 [INFO] [stdout] = note: for more information, see issue #66145 [INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stdout] | [INFO] [stdout] 492 | [Position{x: 4, y: 7}, Position{x: 3, y: 7}, Position{x: 2, y: 7}].iter().all(|p| ! self.is_threatened_by(&p, Black)) { [INFO] [stdout] | ^^^^ [INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value [INFO] [stdout] | [INFO] [stdout] 492 | IntoIterator::into_iter([Position{x: 4, y: 7}, Position{x: 3, y: 7}, Position{x: 2, y: 7}]).all(|p| ! self.is_threatened_by(&p, Black)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021. [INFO] [stdout] --> src/backend/board.rs:498:71 [INFO] [stdout] | [INFO] [stdout] 498 | [Position{x: 4, y: 0}, Position{x: 5, y: 0}, Position{x: 6, y: 0}].into_iter().all(|p| ! self.is_threatened_by(&p, White)) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2021 [INFO] [stdout] = note: for more information, see issue #66145 [INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stdout] | [INFO] [stdout] 498 | [Position{x: 4, y: 0}, Position{x: 5, y: 0}, Position{x: 6, y: 0}].iter().all(|p| ! self.is_threatened_by(&p, White)) { [INFO] [stdout] | ^^^^ [INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value [INFO] [stdout] | [INFO] [stdout] 498 | IntoIterator::into_iter([Position{x: 4, y: 0}, Position{x: 5, y: 0}, Position{x: 6, y: 0}]).all(|p| ! self.is_threatened_by(&p, White)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021. [INFO] [stdout] --> src/backend/board.rs:502:71 [INFO] [stdout] | [INFO] [stdout] 502 | [Position{x: 4, y: 0}, Position{x: 3, y: 0}, Position{x: 2, y: 0}].into_iter().all(|p| ! self.is_threatened_by(&p, White)){ [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2021 [INFO] [stdout] = note: for more information, see issue #66145 [INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stdout] | [INFO] [stdout] 502 | [Position{x: 4, y: 0}, Position{x: 3, y: 0}, Position{x: 2, y: 0}].iter().all(|p| ! self.is_threatened_by(&p, White)){ [INFO] [stdout] | ^^^^ [INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value [INFO] [stdout] | [INFO] [stdout] 502 | IntoIterator::into_iter([Position{x: 4, y: 0}, Position{x: 3, y: 0}, Position{x: 2, y: 0}]).all(|p| ! self.is_threatened_by(&p, White)){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `Q` should have a snake case name [INFO] [stdout] --> src/backend/board.rs:403:11 [INFO] [stdout] | [INFO] [stdout] 403 | let Q = Piece::new('Q'); [INFO] [stdout] | ^ help: convert the identifier to snake case: `q` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `N` should have a snake case name [INFO] [stdout] --> src/backend/board.rs:404:11 [INFO] [stdout] | [INFO] [stdout] 404 | let N = Piece::new('N'); [INFO] [stdout] | ^ help: convert the identifier to snake case: `n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `Q` should have a snake case name [INFO] [stdout] --> src/backend/board.rs:429:13 [INFO] [stdout] | [INFO] [stdout] 429 | ... let Q = Piece::new('Q'); [INFO] [stdout] | ^ help: convert the identifier to snake case: `q` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `N` should have a snake case name [INFO] [stdout] --> src/backend/board.rs:430:13 [INFO] [stdout] | [INFO] [stdout] 430 | ... let N = Piece::new('N'); [INFO] [stdout] | ^ help: convert the identifier to snake case: `n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/backend/board.rs:723:7 [INFO] [stdout] | [INFO] [stdout] 723 | let mut board = Board::new(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 33 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/backend/board.rs:1260:7 [INFO] [stdout] | [INFO] [stdout] 1260 | let mut zob = Zobrist::new(&board.grid, White); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `counter` [INFO] [stdout] --> src/backend/board.rs:160:9 [INFO] [stdout] | [INFO] [stdout] 160 | pub fn counter(&self) -> usize{ [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `is_threatened` [INFO] [stdout] --> src/backend/board.rs:218:9 [INFO] [stdout] | [INFO] [stdout] 218 | pub fn is_threatened(&self, pos: &Position) -> bool{ [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `update_xy` [INFO] [stdout] --> src/backend/zobrist.rs:47:9 [INFO] [stdout] | [INFO] [stdout] 47 | pub fn update_xy(&mut self, p: &Piece, x: usize, y: usize){ [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `update_pos` [INFO] [stdout] --> src/backend/zobrist.rs:51:9 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn update_pos(&mut self, p: &Piece, pos: &Position){ [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `swap_sides` [INFO] [stdout] --> src/backend/zobrist.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | pub fn swap_sides(&mut self){ [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `update_castle` [INFO] [stdout] --> src/backend/zobrist.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | pub fn update_castle(&mut self, castle: (bool, bool, bool, bool)){ [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `update_en_passant` [INFO] [stdout] --> src/backend/zobrist.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 78 | pub fn update_en_passant(&mut self, c: usize){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `main2` [INFO] [stdout] --> src/main.rs:11:4 [INFO] [stdout] | [INFO] [stdout] 11 | fn main2() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021. [INFO] [stdout] --> src/backend/board.rs:488:72 [INFO] [stdout] | [INFO] [stdout] 488 | [Position{x: 4, y: 7}, Position{x: 5, y: 7}, Position{x: 6, y: 7}].into_iter().all(|p| ! self.is_threatened_by(&p, Black)){ [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(array_into_iter)]` on by default [INFO] [stdout] = warning: this changes meaning in Rust 2021 [INFO] [stdout] = note: for more information, see issue #66145 [INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stdout] | [INFO] [stdout] 488 | [Position{x: 4, y: 7}, Position{x: 5, y: 7}, Position{x: 6, y: 7}].iter().all(|p| ! self.is_threatened_by(&p, Black)){ [INFO] [stdout] | ^^^^ [INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value [INFO] [stdout] | [INFO] [stdout] 488 | IntoIterator::into_iter([Position{x: 4, y: 7}, Position{x: 5, y: 7}, Position{x: 6, y: 7}]).all(|p| ! self.is_threatened_by(&p, Black)){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021. [INFO] [stdout] --> src/backend/board.rs:492:71 [INFO] [stdout] | [INFO] [stdout] 492 | [Position{x: 4, y: 7}, Position{x: 3, y: 7}, Position{x: 2, y: 7}].into_iter().all(|p| ! self.is_threatened_by(&p, Black)) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2021 [INFO] [stdout] = note: for more information, see issue #66145 [INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stdout] | [INFO] [stdout] 492 | [Position{x: 4, y: 7}, Position{x: 3, y: 7}, Position{x: 2, y: 7}].iter().all(|p| ! self.is_threatened_by(&p, Black)) { [INFO] [stdout] | ^^^^ [INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value [INFO] [stdout] | [INFO] [stdout] 492 | IntoIterator::into_iter([Position{x: 4, y: 7}, Position{x: 3, y: 7}, Position{x: 2, y: 7}]).all(|p| ! self.is_threatened_by(&p, Black)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021. [INFO] [stdout] --> src/backend/board.rs:498:71 [INFO] [stdout] | [INFO] [stdout] 498 | [Position{x: 4, y: 0}, Position{x: 5, y: 0}, Position{x: 6, y: 0}].into_iter().all(|p| ! self.is_threatened_by(&p, White)) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2021 [INFO] [stdout] = note: for more information, see issue #66145 [INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stdout] | [INFO] [stdout] 498 | [Position{x: 4, y: 0}, Position{x: 5, y: 0}, Position{x: 6, y: 0}].iter().all(|p| ! self.is_threatened_by(&p, White)) { [INFO] [stdout] | ^^^^ [INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value [INFO] [stdout] | [INFO] [stdout] 498 | IntoIterator::into_iter([Position{x: 4, y: 0}, Position{x: 5, y: 0}, Position{x: 6, y: 0}]).all(|p| ! self.is_threatened_by(&p, White)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021. [INFO] [stdout] --> src/backend/board.rs:502:71 [INFO] [stdout] | [INFO] [stdout] 502 | [Position{x: 4, y: 0}, Position{x: 3, y: 0}, Position{x: 2, y: 0}].into_iter().all(|p| ! self.is_threatened_by(&p, White)){ [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2021 [INFO] [stdout] = note: for more information, see issue #66145 [INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stdout] | [INFO] [stdout] 502 | [Position{x: 4, y: 0}, Position{x: 3, y: 0}, Position{x: 2, y: 0}].iter().all(|p| ! self.is_threatened_by(&p, White)){ [INFO] [stdout] | ^^^^ [INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value [INFO] [stdout] | [INFO] [stdout] 502 | IntoIterator::into_iter([Position{x: 4, y: 0}, Position{x: 3, y: 0}, Position{x: 2, y: 0}]).all(|p| ! self.is_threatened_by(&p, White)){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `Q` should have a snake case name [INFO] [stdout] --> src/backend/board.rs:403:11 [INFO] [stdout] | [INFO] [stdout] 403 | let Q = Piece::new('Q'); [INFO] [stdout] | ^ help: convert the identifier to snake case: `q` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `N` should have a snake case name [INFO] [stdout] --> src/backend/board.rs:404:11 [INFO] [stdout] | [INFO] [stdout] 404 | let N = Piece::new('N'); [INFO] [stdout] | ^ help: convert the identifier to snake case: `n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `Q` should have a snake case name [INFO] [stdout] --> src/backend/board.rs:429:13 [INFO] [stdout] | [INFO] [stdout] 429 | ... let Q = Piece::new('Q'); [INFO] [stdout] | ^ help: convert the identifier to snake case: `q` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `N` should have a snake case name [INFO] [stdout] --> src/backend/board.rs:430:13 [INFO] [stdout] | [INFO] [stdout] 430 | ... let N = Piece::new('N'); [INFO] [stdout] | ^ help: convert the identifier to snake case: `n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `K` should have a snake case name [INFO] [stdout] --> src/backend/board.rs:1099:10 [INFO] [stdout] | [INFO] [stdout] 1099 | let K = Piece::new('K').unwrap(); [INFO] [stdout] | ^ help: convert the identifier to snake case (notice the capitalization): `k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> src/backend/board.rs:1100:10 [INFO] [stdout] | [INFO] [stdout] 1100 | let R = Piece::new('R').unwrap(); [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `e4` should have an upper case name [INFO] [stdout] --> src/backend/board.rs:1144:8 [INFO] [stdout] | [INFO] [stdout] 1144 | const e4: &str = "\ [INFO] [stdout] | ^^ help: convert the identifier to upper case: `E4` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `e4c5` should have an upper case name [INFO] [stdout] --> src/backend/board.rs:1153:8 [INFO] [stdout] | [INFO] [stdout] 1153 | const e4c5: &str = "\ [INFO] [stdout] | ^^^^ help: convert the identifier to upper case: `E4C5` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `e4c6` should have an upper case name [INFO] [stdout] --> src/backend/board.rs:1162:8 [INFO] [stdout] | [INFO] [stdout] 1162 | const e4c6: &str = "\ [INFO] [stdout] | ^^^^ help: convert the identifier to upper case: `E4C6` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `K` should have a snake case name [INFO] [stdout] --> src/backend/piece.rs:245:7 [INFO] [stdout] | [INFO] [stdout] 245 | let K = Piece::new('K').unwrap(); [INFO] [stdout] | ^ help: convert the identifier to snake case (notice the capitalization): `k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `Q` should have a snake case name [INFO] [stdout] --> src/backend/piece.rs:250:7 [INFO] [stdout] | [INFO] [stdout] 250 | let Q = Piece::new('Q').unwrap(); [INFO] [stdout] | ^ help: convert the identifier to snake case: `q` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `P` should have a snake case name [INFO] [stdout] --> src/backend/piece.rs:255:7 [INFO] [stdout] | [INFO] [stdout] 255 | let P = Piece::new('P').unwrap(); [INFO] [stdout] | ^ help: convert the identifier to snake case: `p` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 36 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 5.26s [INFO] running `Command { std: "docker" "inspect" "c2e8595a497ae615b111facb3f53387530f00dd6b03e9929723da8c37f759060", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c2e8595a497ae615b111facb3f53387530f00dd6b03e9929723da8c37f759060", kill_on_drop: false }` [INFO] [stdout] c2e8595a497ae615b111facb3f53387530f00dd6b03e9929723da8c37f759060