[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 master#c7f6aa2869acdbf014d094c6e427e554e160b6db for pr-146237-2 [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] 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] validating manifest of git repo https://github.com/matttilton/Othello-rs on toolchain c7f6aa2869acdbf014d094c6e427e554e160b6db [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [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" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded dlib v0.4.2 [INFO] [stderr] Downloaded wayland-sys v0.28.4 [INFO] [stderr] Downloaded maybe-uninit v2.0.0 [INFO] [stderr] Downloaded ndk-macro v0.2.0 [INFO] [stderr] Downloaded thiserror-impl v1.0.24 [INFO] [stderr] Downloaded pkg-config v0.3.19 [INFO] [stderr] Downloaded x11-dl v2.18.5 [INFO] [stderr] Downloaded libloading v0.6.7 [INFO] [stderr] Downloaded wayland-client v0.28.4 [INFO] [stderr] Downloaded xdg v2.2.0 [INFO] [stderr] Downloaded glutin_egl_sys v0.1.5 [INFO] [stderr] Downloaded wayland-egl v0.28.4 [INFO] [stderr] Downloaded adler v0.2.3 [INFO] [stderr] Downloaded rustc-demangle v0.1.18 [INFO] [stderr] Downloaded android_glue v0.2.3 [INFO] [stderr] Downloaded memchr v2.3.4 [INFO] [stderr] Downloaded clipboard-win v2.2.0 [INFO] [stderr] Downloaded glutin_emscripten_sys v0.1.1 [INFO] [stderr] Downloaded instant v0.1.9 [INFO] [stderr] Downloaded daggy v0.5.0 [INFO] [stderr] Downloaded conrod_derive v0.71.0 [INFO] [stderr] Downloaded fixedbitset v0.1.9 [INFO] [stderr] Downloaded rusttype v0.7.9 [INFO] [stderr] Downloaded conrod_glium v0.71.0 [INFO] [stderr] Downloaded andrew v0.2.1 [INFO] [stderr] Downloaded petgraph v0.4.13 [INFO] [stderr] Downloaded piston-viewport v1.0.0 [INFO] [stderr] Downloaded memoffset v0.6.1 [INFO] [stderr] Downloaded thiserror v1.0.24 [INFO] [stderr] Downloaded image v0.22.5 [INFO] [stderr] Downloaded gimli v0.23.0 [INFO] [stderr] Downloaded nix v0.14.1 [INFO] [stderr] Downloaded xcb v0.9.0 [INFO] [stderr] Downloaded smithay-client-toolkit v0.6.6 [INFO] [stderr] Downloaded inflate v0.4.5 [INFO] [stderr] Downloaded generator v0.6.24 [INFO] [stderr] Downloaded serde v1.0.123 [INFO] [stderr] Downloaded conrod_core v0.71.0 [INFO] [stderr] Downloaded wayland-protocols v0.23.6 [INFO] [stderr] Downloaded lzw v0.10.0 [INFO] [stderr] Downloaded crossbeam-epoch v0.9.2 [INFO] [stderr] Downloaded num-iter v0.1.42 [INFO] [stderr] Downloaded tiff v0.3.1 [INFO] [stderr] Downloaded cc v1.0.67 [INFO] [stderr] Downloaded num-integer v0.1.44 [INFO] [stderr] Downloaded gif v0.10.3 [INFO] [stderr] Downloaded glutin v0.25.1 [INFO] [stderr] Downloaded png v0.15.3 [INFO] [stderr] Downloaded deflate v0.7.20 [INFO] [stderr] Downloaded wayland-protocols v0.28.4 [INFO] [stderr] Downloaded smithay-client-toolkit v0.12.2 [INFO] [stderr] Downloaded crossbeam-channel v0.5.0 [INFO] [stderr] Downloaded rayon v1.5.0 [INFO] [stderr] Downloaded nix v0.18.0 [INFO] [stderr] Downloaded nom v6.1.2 [INFO] [stderr] Downloaded nix v0.20.0 [INFO] [stderr] Downloaded winit v0.23.0 [INFO] [stderr] Downloaded rayon-core v1.9.0 [INFO] [stderr] Downloaded jpeg-decoder v0.1.22 [INFO] [stderr] Downloaded ttf-parser v0.6.2 [INFO] [stderr] Downloaded syn v1.0.60 [INFO] [stderr] Downloaded ndk-sys v0.2.1 [INFO] [stderr] Downloaded libc v0.2.86 [INFO] [stderr] Downloaded xml-rs v0.8.3 [INFO] [stderr] Downloaded num-traits v0.2.14 [INFO] [stderr] Downloaded smallvec v1.6.1 [INFO] [stderr] Downloaded cocoa v0.23.0 [INFO] [stderr] Downloaded ndk v0.2.1 [INFO] [stderr] Downloaded byteorder v1.4.2 [INFO] [stderr] Downloaded autocfg v1.0.1 [INFO] [stderr] Downloaded cocoa-foundation v0.1.0 [INFO] [stderr] Downloaded core-foundation-sys v0.8.2 [INFO] [stderr] Downloaded net2 v0.2.37 [INFO] [stderr] Downloaded ab_glyph_rasterizer v0.1.4 [INFO] [stderr] Downloaded scoped-tls v1.0.0 [INFO] [stderr] Downloaded quote v1.0.9 [INFO] [stderr] Downloaded crc32fast v1.2.1 [INFO] [stderr] Downloaded scoped_threadpool v0.1.9 [INFO] [stderr] Downloaded loom v0.4.0 [INFO] [stderr] Downloaded core-foundation v0.9.1 [INFO] [stderr] Downloaded core-graphics v0.22.2 [INFO] [stderr] Downloaded toml v0.5.8 [INFO] [stderr] Downloaded andrew v0.3.1 [INFO] [stderr] Downloaded unicode-xid v0.2.1 [INFO] [stderr] Downloaded glutin_glx_sys v0.1.7 [INFO] [stderr] Downloaded takeable-option v0.5.0 [INFO] [stderr] Downloaded num-derive v0.2.5 [INFO] [stderr] Downloaded slab v0.4.2 [INFO] [stderr] Downloaded num_enum_derive v0.4.3 [INFO] [stderr] Downloaded num_enum v0.4.3 [INFO] [stderr] Downloaded wayland-scanner v0.28.4 [INFO] [stderr] Downloaded rustversion v1.0.4 [INFO] [stderr] Downloaded hermit-abi v0.1.18 [INFO] [stderr] Downloaded mio-extras v2.0.6 [INFO] [stderr] Downloaded memoffset v0.5.6 [INFO] [stderr] Downloaded either v1.6.1 [INFO] [stderr] Downloaded num_cpus v1.13.0 [INFO] [stderr] Downloaded glium v0.28.0 [INFO] [stderr] Downloaded ndk-glue v0.2.1 [INFO] [stderr] Downloaded proc-macro2 v1.0.24 [INFO] [stderr] Downloaded ppv-lite86 v0.2.10 [INFO] [stderr] Downloaded core-graphics-types v0.1.1 [INFO] [stderr] Downloaded parking_lot_core v0.8.3 [INFO] [stderr] Downloaded version_check v0.9.2 [INFO] [stderr] Downloaded crossbeam-deque v0.8.0 [INFO] [stderr] Downloaded raw-window-handle v0.3.3 [INFO] [stderr] Downloaded owned_ttf_parser v0.6.0 [INFO] [stderr] Downloaded rusttype v0.9.2 [INFO] [stderr] Downloaded calloop v0.6.5 [INFO] [stderr] Downloaded log v0.4.14 [INFO] [stderr] Downloaded walkdir v2.3.1 [INFO] [stderr] Downloaded rusttype v0.8.3 [INFO] [stderr] Downloaded lock_api v0.4.2 [INFO] [stderr] Downloaded redox_syscall v0.2.5 [INFO] [stderr] Downloaded parking_lot v0.11.1 [INFO] [stderr] Downloaded approx v0.3.2 [INFO] [stderr] Downloaded stb_truetype v0.3.1 [INFO] [stderr] Downloaded wayland-scanner v0.23.6 [INFO] [stderr] Downloaded wayland-client v0.23.6 [INFO] [stderr] Downloaded copypasta v0.6.3 [INFO] [stderr] Downloaded serde_derive v1.0.123 [INFO] [stderr] Downloaded conrod_winit v0.71.0 [INFO] [stderr] Downloaded object v0.23.0 [INFO] [stderr] Downloaded bitflags v1.2.1 [INFO] [stderr] Downloaded wayland-commons v0.28.4 [INFO] [stderr] Downloaded xcursor v0.3.3 [INFO] [stderr] Downloaded wayland-cursor v0.28.4 [INFO] [stderr] Downloaded wayland-commons v0.23.6 [INFO] [stderr] Downloaded memmap2 v0.1.0 [INFO] [stderr] Downloaded once_cell v1.6.0 [INFO] [stderr] Downloaded crossbeam-deque v0.7.3 [INFO] [stderr] Downloaded crossbeam-utils v0.8.2 [INFO] [stderr] Downloaded memmap v0.7.0 [INFO] [stderr] Downloaded smithay-clipboard v0.4.0 [INFO] [stderr] Downloaded x11-clipboard v0.5.1 [INFO] [stderr] Downloaded addr2line v0.14.1 [INFO] [stderr] Downloaded downcast-rs v1.2.0 [INFO] [stderr] Downloaded crossbeam-epoch v0.8.2 [INFO] [stderr] Downloaded linked-hash-map v0.5.4 [INFO] [stderr] Downloaded ordered-float v1.1.1 [INFO] [stderr] Downloaded line_drawing v0.7.0 [INFO] [stderr] Downloaded wayland-sys v0.23.6 [INFO] [stderr] Downloaded piston-float v1.0.0 [INFO] [stderr] Downloaded pistoncore-input v1.0.0 [INFO] [stderr] Downloaded find_folder v0.3.0 [INFO] [stderr] Downloaded miniz_oxide v0.4.3 [INFO] [stderr] Downloaded backtrace v0.3.56 [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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 01c2014aaaa66bb4d0d815d9142d4ad53c5bbdd374ac611bfe3b15685a4a33ae [INFO] running `Command { std: "docker" "start" "-a" "01c2014aaaa66bb4d0d815d9142d4ad53c5bbdd374ac611bfe3b15685a4a33ae", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "01c2014aaaa66bb4d0d815d9142d4ad53c5bbdd374ac611bfe3b15685a4a33ae", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "01c2014aaaa66bb4d0d815d9142d4ad53c5bbdd374ac611bfe3b15685a4a33ae", kill_on_drop: false }` [INFO] [stdout] 01c2014aaaa66bb4d0d815d9142d4ad53c5bbdd374ac611bfe3b15685a4a33ae [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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 2270c98ccf545a8aa7af15b9e4a75eb1bf89938e639ab3659dc61a3b7b4cc344 [INFO] running `Command { std: "docker" "start" "-a" "2270c98ccf545a8aa7af15b9e4a75eb1bf89938e639ab3659dc61a3b7b4cc344", kill_on_drop: false }` [INFO] [stderr] Compiling autocfg v1.0.1 [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 scopeguard v1.1.0 [INFO] [stderr] Compiling unicode-xid v0.2.1 [INFO] [stderr] Compiling libloading v0.6.7 [INFO] [stderr] Compiling proc-macro2 v0.4.30 [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 byteorder v1.4.2 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling smallvec v1.6.1 [INFO] [stderr] Compiling xdg v2.2.0 [INFO] [stderr] Compiling once_cell v1.6.0 [INFO] [stderr] Compiling dlib v0.4.2 [INFO] [stderr] Compiling walkdir v2.3.1 [INFO] [stderr] Compiling nix v0.14.1 [INFO] [stderr] Compiling version_check v0.9.2 [INFO] [stderr] Compiling memchr v2.3.4 [INFO] [stderr] Compiling scoped-tls v1.0.0 [INFO] [stderr] Compiling void v1.0.2 [INFO] [stderr] Compiling stb_truetype v0.3.1 [INFO] [stderr] Compiling wayland-sys v0.28.4 [INFO] [stderr] Compiling wayland-sys v0.23.6 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling memoffset v0.5.6 [INFO] [stderr] Compiling crossbeam-utils v0.7.2 [INFO] [stderr] Compiling crossbeam-epoch v0.8.2 [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 memoffset v0.6.1 [INFO] [stderr] Compiling linked-hash-map v0.5.4 [INFO] [stderr] Compiling quote v0.6.13 [INFO] [stderr] Compiling quote v1.0.9 [INFO] [stderr] Compiling ttf-parser v0.6.2 [INFO] [stderr] Compiling nix v0.18.0 [INFO] [stderr] Compiling rustc-hash v1.1.0 [INFO] [stderr] Compiling num-bigint v0.2.6 [INFO] [stderr] Compiling x11-dl v2.18.5 [INFO] [stderr] Compiling instant v0.1.9 [INFO] [stderr] Compiling syn v1.0.60 [INFO] [stderr] Compiling ab_glyph_rasterizer v0.1.4 [INFO] [stderr] Compiling num-iter v0.1.42 [INFO] [stderr] Compiling num-rational v0.2.4 [INFO] [stderr] Compiling slab v0.4.2 [INFO] [stderr] Compiling rayon-core v1.9.0 [INFO] [stderr] Compiling num-complex v0.2.4 [INFO] [stderr] Compiling wayland-scanner v0.28.4 [INFO] [stderr] Compiling gl_generator v0.14.0 [INFO] [stderr] Compiling wayland-scanner v0.23.6 [INFO] [stderr] Compiling miniz_oxide v0.4.3 [INFO] [stderr] Compiling lock_api v0.4.2 [INFO] [stderr] Compiling lazycell v1.3.0 [INFO] [stderr] Compiling getrandom v0.1.16 [INFO] [stderr] Compiling crossbeam-deque v0.7.3 [INFO] [stderr] Compiling serde v1.0.123 [INFO] [stderr] Compiling serde_derive v1.0.123 [INFO] [stderr] Compiling crossbeam-epoch v0.9.2 [INFO] [stderr] Compiling num_cpus v1.13.0 [INFO] [stderr] Compiling nix v0.20.0 [INFO] [stderr] Compiling iovec v0.1.4 [INFO] [stderr] Compiling net2 v0.2.37 [INFO] [stderr] Compiling memmap2 v0.1.0 [INFO] [stderr] Compiling xcb v0.9.0 [INFO] [stderr] Compiling memmap v0.7.0 [INFO] [stderr] Compiling mio v0.6.23 [INFO] [stderr] Compiling parking_lot_core v0.8.3 [INFO] [stderr] Compiling syn v0.15.44 [INFO] [stderr] Compiling winit v0.23.0 [INFO] [stderr] Compiling glutin_egl_sys v0.1.5 [INFO] [stderr] Compiling glutin_glx_sys v0.1.7 [INFO] [stderr] Compiling parking_lot v0.11.1 [INFO] [stderr] Compiling approx v0.3.2 [INFO] [stderr] Compiling ordered-float v1.1.1 [INFO] [stderr] Compiling rusttype v0.8.3 [INFO] [stderr] Compiling owned_ttf_parser v0.6.0 [INFO] [stderr] Compiling rusttype v0.9.2 [INFO] [stderr] Compiling line_drawing v0.7.0 [INFO] [stderr] Compiling rusttype v0.7.9 [INFO] [stderr] Compiling andrew v0.3.1 [INFO] [stderr] Compiling andrew v0.2.1 [INFO] [stderr] Compiling wayland-client v0.28.4 [INFO] [stderr] Compiling wayland-protocols v0.28.4 [INFO] [stderr] Compiling mio-extras v2.0.6 [INFO] [stderr] Compiling wayland-client v0.23.6 [INFO] [stderr] Compiling wayland-protocols v0.23.6 [INFO] [stderr] Compiling crossbeam-deque v0.8.0 [INFO] [stderr] Compiling raw-window-handle v0.3.3 [INFO] [stderr] Compiling shared_library v0.1.9 [INFO] [stderr] Compiling crossbeam-channel v0.5.0 [INFO] [stderr] Compiling xcursor v0.3.3 [INFO] [stderr] Compiling rayon v1.5.0 [INFO] [stderr] Compiling fixedbitset v0.1.9 [INFO] [stderr] Compiling percent-encoding v2.1.0 [INFO] [stderr] Compiling adler32 v1.2.0 [INFO] [stderr] Compiling gimli v0.23.0 [INFO] [stderr] Compiling piston-float v1.0.0 [INFO] [stderr] Compiling num-derive v0.2.5 [INFO] [stderr] Compiling crc32fast v1.2.1 [INFO] [stderr] Compiling adler v0.2.3 [INFO] [stderr] Compiling piston-viewport v1.0.0 [INFO] [stderr] Compiling petgraph v0.4.13 [INFO] [stderr] Compiling osmesa-sys v0.1.2 [INFO] [stderr] Compiling glium v0.28.0 [INFO] [stderr] Compiling wayland-commons v0.23.6 [INFO] [stderr] Compiling calloop v0.6.5 [INFO] [stderr] Compiling rustc-demangle v0.1.18 [INFO] [stderr] Compiling either v1.6.1 [INFO] [stderr] Compiling lzw v0.10.0 [INFO] [stderr] Compiling object v0.23.0 [INFO] [stderr] Compiling daggy v0.5.0 [INFO] [stderr] Compiling num v0.2.1 [INFO] [stderr] Compiling rand_core v0.5.1 [INFO] [stderr] Compiling wayland-commons v0.28.4 [INFO] [stderr] Compiling inflate v0.4.5 [INFO] [stderr] Compiling deflate v0.7.20 [INFO] [stderr] Compiling takeable-option v0.5.0 [INFO] [stderr] Compiling ppv-lite86 v0.2.10 [INFO] [stderr] Compiling addr2line v0.14.1 [INFO] [stderr] Compiling png v0.15.3 [INFO] [stderr] Compiling rand_chacha v0.2.2 [INFO] [stderr] Compiling gif v0.10.3 [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 find_folder v0.3.0 [INFO] [stderr] Compiling jpeg-decoder v0.1.22 [INFO] [stderr] Compiling conrod_derive v0.71.0 [INFO] [stderr] Compiling tiff v0.3.1 [INFO] [stderr] Compiling wayland-cursor v0.28.4 [INFO] [stderr] Compiling wayland-egl v0.28.4 [INFO] [stderr] Compiling image v0.22.5 [INFO] [stderr] Compiling backtrace v0.3.56 [INFO] [stderr] Compiling pistoncore-input v1.0.0 [INFO] [stderr] Compiling x11-clipboard v0.5.1 [INFO] [stderr] Compiling smithay-client-toolkit v0.6.6 [INFO] [stderr] Compiling smithay-clipboard v0.4.0 [INFO] [stderr] Compiling copypasta v0.6.3 [INFO] [stderr] Compiling conrod_core v0.71.0 [INFO] [stderr] Compiling smithay-client-toolkit v0.12.2 [INFO] [stderr] Compiling glutin v0.25.1 [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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(nonstandard_style)]`) 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 1m 55s [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" "2270c98ccf545a8aa7af15b9e4a75eb1bf89938e639ab3659dc61a3b7b4cc344", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2270c98ccf545a8aa7af15b9e4a75eb1bf89938e639ab3659dc61a3b7b4cc344", kill_on_drop: false }` [INFO] [stdout] 2270c98ccf545a8aa7af15b9e4a75eb1bf89938e639ab3659dc61a3b7b4cc344 [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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] c1ac402ee88953eef7b0b0b8c81064b7c57f7d8183c65a3ce47bbcf6593a9cad [INFO] running `Command { std: "docker" "start" "-a" "c1ac402ee88953eef7b0b0b8c81064b7c57f7d8183c65a3ce47bbcf6593a9cad", 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(nonstandard_style)]`) 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.29s [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" "c1ac402ee88953eef7b0b0b8c81064b7c57f7d8183c65a3ce47bbcf6593a9cad", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c1ac402ee88953eef7b0b0b8c81064b7c57f7d8183c65a3ce47bbcf6593a9cad", kill_on_drop: false }` [INFO] [stdout] c1ac402ee88953eef7b0b0b8c81064b7c57f7d8183c65a3ce47bbcf6593a9cad