[INFO] cloning repository https://github.com/matttilton/Othello-rs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/matttilton/Othello-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmatttilton%2FOthello-rs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmatttilton%2FOthello-rs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] d728b2e95e1e042d0b26d7ed24a47a5422b8d243 [INFO] checking matttilton/Othello-rs against master#c2239bca5b89a8d3573cc0fc0f2fa65c50edb79c for pr-123737 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmatttilton%2FOthello-rs" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/matttilton/Othello-rs on toolchain c2239bca5b89a8d3573cc0fc0f2fa65c50edb79c [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2239bca5b89a8d3573cc0fc0f2fa65c50edb79c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/matttilton/Othello-rs [INFO] finished tweaking git repo https://github.com/matttilton/Othello-rs [INFO] tweaked toml for git repo https://github.com/matttilton/Othello-rs written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/matttilton/Othello-rs 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" "+c2239bca5b89a8d3573cc0fc0f2fa65c50edb79c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded wayland-sys v0.28.4 [INFO] [stderr] Downloaded wayland-commons v0.28.4 [INFO] [stderr] Downloaded wayland-cursor v0.28.4 [INFO] [stderr] Downloaded conrod_winit v0.71.0 [INFO] [stderr] Downloaded conrod_derive v0.71.0 [INFO] [stderr] Downloaded wayland-egl v0.28.4 [INFO] [stderr] Downloaded once_cell v1.6.0 [INFO] [stderr] Downloaded wayland-scanner v0.28.4 [INFO] [stderr] Downloaded rustversion v1.0.4 [INFO] [stderr] Downloaded generator v0.6.24 [INFO] [stderr] Downloaded conrod_glium v0.71.0 [INFO] [stderr] Downloaded conrod_core v0.71.0 [INFO] [stderr] Downloaded object v0.23.0 [INFO] [stderr] Downloaded backtrace v0.3.56 [INFO] [stderr] Downloaded crossbeam-epoch v0.9.2 [INFO] [stderr] Downloaded loom v0.4.0 [INFO] [stderr] Downloaded wayland-client v0.28.4 [INFO] [stderr] Downloaded crossbeam-utils v0.8.2 [INFO] [stderr] Downloaded wayland-protocols v0.28.4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+c2239bca5b89a8d3573cc0fc0f2fa65c50edb79c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 3080ed233c35a13f42cb4726e36245325691e7172ca3cf24c1c5c495f5570353 [INFO] running `Command { std: "docker" "start" "-a" "3080ed233c35a13f42cb4726e36245325691e7172ca3cf24c1c5c495f5570353", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "3080ed233c35a13f42cb4726e36245325691e7172ca3cf24c1c5c495f5570353", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3080ed233c35a13f42cb4726e36245325691e7172ca3cf24c1c5c495f5570353", kill_on_drop: false }` [INFO] [stdout] 3080ed233c35a13f42cb4726e36245325691e7172ca3cf24c1c5c495f5570353 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+c2239bca5b89a8d3573cc0fc0f2fa65c50edb79c" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] f0255303ba950114b53d91d5a919580637115a4d33e0345ddb4762f7f97565ca [INFO] running `Command { std: "docker" "start" "-a" "f0255303ba950114b53d91d5a919580637115a4d33e0345ddb4762f7f97565ca", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.86 [INFO] [stderr] Compiling xml-rs v0.8.3 [INFO] [stderr] Compiling proc-macro2 v1.0.24 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling unicode-xid v0.2.1 [INFO] [stderr] Compiling pkg-config v0.3.19 [INFO] [stderr] Compiling memoffset v0.5.6 [INFO] [stderr] Checking byteorder v1.4.2 [INFO] [stderr] Compiling crossbeam-utils v0.7.2 [INFO] [stderr] Checking dlib v0.4.2 [INFO] [stderr] Checking smallvec v1.6.1 [INFO] [stderr] Compiling crossbeam-epoch v0.8.2 [INFO] [stderr] Checking walkdir v2.3.1 [INFO] [stderr] Compiling version_check v0.9.2 [INFO] [stderr] Compiling memchr v2.3.4 [INFO] [stderr] Checking once_cell v1.6.0 [INFO] [stderr] Compiling crossbeam-utils v0.8.2 [INFO] [stderr] Compiling num-integer v0.1.44 [INFO] [stderr] Checking wayland-sys v0.23.6 [INFO] [stderr] Compiling memoffset v0.6.1 [INFO] [stderr] Checking linked-hash-map v0.5.4 [INFO] [stderr] Checking instant v0.1.9 [INFO] [stderr] Compiling nom v6.1.2 [INFO] [stderr] Checking stb_truetype v0.3.1 [INFO] [stderr] Compiling num-bigint v0.2.6 [INFO] [stderr] Compiling syn v1.0.60 [INFO] [stderr] Checking ab_glyph_rasterizer v0.1.4 [INFO] [stderr] Compiling num-rational v0.2.4 [INFO] [stderr] Compiling rayon-core v1.9.0 [INFO] [stderr] Checking rusttype v0.9.2 [INFO] [stderr] Checking lock_api v0.4.2 [INFO] [stderr] Compiling wayland-sys v0.28.4 [INFO] [stderr] Compiling x11-dl v2.18.5 [INFO] [stderr] Checking andrew v0.3.1 [INFO] [stderr] Compiling wayland-scanner v0.23.6 [INFO] [stderr] Compiling gl_generator v0.14.0 [INFO] [stderr] Compiling num-complex v0.2.4 [INFO] [stderr] Compiling miniz_oxide v0.4.3 [INFO] [stderr] Compiling getrandom v0.1.16 [INFO] [stderr] Compiling syn v0.15.44 [INFO] [stderr] Compiling winit v0.23.0 [INFO] [stderr] Checking crossbeam-epoch v0.9.2 [INFO] [stderr] Compiling serde_derive v1.0.123 [INFO] [stderr] Compiling quote v1.0.9 [INFO] [stderr] Compiling serde v1.0.123 [INFO] [stderr] Checking crossbeam-channel v0.5.0 [INFO] [stderr] Checking crossbeam-deque v0.8.0 [INFO] [stderr] Compiling rayon v1.5.0 [INFO] [stderr] Checking crossbeam-deque v0.7.3 [INFO] [stderr] Compiling num-derive v0.2.5 [INFO] [stderr] Checking fixedbitset v0.1.9 [INFO] [stderr] Compiling wayland-scanner v0.28.4 [INFO] [stderr] Checking piston-float v1.0.0 [INFO] [stderr] Checking adler v0.2.3 [INFO] [stderr] Checking gimli v0.23.0 [INFO] [stderr] Checking petgraph v0.4.13 [INFO] [stderr] Checking approx v0.3.2 [INFO] [stderr] Checking ordered-float v1.1.1 [INFO] [stderr] Checking line_drawing v0.7.0 [INFO] [stderr] Checking piston-viewport v1.0.0 [INFO] [stderr] Checking num_cpus v1.13.0 [INFO] [stderr] Checking nix v0.20.0 [INFO] [stderr] Checking nix v0.14.1 [INFO] [stderr] Checking net2 v0.2.37 [INFO] [stderr] Checking nix v0.18.0 [INFO] [stderr] Checking iovec v0.1.4 [INFO] [stderr] Checking rusttype v0.8.3 [INFO] [stderr] Checking mio v0.6.23 [INFO] [stderr] Compiling xcb v0.9.0 [INFO] [stderr] Compiling glutin_glx_sys v0.1.7 [INFO] [stderr] Compiling glutin_egl_sys v0.1.5 [INFO] [stderr] Checking rusttype v0.7.9 [INFO] [stderr] Checking andrew v0.2.1 [INFO] [stderr] Checking xcursor v0.3.3 [INFO] [stderr] Checking parking_lot_core v0.8.3 [INFO] [stderr] Checking memmap2 v0.1.0 [INFO] [stderr] Checking memmap v0.7.0 [INFO] [stderr] Checking mio-extras v2.0.6 [INFO] [stderr] Checking num-iter v0.1.42 [INFO] [stderr] Checking parking_lot v0.11.1 [INFO] [stderr] Checking shared_library v0.1.9 [INFO] [stderr] Checking raw-window-handle v0.3.3 [INFO] [stderr] Compiling glium v0.28.0 [INFO] [stderr] Checking osmesa-sys v0.1.2 [INFO] [stderr] Compiling wayland-client v0.23.6 [INFO] [stderr] Compiling wayland-client v0.28.4 [INFO] [stderr] Compiling wayland-protocols v0.28.4 [INFO] [stderr] Compiling wayland-protocols v0.23.6 [INFO] [stderr] Checking lzw v0.10.0 [INFO] [stderr] Checking rustc-demangle v0.1.18 [INFO] [stderr] Checking object v0.23.0 [INFO] [stderr] Checking addr2line v0.14.1 [INFO] [stderr] Checking either v1.6.1 [INFO] [stderr] Checking rand_core v0.5.1 [INFO] [stderr] Checking num v0.2.1 [INFO] [stderr] Checking daggy v0.5.0 [INFO] [stderr] Checking deflate v0.7.20 [INFO] [stderr] Checking inflate v0.4.5 [INFO] [stderr] Checking calloop v0.6.5 [INFO] [stderr] Checking ppv-lite86 v0.2.10 [INFO] [stderr] Checking gif v0.10.3 [INFO] [stderr] Checking wayland-commons v0.23.6 [INFO] [stderr] Checking scoped_threadpool v0.1.9 [INFO] [stderr] Checking conrod_winit v0.71.0 [INFO] [stderr] Checking png v0.15.3 [INFO] [stderr] Checking wayland-commons v0.28.4 [INFO] [stderr] Checking find_folder v0.3.0 [INFO] [stderr] Checking rand_chacha v0.2.2 [INFO] [stderr] Checking rand v0.7.3 [INFO] [stderr] Checking backtrace v0.3.56 [INFO] [stderr] Checking wayland-cursor v0.28.4 [INFO] [stderr] Checking wayland-egl v0.28.4 [INFO] [stderr] Checking jpeg-decoder v0.1.22 [INFO] [stderr] Compiling conrod_derive v0.71.0 [INFO] [stderr] Checking tiff v0.3.1 [INFO] [stderr] Checking image v0.22.5 [INFO] [stderr] Checking pistoncore-input v1.0.0 [INFO] [stderr] Checking x11-clipboard v0.5.1 [INFO] [stderr] Checking smithay-client-toolkit v0.6.6 [INFO] [stderr] Checking smithay-clipboard v0.4.0 [INFO] [stderr] Checking smithay-client-toolkit v0.12.2 [INFO] [stderr] Checking copypasta v0.6.3 [INFO] [stderr] Checking conrod_core v0.71.0 [INFO] [stderr] Checking glutin v0.25.1 [INFO] [stderr] Checking conrod_glium v0.71.0 [INFO] [stderr] Checking othello-gui v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `fnv::FnvHashMap` [INFO] [stdout] --> src/support/mod.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use fnv::FnvHashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Sizeable` [INFO] [stdout] --> src/gui/mod.rs:2:63 [INFO] [stdout] | [INFO] [stdout] 2 | use conrod_core::{widget, Colorable, Labelable, Positionable, Sizeable, Widget}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::iter::once` [INFO] [stdout] --> src/gui/mod.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::iter::once; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Borderable`, `Labelable`, `Point` [INFO] [stdout] --> src/gui/board.rs:2:42 [INFO] [stdout] | [INFO] [stdout] 2 | self, widget, widget_ids, Colorable, Labelable, Point, Positionable, Widget, Borderable, {position::Relative} [INFO] [stdout] | ^^^^^^^^^ ^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `conrod_core` is imported redundantly [INFO] [stdout] --> src/gui/board.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | self, widget, widget_ids, Colorable, Labelable, Point, Positionable, Widget, Borderable, {position::Relative} [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/main.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | extern crate conrod_core; [INFO] [stdout] | ------------------------- the item `conrod_core` is already imported here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::iter::once` [INFO] [stdout] --> src/gui/board.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::iter::once; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Labelable`, `Point` [INFO] [stdout] --> src/gui/tile.rs:2:42 [INFO] [stdout] | [INFO] [stdout] 2 | self, widget, widget_ids, Colorable, Labelable, Point, Positionable, Widget, [INFO] [stdout] | ^^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `conrod_core` is imported redundantly [INFO] [stdout] --> src/gui/tile.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | self, widget, widget_ids, Colorable, Labelable, Point, Positionable, Widget, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/main.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | extern crate conrod_core; [INFO] [stdout] | ------------------------- the item `conrod_core` is already imported here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::engine::enums` [INFO] [stdout] --> src/engine/AI/AI.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::engine::enums; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::engine::AI::AI` [INFO] [stdout] --> src/engine/AI/tree.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::engine::AI::AI; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> src/engine/AI/tree.rs:114:100 [INFO] [stdout] | [INFO] [stdout] 114 | let mut value = heuristics::main_heuristic(&new_board_state, enums::Player::White);; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(redundant_semicolons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `fnv::FnvHashMap` [INFO] [stdout] --> src/support/mod.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use fnv::FnvHashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Sizeable` [INFO] [stdout] --> src/gui/mod.rs:2:63 [INFO] [stdout] | [INFO] [stdout] 2 | use conrod_core::{widget, Colorable, Labelable, Positionable, Sizeable, Widget}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::iter::once` [INFO] [stdout] --> src/gui/mod.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::iter::once; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Borderable`, `Labelable`, `Point` [INFO] [stdout] --> src/gui/board.rs:2:42 [INFO] [stdout] | [INFO] [stdout] 2 | self, widget, widget_ids, Colorable, Labelable, Point, Positionable, Widget, Borderable, {position::Relative} [INFO] [stdout] | ^^^^^^^^^ ^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `conrod_core` is imported redundantly [INFO] [stdout] --> src/gui/board.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | self, widget, widget_ids, Colorable, Labelable, Point, Positionable, Widget, Borderable, {position::Relative} [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/main.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | extern crate conrod_core; [INFO] [stdout] | ------------------------- the item `conrod_core` is already imported here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::iter::once` [INFO] [stdout] --> src/gui/board.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::iter::once; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Labelable`, `Point` [INFO] [stdout] --> src/gui/tile.rs:2:42 [INFO] [stdout] | [INFO] [stdout] 2 | self, widget, widget_ids, Colorable, Labelable, Point, Positionable, Widget, [INFO] [stdout] | ^^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `conrod_core` is imported redundantly [INFO] [stdout] --> src/gui/tile.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | self, widget, widget_ids, Colorable, Labelable, Point, Positionable, Widget, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/main.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | extern crate conrod_core; [INFO] [stdout] | ------------------------- the item `conrod_core` is already imported here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::engine::enums` [INFO] [stdout] --> src/engine/AI/AI.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::engine::enums; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::engine::AI::AI` [INFO] [stdout] --> src/engine/AI/tree.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::engine::AI::AI; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> src/engine/AI/tree.rs:114:100 [INFO] [stdout] | [INFO] [stdout] 114 | let mut value = heuristics::main_heuristic(&new_board_state, enums::Player::White);; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(redundant_semicolons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rayon::prelude` [INFO] [stdout] --> src/engine/AI/tree.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use rayon::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rayon::prelude` [INFO] [stdout] --> src/engine/AI/tree.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use rayon::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/gui/board.rs:156:13 [INFO] [stdout] | [INFO] [stdout] 156 | id, [INFO] [stdout] | ^^- [INFO] [stdout] | | [INFO] [stdout] | help: try removing the field [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rect` [INFO] [stdout] --> src/gui/board.rs:158:13 [INFO] [stdout] | [INFO] [stdout] 158 | rect, [INFO] [stdout] | ^^^^- [INFO] [stdout] | | [INFO] [stdout] | help: try removing the field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `style` [INFO] [stdout] --> src/gui/board.rs:160:13 [INFO] [stdout] | [INFO] [stdout] 160 | style, [INFO] [stdout] | ^^^^^- [INFO] [stdout] | | [INFO] [stdout] | help: try removing the field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rect` [INFO] [stdout] --> src/gui/tile.rs:77:13 [INFO] [stdout] | [INFO] [stdout] 77 | rect, [INFO] [stdout] | ^^^^- [INFO] [stdout] | | [INFO] [stdout] | help: try removing the field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `style` [INFO] [stdout] --> src/gui/tile.rs:79:13 [INFO] [stdout] | [INFO] [stdout] 79 | style, [INFO] [stdout] | ^^^^^- [INFO] [stdout] | | [INFO] [stdout] | help: try removing the field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/engine/AI/tree.rs:70:21 [INFO] [stdout] | [INFO] [stdout] 70 | let mut value = heuristics::main_heuristic(&new_board_state, enums::Player::White); [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: variable does not need to be mutable [INFO] [stdout] --> src/engine/AI/tree.rs:114:21 [INFO] [stdout] | [INFO] [stdout] 114 | let mut value = heuristics::main_heuristic(&new_board_state, enums::Player::White);; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/engine/AI/tree.rs:115:21 [INFO] [stdout] | [INFO] [stdout] 115 | let mut node = Node {board_state: new_board_state, value, position: valid_moves[position]}; [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `difficulty` [INFO] [stdout] --> src/tui/mod.rs:16:10 [INFO] [stdout] | [INFO] [stdout] 16 | let mut difficulty = 0; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_difficulty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `r` [INFO] [stdout] --> src/tui/mod.rs:31:8 [INFO] [stdout] | [INFO] [stdout] 31 | Err(r) => 0 [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `r` [INFO] [stdout] --> src/tui/mod.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | Err(r) => 0 [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `r` [INFO] [stdout] --> src/tui/mod.rs:74:8 [INFO] [stdout] | [INFO] [stdout] 74 | Err(r) => 0 [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `aiplayer` [INFO] [stdout] --> src/tui/mod.rs:83:7 [INFO] [stdout] | [INFO] [stdout] 83 | let aiplayer = match humanplayer { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_aiplayer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/tui/mod.rs:122:10 [INFO] [stdout] | [INFO] [stdout] 122 | Err(e) => 0 as u8 [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/tui/mod.rs:147:9 [INFO] [stdout] | [INFO] [stdout] 147 | Err(e) => 0 as u8 [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/gui/board.rs:156:13 [INFO] [stdout] | [INFO] [stdout] 156 | id, [INFO] [stdout] | ^^- [INFO] [stdout] | | [INFO] [stdout] | help: try removing the field [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rect` [INFO] [stdout] --> src/gui/board.rs:158:13 [INFO] [stdout] | [INFO] [stdout] 158 | rect, [INFO] [stdout] | ^^^^- [INFO] [stdout] | | [INFO] [stdout] | help: try removing the field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `style` [INFO] [stdout] --> src/gui/board.rs:160:13 [INFO] [stdout] | [INFO] [stdout] 160 | style, [INFO] [stdout] | ^^^^^- [INFO] [stdout] | | [INFO] [stdout] | help: try removing the field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tui/mod.rs:16:6 [INFO] [stdout] | [INFO] [stdout] 16 | let mut difficulty = 0; [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rect` [INFO] [stdout] --> src/gui/tile.rs:77:13 [INFO] [stdout] | [INFO] [stdout] 77 | rect, [INFO] [stdout] | ^^^^- [INFO] [stdout] | | [INFO] [stdout] | help: try removing the field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `style` [INFO] [stdout] --> src/gui/tile.rs:79:13 [INFO] [stdout] | [INFO] [stdout] 79 | style, [INFO] [stdout] | ^^^^^- [INFO] [stdout] | | [INFO] [stdout] | help: try removing the field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rust_logo` [INFO] [stdout] --> src/main.rs:79:9 [INFO] [stdout] | [INFO] [stdout] 79 | rust_logo: conrod_core::image::Id, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rust_logo` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `eventType` is never read [INFO] [stdout] --> src/gui/board.rs:134:5 [INFO] [stdout] | [INFO] [stdout] 133 | pub struct Event { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 134 | eventType: EventType, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Event` 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: field `enabled` is never read [INFO] [stdout] --> src/gui/tile.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct Tile { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] ... [INFO] [stdout] 12 | enabled: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `enabled` is never used [INFO] [stdout] --> src/gui/tile.rs:50:12 [INFO] [stdout] | [INFO] [stdout] 34 | impl<'a> Tile { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn enabled(mut self, flag: bool) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_bitboard` is never used [INFO] [stdout] --> src/engine/board.rs:343:8 [INFO] [stdout] | [INFO] [stdout] 343 | pub fn print_bitboard(board: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PositionEvaluation` is never constructed [INFO] [stdout] --> src/engine/AI/tree.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 38 | pub struct PositionEvaluation { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `number_of_set_bits` is never used [INFO] [stdout] --> src/engine/AI/tree.rs:225:8 [INFO] [stdout] | [INFO] [stdout] 225 | pub fn number_of_set_bits(i: u64) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tui` is never used [INFO] [stdout] --> src/tui/mod.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn tui() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `convert_letter_to_number` is never used [INFO] [stdout] --> src/tui/mod.rs:170:4 [INFO] [stdout] | [INFO] [stdout] 170 | fn convert_letter_to_number(letter: &str) -> i8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `AI_vs_AI` is never used [INFO] [stdout] --> src/tui/mod.rs:192:8 [INFO] [stdout] | [INFO] [stdout] 192 | pub fn AI_vs_AI() { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/gui/mod.rs:47:18 [INFO] [stdout] | [INFO] [stdout] 47 | for event in board::Board::new(&app.board_state) [INFO] [stdout] | __________________^ [INFO] [stdout] 48 | | .top_left_of(ids.canvas) [INFO] [stdout] 49 | | .set(ids.board, ui) { [INFO] [stdout] | |___________________________^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(for_loops_over_fallibles)]` on by default [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 47 | while let Some(event) = board::Board::new(&app.board_state) [INFO] [stdout] | ~~~~~~~~~~~~~~~ ~~~ [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 47 | if let Some(event) = board::Board::new(&app.board_state) [INFO] [stdout] | ~~~~~~~~~~~~ ~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, they should be avoided as they go against expectation [INFO] [stdout] --> src/gui/board.rs:9:10 [INFO] [stdout] | [INFO] [stdout] 9 | #[derive(WidgetCommon)] [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: move this `impl` block outside the of the current constant `_IMPL_WIDGET_COMMON_FOR_Board` [INFO] [stdout] = note: an `impl` definition is non-local if it is nested inside an item and may impact type checking outside of that item. This can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: one exception to the rule are anon-const (`const _: () = { ... }`) at top-level module and anon-const at the same nesting as the trait or type [INFO] [stdout] = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue [INFO] [stdout] = note: the derive macro `WidgetCommon` may come from an old version of the `conrod_derive` crate, try updating your dependency with `cargo update -p conrod_derive` [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] = note: this warning originates in the derive macro `WidgetCommon` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, they should be avoided as they go against expectation [INFO] [stdout] --> src/gui/board.rs:17:50 [INFO] [stdout] | [INFO] [stdout] 17 | #[derive(Copy, Clone, Debug, Default, PartialEq, WidgetStyle)] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: move this `impl` block outside the of the current constant `_IMPL_WIDGET_STYLE_FOR_Style` [INFO] [stdout] = note: an `impl` definition is non-local if it is nested inside an item and may impact type checking outside of that item. This can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: one exception to the rule are anon-const (`const _: () = { ... }`) at top-level module and anon-const at the same nesting as the trait or type [INFO] [stdout] = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue [INFO] [stdout] = note: the derive macro `WidgetStyle` may come from an old version of the `conrod_derive` crate, try updating your dependency with `cargo update -p conrod_derive` [INFO] [stdout] = note: this warning originates in the derive macro `WidgetStyle` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `eventType` should have a snake case name [INFO] [stdout] --> src/gui/board.rs:134:5 [INFO] [stdout] | [INFO] [stdout] 134 | eventType: EventType, [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `event_type` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/gui/board.rs:204:26 [INFO] [stdout] | [INFO] [stdout] 204 | ...in tile::Tile::new([i as u8, j as u8]).owner(self.board_state[i][j]).x_y_position_relative_to(state.ids.background, Relative::Scalar(-350.0 + (100.0 * j as f64)), Relative::Scalar(350.0 - (100.0 * i as f64))).set(tile_ids[i][j], ui... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 204 | while let Some(e) = tile::Tile::new([i as u8, j as u8]).owner(self.board_state[i][j]).x_y_position_relative_to(state.ids.background, Relative::Scalar(-350.0 + (100.0 * j as f64)), Relative::Scalar(350.0 - (100.0 * i as f64))).set(tile_ids[i][j], ui) { [INFO] [stdout] | ~~~~~~~~~~~~~~~ ~~~ [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 204 | if let Some(e) = tile::Tile::new([i as u8, j as u8]).owner(self.board_state[i][j]).x_y_position_relative_to(state.ids.background, Relative::Scalar(-350.0 + (100.0 * j as f64)), Relative::Scalar(350.0 - (100.0 * i as f64))).set(tile_ids[i][j], ui) { [INFO] [stdout] | ~~~~~~~~~~~~ ~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, they should be avoided as they go against expectation [INFO] [stdout] --> src/gui/tile.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | #[derive(WidgetCommon)] [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: move this `impl` block outside the of the current constant `_IMPL_WIDGET_COMMON_FOR_Tile` [INFO] [stdout] = note: an `impl` definition is non-local if it is nested inside an item and may impact type checking outside of that item. This can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: one exception to the rule are anon-const (`const _: () = { ... }`) at top-level module and anon-const at the same nesting as the trait or type [INFO] [stdout] = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue [INFO] [stdout] = note: the derive macro `WidgetCommon` may come from an old version of the `conrod_derive` crate, try updating your dependency with `cargo update -p conrod_derive` [INFO] [stdout] = note: this warning originates in the derive macro `WidgetCommon` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, they should be avoided as they go against expectation [INFO] [stdout] --> src/gui/tile.rs:17:50 [INFO] [stdout] | [INFO] [stdout] 17 | #[derive(Copy, Clone, Debug, Default, PartialEq, WidgetStyle)] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: move this `impl` block outside the of the current constant `_IMPL_WIDGET_STYLE_FOR_Style` [INFO] [stdout] = note: an `impl` definition is non-local if it is nested inside an item and may impact type checking outside of that item. This can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: one exception to the rule are anon-const (`const _: () = { ... }`) at top-level module and anon-const at the same nesting as the trait or type [INFO] [stdout] = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue [INFO] [stdout] = note: the derive macro `WidgetStyle` may come from an old version of the `conrod_derive` crate, try updating your dependency with `cargo update -p conrod_derive` [INFO] [stdout] = note: this warning originates in the derive macro `WidgetStyle` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module `AI` should have a snake case name [INFO] [stdout] --> src/engine/mod.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | pub mod AI; [INFO] [stdout] | ^^ help: convert the identifier to snake case: `ai` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module `AI` should have a snake case name [INFO] [stdout] --> src/engine/AI/mod.rs:1:9 [INFO] [stdout] | [INFO] [stdout] 1 | pub mod AI; [INFO] [stdout] | ^^ help: convert the identifier to snake case: `ai` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `AI` should have a snake case name [INFO] [stdout] --> src/tui/mod.rs:15:10 [INFO] [stdout] | [INFO] [stdout] 15 | let mut AI = 0; [INFO] [stdout] | ^^ help: convert the identifier to snake case: `ai` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `AI_vs_AI` should have a snake case name [INFO] [stdout] --> src/tui/mod.rs:192:8 [INFO] [stdout] | [INFO] [stdout] 192 | pub fn AI_vs_AI() { [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `ai_vs_ai` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/engine/AI/tree.rs:70:21 [INFO] [stdout] | [INFO] [stdout] 70 | let mut value = heuristics::main_heuristic(&new_board_state, enums::Player::White); [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: variable does not need to be mutable [INFO] [stdout] --> src/engine/AI/tree.rs:114:21 [INFO] [stdout] | [INFO] [stdout] 114 | let mut value = heuristics::main_heuristic(&new_board_state, enums::Player::White);; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/engine/AI/tree.rs:115:21 [INFO] [stdout] | [INFO] [stdout] 115 | let mut node = Node {board_state: new_board_state, value, position: valid_moves[position]}; [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `difficulty` [INFO] [stdout] --> src/tui/mod.rs:16:10 [INFO] [stdout] | [INFO] [stdout] 16 | let mut difficulty = 0; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_difficulty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `r` [INFO] [stdout] --> src/tui/mod.rs:31:8 [INFO] [stdout] | [INFO] [stdout] 31 | Err(r) => 0 [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `r` [INFO] [stdout] --> src/tui/mod.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | Err(r) => 0 [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `r` [INFO] [stdout] --> src/tui/mod.rs:74:8 [INFO] [stdout] | [INFO] [stdout] 74 | Err(r) => 0 [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `aiplayer` [INFO] [stdout] --> src/tui/mod.rs:83:7 [INFO] [stdout] | [INFO] [stdout] 83 | let aiplayer = match humanplayer { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_aiplayer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/tui/mod.rs:122:10 [INFO] [stdout] | [INFO] [stdout] 122 | Err(e) => 0 as u8 [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/tui/mod.rs:147:9 [INFO] [stdout] | [INFO] [stdout] 147 | Err(e) => 0 as u8 [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tui/mod.rs:16:6 [INFO] [stdout] | [INFO] [stdout] 16 | let mut difficulty = 0; [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rust_logo` [INFO] [stdout] --> src/main.rs:79:9 [INFO] [stdout] | [INFO] [stdout] 79 | rust_logo: conrod_core::image::Id, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rust_logo` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `eventType` is never read [INFO] [stdout] --> src/gui/board.rs:134:5 [INFO] [stdout] | [INFO] [stdout] 133 | pub struct Event { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 134 | eventType: EventType, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Event` 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: field `enabled` is never read [INFO] [stdout] --> src/gui/tile.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct Tile { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] ... [INFO] [stdout] 12 | enabled: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `enabled` is never used [INFO] [stdout] --> src/gui/tile.rs:50:12 [INFO] [stdout] | [INFO] [stdout] 34 | impl<'a> Tile { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn enabled(mut self, flag: bool) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_bitboard` is never used [INFO] [stdout] --> src/engine/board.rs:343:8 [INFO] [stdout] | [INFO] [stdout] 343 | pub fn print_bitboard(board: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PositionEvaluation` is never constructed [INFO] [stdout] --> src/engine/AI/tree.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 38 | pub struct PositionEvaluation { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `number_of_set_bits` is never used [INFO] [stdout] --> src/engine/AI/tree.rs:225:8 [INFO] [stdout] | [INFO] [stdout] 225 | pub fn number_of_set_bits(i: u64) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tui` is never used [INFO] [stdout] --> src/tui/mod.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn tui() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `convert_letter_to_number` is never used [INFO] [stdout] --> src/tui/mod.rs:170:4 [INFO] [stdout] | [INFO] [stdout] 170 | fn convert_letter_to_number(letter: &str) -> i8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `AI_vs_AI` is never used [INFO] [stdout] --> src/tui/mod.rs:192:8 [INFO] [stdout] | [INFO] [stdout] 192 | pub fn AI_vs_AI() { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 49 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/gui/mod.rs:47:18 [INFO] [stdout] | [INFO] [stdout] 47 | for event in board::Board::new(&app.board_state) [INFO] [stdout] | __________________^ [INFO] [stdout] 48 | | .top_left_of(ids.canvas) [INFO] [stdout] 49 | | .set(ids.board, ui) { [INFO] [stdout] | |___________________________^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(for_loops_over_fallibles)]` on by default [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 47 | while let Some(event) = board::Board::new(&app.board_state) [INFO] [stdout] | ~~~~~~~~~~~~~~~ ~~~ [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 47 | if let Some(event) = board::Board::new(&app.board_state) [INFO] [stdout] | ~~~~~~~~~~~~ ~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, they should be avoided as they go against expectation [INFO] [stdout] --> src/gui/board.rs:9:10 [INFO] [stdout] | [INFO] [stdout] 9 | #[derive(WidgetCommon)] [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: move this `impl` block outside the of the current constant `_IMPL_WIDGET_COMMON_FOR_Board` [INFO] [stdout] = note: an `impl` definition is non-local if it is nested inside an item and may impact type checking outside of that item. This can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: one exception to the rule are anon-const (`const _: () = { ... }`) at top-level module and anon-const at the same nesting as the trait or type [INFO] [stdout] = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue [INFO] [stdout] = note: the derive macro `WidgetCommon` may come from an old version of the `conrod_derive` crate, try updating your dependency with `cargo update -p conrod_derive` [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] = note: this warning originates in the derive macro `WidgetCommon` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, they should be avoided as they go against expectation [INFO] [stdout] --> src/gui/board.rs:17:50 [INFO] [stdout] | [INFO] [stdout] 17 | #[derive(Copy, Clone, Debug, Default, PartialEq, WidgetStyle)] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: move this `impl` block outside the of the current constant `_IMPL_WIDGET_STYLE_FOR_Style` [INFO] [stdout] = note: an `impl` definition is non-local if it is nested inside an item and may impact type checking outside of that item. This can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: one exception to the rule are anon-const (`const _: () = { ... }`) at top-level module and anon-const at the same nesting as the trait or type [INFO] [stdout] = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue [INFO] [stdout] = note: the derive macro `WidgetStyle` may come from an old version of the `conrod_derive` crate, try updating your dependency with `cargo update -p conrod_derive` [INFO] [stdout] = note: this warning originates in the derive macro `WidgetStyle` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `eventType` should have a snake case name [INFO] [stdout] --> src/gui/board.rs:134:5 [INFO] [stdout] | [INFO] [stdout] 134 | eventType: EventType, [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `event_type` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/gui/board.rs:204:26 [INFO] [stdout] | [INFO] [stdout] 204 | ...in tile::Tile::new([i as u8, j as u8]).owner(self.board_state[i][j]).x_y_position_relative_to(state.ids.background, Relative::Scalar(-350.0 + (100.0 * j as f64)), Relative::Scalar(350.0 - (100.0 * i as f64))).set(tile_ids[i][j], ui... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 204 | while let Some(e) = tile::Tile::new([i as u8, j as u8]).owner(self.board_state[i][j]).x_y_position_relative_to(state.ids.background, Relative::Scalar(-350.0 + (100.0 * j as f64)), Relative::Scalar(350.0 - (100.0 * i as f64))).set(tile_ids[i][j], ui) { [INFO] [stdout] | ~~~~~~~~~~~~~~~ ~~~ [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 204 | if let Some(e) = tile::Tile::new([i as u8, j as u8]).owner(self.board_state[i][j]).x_y_position_relative_to(state.ids.background, Relative::Scalar(-350.0 + (100.0 * j as f64)), Relative::Scalar(350.0 - (100.0 * i as f64))).set(tile_ids[i][j], ui) { [INFO] [stdout] | ~~~~~~~~~~~~ ~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, they should be avoided as they go against expectation [INFO] [stdout] --> src/gui/tile.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | #[derive(WidgetCommon)] [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: move this `impl` block outside the of the current constant `_IMPL_WIDGET_COMMON_FOR_Tile` [INFO] [stdout] = note: an `impl` definition is non-local if it is nested inside an item and may impact type checking outside of that item. This can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: one exception to the rule are anon-const (`const _: () = { ... }`) at top-level module and anon-const at the same nesting as the trait or type [INFO] [stdout] = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue [INFO] [stdout] = note: the derive macro `WidgetCommon` may come from an old version of the `conrod_derive` crate, try updating your dependency with `cargo update -p conrod_derive` [INFO] [stdout] = note: this warning originates in the derive macro `WidgetCommon` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, they should be avoided as they go against expectation [INFO] [stdout] --> src/gui/tile.rs:17:50 [INFO] [stdout] | [INFO] [stdout] 17 | #[derive(Copy, Clone, Debug, Default, PartialEq, WidgetStyle)] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: move this `impl` block outside the of the current constant `_IMPL_WIDGET_STYLE_FOR_Style` [INFO] [stdout] = note: an `impl` definition is non-local if it is nested inside an item and may impact type checking outside of that item. This can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: one exception to the rule are anon-const (`const _: () = { ... }`) at top-level module and anon-const at the same nesting as the trait or type [INFO] [stdout] = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue [INFO] [stdout] = note: the derive macro `WidgetStyle` may come from an old version of the `conrod_derive` crate, try updating your dependency with `cargo update -p conrod_derive` [INFO] [stdout] = note: this warning originates in the derive macro `WidgetStyle` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module `AI` should have a snake case name [INFO] [stdout] --> src/engine/mod.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | pub mod AI; [INFO] [stdout] | ^^ help: convert the identifier to snake case: `ai` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module `AI` should have a snake case name [INFO] [stdout] --> src/engine/AI/mod.rs:1:9 [INFO] [stdout] | [INFO] [stdout] 1 | pub mod AI; [INFO] [stdout] | ^^ help: convert the identifier to snake case: `ai` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `AI` should have a snake case name [INFO] [stdout] --> src/tui/mod.rs:15:10 [INFO] [stdout] | [INFO] [stdout] 15 | let mut AI = 0; [INFO] [stdout] | ^^ help: convert the identifier to snake case: `ai` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `AI_vs_AI` should have a snake case name [INFO] [stdout] --> src/tui/mod.rs:192:8 [INFO] [stdout] | [INFO] [stdout] 192 | pub fn AI_vs_AI() { [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `ai_vs_ai` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 49 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 05s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v6.1.2 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3` [INFO] running `Command { std: "docker" "inspect" "f0255303ba950114b53d91d5a919580637115a4d33e0345ddb4762f7f97565ca", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f0255303ba950114b53d91d5a919580637115a4d33e0345ddb4762f7f97565ca", kill_on_drop: false }` [INFO] [stdout] f0255303ba950114b53d91d5a919580637115a4d33e0345ddb4762f7f97565ca