[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] building matttilton/Othello-rs against try#8b8eff55bd72abbb57167bc42222a7f91d41cb0d for pr-142134-abi-ast-error [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmatttilton%2FOthello-rs" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/matttilton/Othello-rs on toolchain 8b8eff55bd72abbb57167bc42222a7f91d41cb0d [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8b8eff55bd72abbb57167bc42222a7f91d41cb0d" "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-0-tc2/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" "+8b8eff55bd72abbb57167bc42222a7f91d41cb0d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:eea15d5475069c3ef791f10c2c6b5af2ee421ef2da1e680ecce1cba46243983b" "/opt/rustwide/cargo-home/bin/cargo" "+8b8eff55bd72abbb57167bc42222a7f91d41cb0d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 9d134d4969b1bb7b5fe52ef3aa469d1b4e54196ba6fa23638b78ddf9c607c476 [INFO] running `Command { std: "docker" "start" "-a" "9d134d4969b1bb7b5fe52ef3aa469d1b4e54196ba6fa23638b78ddf9c607c476", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "9d134d4969b1bb7b5fe52ef3aa469d1b4e54196ba6fa23638b78ddf9c607c476", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9d134d4969b1bb7b5fe52ef3aa469d1b4e54196ba6fa23638b78ddf9c607c476", kill_on_drop: false }` [INFO] [stdout] 9d134d4969b1bb7b5fe52ef3aa469d1b4e54196ba6fa23638b78ddf9c607c476 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:eea15d5475069c3ef791f10c2c6b5af2ee421ef2da1e680ecce1cba46243983b" "/opt/rustwide/cargo-home/bin/cargo" "+8b8eff55bd72abbb57167bc42222a7f91d41cb0d" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a7cb488c5c05a3e33f16c5379336cda509f8432c5a43a6cb58a0ebe090c0d5e3 [INFO] running `Command { std: "docker" "start" "-a" "a7cb488c5c05a3e33f16c5379336cda509f8432c5a43a6cb58a0ebe090c0d5e3", kill_on_drop: false }` [INFO] [stderr] Compiling autocfg v1.0.1 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling libc v0.2.86 [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling xml-rs v0.8.3 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Compiling cfg-if v0.1.10 [INFO] [stderr] Compiling log v0.4.14 [INFO] [stderr] Compiling proc-macro2 v1.0.24 [INFO] [stderr] Compiling unicode-xid v0.2.1 [INFO] [stderr] Compiling scopeguard v1.1.0 [INFO] [stderr] Compiling libloading v0.6.7 [INFO] [stderr] Compiling proc-macro2 v0.4.30 [INFO] [stderr] Compiling dlib v0.4.2 [INFO] [stderr] Compiling unicode-xid v0.1.0 [INFO] [stderr] Compiling maybe-uninit v2.0.0 [INFO] [stderr] Compiling pkg-config v0.3.19 [INFO] [stderr] Compiling downcast-rs v1.2.0 [INFO] [stderr] Compiling khronos_api v3.1.0 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling quote v1.0.9 [INFO] [stderr] Compiling quote v0.6.13 [INFO] [stderr] Compiling wayland-scanner v0.28.4 [INFO] [stderr] Compiling memoffset v0.5.6 [INFO] [stderr] Compiling byteorder v1.4.2 [INFO] [stderr] Compiling num_cpus v1.13.0 [INFO] [stderr] Compiling wayland-sys v0.28.4 [INFO] [stderr] Compiling crossbeam-utils v0.7.2 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling smallvec v1.6.1 [INFO] [stderr] Compiling walkdir v2.3.1 [INFO] [stderr] Compiling gl_generator v0.14.0 [INFO] [stderr] Compiling wayland-scanner v0.23.6 [INFO] [stderr] Compiling crossbeam-epoch v0.8.2 [INFO] [stderr] Compiling xdg v2.2.0 [INFO] [stderr] Compiling nix v0.20.0 [INFO] [stderr] Compiling version_check v0.9.2 [INFO] [stderr] Compiling memchr v2.3.4 [INFO] [stderr] Compiling nix v0.14.1 [INFO] [stderr] Compiling wayland-client v0.28.4 [INFO] [stderr] Compiling once_cell v1.6.0 [INFO] [stderr] Compiling nom v6.1.2 [INFO] [stderr] Compiling num-integer v0.1.44 [INFO] [stderr] Compiling crossbeam-utils v0.8.2 [INFO] [stderr] Compiling scoped-tls v1.0.0 [INFO] [stderr] Compiling void v1.0.2 [INFO] [stderr] Compiling crossbeam-deque v0.7.3 [INFO] [stderr] Compiling stb_truetype v0.3.1 [INFO] [stderr] Compiling ordered-float v1.1.1 [INFO] [stderr] Compiling approx v0.3.2 [INFO] [stderr] Compiling memoffset v0.6.1 [INFO] [stderr] Compiling wayland-sys v0.23.6 [INFO] [stderr] Compiling linked-hash-map v0.5.4 [INFO] [stderr] Compiling ttf-parser v0.6.2 [INFO] [stderr] Compiling rustc-hash v1.1.0 [INFO] [stderr] Compiling nix v0.18.0 [INFO] [stderr] Compiling rusttype v0.8.3 [INFO] [stderr] Compiling wayland-client v0.23.6 [INFO] [stderr] Compiling owned_ttf_parser v0.6.0 [INFO] [stderr] Compiling wayland-protocols v0.23.6 [INFO] [stderr] Compiling wayland-protocols v0.28.4 [INFO] [stderr] Compiling x11-dl v2.18.5 [INFO] [stderr] Compiling num-bigint v0.2.6 [INFO] [stderr] Compiling instant v0.1.9 [INFO] [stderr] Compiling ab_glyph_rasterizer v0.1.4 [INFO] [stderr] Compiling syn v1.0.60 [INFO] [stderr] Compiling wayland-commons v0.28.4 [INFO] [stderr] Compiling rusttype v0.9.2 [INFO] [stderr] Compiling wayland-commons v0.23.6 [INFO] [stderr] Compiling xcursor v0.3.3 [INFO] [stderr] Compiling rusttype v0.7.9 [INFO] [stderr] Compiling line_drawing v0.7.0 [INFO] [stderr] Compiling xcb v0.9.0 [INFO] [stderr] Compiling net2 v0.2.37 [INFO] [stderr] Compiling iovec v0.1.4 [INFO] [stderr] Compiling num-iter v0.1.42 [INFO] [stderr] Compiling num-rational v0.2.4 [INFO] [stderr] Compiling rayon-core v1.9.0 [INFO] [stderr] Compiling slab v0.4.2 [INFO] [stderr] Compiling mio v0.6.23 [INFO] [stderr] Compiling andrew v0.2.1 [INFO] [stderr] Compiling wayland-cursor v0.28.4 [INFO] [stderr] Compiling crossbeam-epoch v0.9.2 [INFO] [stderr] Compiling andrew v0.3.1 [INFO] [stderr] Compiling calloop v0.6.5 [INFO] [stderr] Compiling parking_lot_core v0.8.3 [INFO] [stderr] Compiling glutin_egl_sys v0.1.5 [INFO] [stderr] Compiling glutin_glx_sys v0.1.7 [INFO] [stderr] Compiling memmap2 v0.1.0 [INFO] [stderr] Compiling memmap v0.7.0 [INFO] [stderr] Compiling num-complex v0.2.4 [INFO] [stderr] Compiling miniz_oxide v0.4.3 [INFO] [stderr] Compiling lock_api v0.4.2 [INFO] [stderr] Compiling getrandom v0.1.16 [INFO] [stderr] Compiling serde v1.0.123 [INFO] [stderr] Compiling serde_derive v1.0.123 [INFO] [stderr] Compiling winit v0.23.0 [INFO] [stderr] Compiling lazycell v1.3.0 [INFO] [stderr] Compiling syn v0.15.44 [INFO] [stderr] Compiling mio-extras v2.0.6 [INFO] [stderr] Compiling parking_lot v0.11.1 [INFO] [stderr] Compiling crossbeam-deque v0.8.0 [INFO] [stderr] Compiling crossbeam-channel v0.5.0 [INFO] [stderr] Compiling raw-window-handle v0.3.3 [INFO] [stderr] Compiling shared_library v0.1.9 [INFO] [stderr] Compiling rayon v1.5.0 [INFO] [stderr] Compiling adler v0.2.3 [INFO] [stderr] Compiling piston-float v1.0.0 [INFO] [stderr] Compiling adler32 v1.2.0 [INFO] [stderr] Compiling percent-encoding v2.1.0 [INFO] [stderr] Compiling fixedbitset v0.1.9 [INFO] [stderr] Compiling crc32fast v1.2.1 [INFO] [stderr] Compiling num-derive v0.2.5 [INFO] [stderr] Compiling gimli v0.23.0 [INFO] [stderr] Compiling petgraph v0.4.13 [INFO] [stderr] Compiling piston-viewport v1.0.0 [INFO] [stderr] Compiling osmesa-sys v0.1.2 [INFO] [stderr] Compiling wayland-egl v0.28.4 [INFO] [stderr] Compiling glium v0.28.0 [INFO] [stderr] Compiling addr2line v0.14.1 [INFO] [stderr] Compiling rustc-demangle v0.1.18 [INFO] [stderr] Compiling smithay-client-toolkit v0.12.2 [INFO] [stderr] Compiling smithay-client-toolkit v0.6.6 [INFO] [stderr] Compiling x11-clipboard v0.5.1 [INFO] [stderr] Compiling smithay-clipboard v0.4.0 [INFO] [stderr] Compiling object v0.23.0 [INFO] [stderr] Compiling either v1.6.1 [INFO] [stderr] Compiling fnv v1.0.7 [INFO] [stderr] Compiling lzw v0.10.0 [INFO] [stderr] Compiling glutin v0.25.1 [INFO] [stderr] Compiling copypasta v0.6.3 [INFO] [stderr] Compiling conrod_derive v0.71.0 [INFO] [stderr] Compiling pistoncore-input v1.0.0 [INFO] [stderr] Compiling backtrace v0.3.56 [INFO] [stderr] Compiling rand_core v0.5.1 [INFO] [stderr] Compiling num v0.2.1 [INFO] [stderr] Compiling daggy v0.5.0 [INFO] [stderr] Compiling deflate v0.7.20 [INFO] [stderr] Compiling inflate v0.4.5 [INFO] [stderr] Compiling takeable-option v0.5.0 [INFO] [stderr] Compiling ppv-lite86 v0.2.10 [INFO] [stderr] Compiling color_quant v1.1.0 [INFO] [stderr] Compiling gif v0.10.3 [INFO] [stderr] Compiling png v0.15.3 [INFO] [stderr] Compiling conrod_core v0.71.0 [INFO] [stderr] Compiling jpeg-decoder v0.1.22 [INFO] [stderr] Compiling rand_chacha v0.2.2 [INFO] [stderr] Compiling tiff v0.3.1 [INFO] [stderr] Compiling scoped_threadpool v0.1.9 [INFO] [stderr] Compiling rand v0.7.3 [INFO] [stderr] Compiling conrod_winit v0.71.0 [INFO] [stderr] Compiling image v0.22.5 [INFO] [stderr] Compiling find_folder v0.3.0 [INFO] [stderr] Compiling conrod_glium v0.71.0 [INFO] [stderr] Compiling 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`, and `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: 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` and `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: 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 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: 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: 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 - for event in board::Board::new(&app.board_state) [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 - for event in board::Board::new(&app.board_state) [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, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/gui/board.rs:9:10 [INFO] [stdout] | [INFO] [stdout] 9 | #[derive(WidgetCommon)] [INFO] [stdout] | ^----------- [INFO] [stdout] | | [INFO] [stdout] | `Common` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_WIDGET_COMMON_FOR_Board` [INFO] [stdout] 10 | pub struct Board<'a> { [INFO] [stdout] | ----- `Board` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `WidgetCommon` defines the non-local `impl`, and may need to be changed [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: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [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, `impl` blocks should be written at the same level as their item [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] | move the `impl` block outside of this constant `_IMPL_WIDGET_STYLE_FOR_Style` [INFO] [stdout] 18 | pub struct Style { [INFO] [stdout] | ----- `Style` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `WidgetStyle` defines the non-local `impl`, and may need to be changed [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: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [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 - for e 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] 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 - for e 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] 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, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/gui/tile.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | #[derive(WidgetCommon)] [INFO] [stdout] | ^----------- [INFO] [stdout] | | [INFO] [stdout] | `Common` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_WIDGET_COMMON_FOR_Tile` [INFO] [stdout] 8 | pub struct Tile { [INFO] [stdout] | ---- `Tile` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `WidgetCommon` defines the non-local `impl`, and may need to be changed [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: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [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, `impl` blocks should be written at the same level as their item [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] | move the `impl` block outside of this constant `_IMPL_WIDGET_STYLE_FOR_Style` [INFO] [stdout] 18 | pub struct Style { [INFO] [stdout] | ----- `Style` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `WidgetStyle` defines the non-local `impl`, and may need to be changed [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: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [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] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 30s [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 1` [INFO] running `Command { std: "docker" "inspect" "a7cb488c5c05a3e33f16c5379336cda509f8432c5a43a6cb58a0ebe090c0d5e3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a7cb488c5c05a3e33f16c5379336cda509f8432c5a43a6cb58a0ebe090c0d5e3", kill_on_drop: false }` [INFO] [stdout] a7cb488c5c05a3e33f16c5379336cda509f8432c5a43a6cb58a0ebe090c0d5e3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:eea15d5475069c3ef791f10c2c6b5af2ee421ef2da1e680ecce1cba46243983b" "/opt/rustwide/cargo-home/bin/cargo" "+8b8eff55bd72abbb57167bc42222a7f91d41cb0d" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] aa97911a0341dfdeaecbee58a1bd8e40e867b982954a1b3033a6705b5a17a376 [INFO] running `Command { std: "docker" "start" "-a" "aa97911a0341dfdeaecbee58a1bd8e40e867b982954a1b3033a6705b5a17a376", kill_on_drop: false }` [INFO] [stderr] Compiling 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`, and `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: 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` and `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: 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 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: 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: 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 - for event in board::Board::new(&app.board_state) [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 - for event in board::Board::new(&app.board_state) [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, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/gui/board.rs:9:10 [INFO] [stdout] | [INFO] [stdout] 9 | #[derive(WidgetCommon)] [INFO] [stdout] | ^----------- [INFO] [stdout] | | [INFO] [stdout] | `Common` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_WIDGET_COMMON_FOR_Board` [INFO] [stdout] 10 | pub struct Board<'a> { [INFO] [stdout] | ----- `Board` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `WidgetCommon` defines the non-local `impl`, and may need to be changed [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: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [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, `impl` blocks should be written at the same level as their item [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] | move the `impl` block outside of this constant `_IMPL_WIDGET_STYLE_FOR_Style` [INFO] [stdout] 18 | pub struct Style { [INFO] [stdout] | ----- `Style` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `WidgetStyle` defines the non-local `impl`, and may need to be changed [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: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [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 - for e 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] 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 - for e 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] 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, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/gui/tile.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | #[derive(WidgetCommon)] [INFO] [stdout] | ^----------- [INFO] [stdout] | | [INFO] [stdout] | `Common` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_WIDGET_COMMON_FOR_Tile` [INFO] [stdout] 8 | pub struct Tile { [INFO] [stdout] | ---- `Tile` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `WidgetCommon` defines the non-local `impl`, and may need to be changed [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: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [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, `impl` blocks should be written at the same level as their item [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] | move the `impl` block outside of this constant `_IMPL_WIDGET_STYLE_FOR_Style` [INFO] [stdout] 18 | pub struct Style { [INFO] [stdout] | ----- `Style` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `WidgetStyle` defines the non-local `impl`, and may need to be changed [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: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [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] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1.48s [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 1` [INFO] running `Command { std: "docker" "inspect" "aa97911a0341dfdeaecbee58a1bd8e40e867b982954a1b3033a6705b5a17a376", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "aa97911a0341dfdeaecbee58a1bd8e40e867b982954a1b3033a6705b5a17a376", kill_on_drop: false }` [INFO] [stdout] aa97911a0341dfdeaecbee58a1bd8e40e867b982954a1b3033a6705b5a17a376