[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] testing matttilton/Othello-rs against try#8de4c7234dd9b97c9d76b58671343fdbbc9a433e+target=x86_64-unknown-linux-musl for musl_upgrade_1_2_5_with_libc_patch_0 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmatttilton%2FOthello-rs" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-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-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/matttilton/Othello-rs on toolchain 8de4c7234dd9b97c9d76b58671343fdbbc9a433e [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "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" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded wayland-sys v0.28.4 [INFO] [stderr] Downloaded generator v0.6.24 [INFO] [stderr] Downloaded conrod_winit v0.71.0 [INFO] [stderr] Downloaded wayland-sys v0.23.6 [INFO] [stderr] Downloaded rustversion v1.0.4 [INFO] [stderr] Downloaded conrod_derive v0.71.0 [INFO] [stderr] Downloaded wayland-commons v0.23.6 [INFO] [stderr] Downloaded daggy v0.5.0 [INFO] [stderr] Downloaded conrod_glium v0.71.0 [INFO] [stderr] Downloaded wayland-protocols v0.23.6 [INFO] [stderr] Downloaded smithay-client-toolkit v0.6.6 [INFO] [stderr] Downloaded wayland-protocols v0.28.4 [INFO] [stderr] Downloaded wayland-client v0.23.6 [INFO] [stderr] Downloaded conrod_core v0.71.0 [INFO] [stderr] Downloaded wayland-client v0.28.4 [INFO] [stderr] Downloaded xcb v0.9.0 [INFO] [stderr] Downloaded once_cell v1.6.0 [INFO] [stderr] Downloaded smithay-clipboard v0.4.0 [INFO] [stderr] Downloaded wayland-scanner v0.23.6 [INFO] [stderr] Downloaded x11-clipboard v0.5.1 [INFO] [stderr] Downloaded copypasta v0.6.3 [INFO] [stderr] Downloaded wayland-egl v0.28.4 [INFO] [stderr] Downloaded wayland-commons v0.28.4 [INFO] [stderr] Downloaded wayland-scanner v0.28.4 [INFO] [stderr] Downloaded wayland-cursor v0.28.4 [INFO] [stderr] Downloaded glium v0.28.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 7ffddf6324a09e453eaac9a358084b24158e309ffb7f7840e15a0e33b3f32db6 [INFO] running `Command { std: "docker" "start" "-a" "7ffddf6324a09e453eaac9a358084b24158e309ffb7f7840e15a0e33b3f32db6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "7ffddf6324a09e453eaac9a358084b24158e309ffb7f7840e15a0e33b3f32db6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7ffddf6324a09e453eaac9a358084b24158e309ffb7f7840e15a0e33b3f32db6", kill_on_drop: false }` [INFO] [stdout] 7ffddf6324a09e453eaac9a358084b24158e309ffb7f7840e15a0e33b3f32db6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "build" "--frozen" "--message-format=json" "--target" "x86_64-unknown-linux-musl", kill_on_drop: false }` [INFO] [stdout] 3f60f175b7ea111c8649efcf077ebb3bc964ef3579a7bad0a663bdb349a7f04b [INFO] running `Command { std: "docker" "start" "-a" "3f60f175b7ea111c8649efcf077ebb3bc964ef3579a7bad0a663bdb349a7f04b", kill_on_drop: false }` [INFO] [stderr] Compiling autocfg v1.0.1 [INFO] [stderr] Compiling libc v0.2.86 [INFO] [stderr] Compiling xml-rs v0.8.3 [INFO] [stderr] Compiling proc-macro2 v1.0.24 [INFO] [stderr] Compiling pkg-config v0.3.19 [INFO] [stderr] Compiling libloading v0.6.7 [INFO] [stderr] Compiling log v0.4.14 [INFO] [stderr] Compiling byteorder v1.4.2 [INFO] [stderr] Compiling cfg-if v1.0.0 [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 nix v0.14.1 [INFO] [stderr] Compiling once_cell v1.6.0 [INFO] [stderr] Compiling version_check v0.9.2 [INFO] [stderr] Compiling memchr v2.3.4 [INFO] [stderr] Compiling dlib v0.4.2 [INFO] [stderr] Compiling walkdir v2.3.1 [INFO] [stderr] Compiling scoped-tls v1.0.0 [INFO] [stderr] Compiling void v1.0.2 [INFO] [stderr] Compiling wayland-sys v0.23.6 [INFO] [stderr] Compiling ttf-parser v0.6.2 [INFO] [stderr] Compiling nix v0.18.0 [INFO] [stderr] Compiling stb_truetype v0.3.1 [INFO] [stderr] Compiling linked-hash-map v0.5.4 [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 crossbeam-utils v0.8.2 [INFO] [stderr] Compiling gl_generator v0.14.0 [INFO] [stderr] Compiling wayland-scanner v0.23.6 [INFO] [stderr] Compiling num-integer v0.1.44 [INFO] [stderr] Compiling memoffset v0.6.1 [INFO] [stderr] Compiling num-bigint v0.2.6 [INFO] [stderr] Compiling wayland-sys v0.28.4 [INFO] [stderr] Compiling x11-dl v2.18.5 [INFO] [stderr] Compiling quote v1.0.9 [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 wayland-scanner v0.28.4 [INFO] [stderr] Compiling num_cpus v1.13.0 [INFO] [stderr] Compiling nix v0.20.0 [INFO] [stderr] Compiling owned_ttf_parser v0.6.0 [INFO] [stderr] Compiling approx v0.3.2 [INFO] [stderr] Compiling ordered-float v1.1.1 [INFO] [stderr] Compiling rusttype v0.9.2 [INFO] [stderr] Compiling line_drawing v0.7.0 [INFO] [stderr] Compiling crossbeam-deque v0.7.3 [INFO] [stderr] Compiling iovec v0.1.4 [INFO] [stderr] Compiling net2 v0.2.37 [INFO] [stderr] Compiling rusttype v0.8.3 [INFO] [stderr] Compiling num-rational v0.2.4 [INFO] [stderr] Compiling num-iter v0.1.42 [INFO] [stderr] Compiling rayon-core v1.9.0 [INFO] [stderr] Compiling xcb v0.9.0 [INFO] [stderr] Compiling andrew v0.3.1 [INFO] [stderr] Compiling mio v0.6.23 [INFO] [stderr] Compiling crossbeam-epoch v0.9.2 [INFO] [stderr] Compiling glutin_glx_sys v0.1.7 [INFO] [stderr] Compiling glutin_egl_sys v0.1.5 [INFO] [stderr] Compiling rusttype v0.7.9 [INFO] [stderr] Compiling andrew v0.2.1 [INFO] [stderr] Compiling xcursor v0.3.3 [INFO] [stderr] Compiling memmap2 v0.1.0 [INFO] [stderr] Compiling wayland-client v0.23.6 [INFO] [stderr] Compiling wayland-client v0.28.4 [INFO] [stderr] Compiling wayland-protocols v0.28.4 [INFO] [stderr] Compiling wayland-protocols v0.23.6 [INFO] [stderr] Compiling parking_lot_core v0.8.3 [INFO] [stderr] Compiling memmap v0.7.0 [INFO] [stderr] Compiling miniz_oxide v0.4.3 [INFO] [stderr] Compiling num-complex v0.2.4 [INFO] [stderr] Compiling lock_api v0.4.2 [INFO] [stderr] Compiling serde_derive v1.0.123 [INFO] [stderr] Compiling syn v0.15.44 [INFO] [stderr] Compiling serde v1.0.123 [INFO] [stderr] Compiling lazycell v1.3.0 [INFO] [stderr] Compiling winit v0.23.0 [INFO] [stderr] Compiling wayland-commons v0.23.6 [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 gimli v0.23.0 [INFO] [stderr] Compiling crc32fast v1.2.1 [INFO] [stderr] Compiling adler32 v1.2.0 [INFO] [stderr] Compiling num-derive v0.2.5 [INFO] [stderr] Compiling fixedbitset v0.1.9 [INFO] [stderr] Compiling percent-encoding v2.1.0 [INFO] [stderr] Compiling piston-float v1.0.0 [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 wayland-commons v0.28.4 [INFO] [stderr] Compiling calloop v0.6.5 [INFO] [stderr] Compiling getrandom v0.1.16 [INFO] [stderr] Compiling glium v0.28.0 [INFO] [stderr] Compiling object v0.23.0 [INFO] [stderr] Compiling either v1.6.1 [INFO] [stderr] Compiling lzw v0.10.0 [INFO] [stderr] Compiling rustc-demangle v0.1.18 [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 deflate v0.7.20 [INFO] [stderr] Compiling addr2line v0.14.1 [INFO] [stderr] Compiling inflate v0.4.5 [INFO] [stderr] Compiling ppv-lite86 v0.2.10 [INFO] [stderr] Compiling wayland-cursor v0.28.4 [INFO] [stderr] Compiling wayland-egl v0.28.4 [INFO] [stderr] Compiling takeable-option v0.5.0 [INFO] [stderr] Compiling color_quant v1.1.0 [INFO] [stderr] Compiling rand_chacha v0.2.2 [INFO] [stderr] Compiling png v0.15.3 [INFO] [stderr] Compiling scoped_threadpool v0.1.9 [INFO] [stderr] Compiling gif v0.10.3 [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 backtrace v0.3.56 [INFO] [stderr] Compiling conrod_derive v0.71.0 [INFO] [stderr] Compiling tiff v0.3.1 [INFO] [stderr] Compiling image v0.22.5 [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 smithay-client-toolkit v0.12.2 [INFO] [stderr] Compiling conrod_core v0.71.0 [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)]` 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 43.37s [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" "3f60f175b7ea111c8649efcf077ebb3bc964ef3579a7bad0a663bdb349a7f04b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3f60f175b7ea111c8649efcf077ebb3bc964ef3579a7bad0a663bdb349a7f04b", kill_on_drop: false }` [INFO] [stdout] 3f60f175b7ea111c8649efcf077ebb3bc964ef3579a7bad0a663bdb349a7f04b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "test" "--frozen" "--no-run" "--message-format=json" "--target" "x86_64-unknown-linux-musl", kill_on_drop: false }` [INFO] [stdout] fa85426651db0d7cb5890b3e018ea75fe074bf8269c0d54c12ff9d831475bd37 [INFO] running `Command { std: "docker" "start" "-a" "fa85426651db0d7cb5890b3e018ea75fe074bf8269c0d54c12ff9d831475bd37", 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.97s [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" "fa85426651db0d7cb5890b3e018ea75fe074bf8269c0d54c12ff9d831475bd37", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fa85426651db0d7cb5890b3e018ea75fe074bf8269c0d54c12ff9d831475bd37", kill_on_drop: false }` [INFO] [stdout] fa85426651db0d7cb5890b3e018ea75fe074bf8269c0d54c12ff9d831475bd37 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "test" "--frozen" "--target" "x86_64-unknown-linux-musl", kill_on_drop: false }` [INFO] [stdout] 2d52eb210cfa6e192b6f82b77d79ae0a10798a50b39007c781974d023ce08b6e [INFO] running `Command { std: "docker" "start" "-a" "2d52eb210cfa6e192b6f82b77d79ae0a10798a50b39007c781974d023ce08b6e", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `fnv::FnvHashMap` [INFO] [stderr] --> src/support/mod.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use fnv::FnvHashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `Sizeable` [INFO] [stderr] --> src/gui/mod.rs:2:63 [INFO] [stderr] | [INFO] [stderr] 2 | use conrod_core::{widget, Colorable, Labelable, Positionable, Sizeable, Widget}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::iter::once` [INFO] [stderr] --> src/gui/mod.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::iter::once; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Borderable`, `Labelable`, and `Point` [INFO] [stderr] --> src/gui/board.rs:2:42 [INFO] [stderr] | [INFO] [stderr] 2 | self, widget, widget_ids, Colorable, Labelable, Point, Positionable, Widget, Borderable, {position::Relative} [INFO] [stderr] | ^^^^^^^^^ ^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::iter::once` [INFO] [stderr] --> src/gui/board.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::iter::once; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Labelable` and `Point` [INFO] [stderr] --> src/gui/tile.rs:2:42 [INFO] [stderr] | [INFO] [stderr] 2 | self, widget, widget_ids, Colorable, Labelable, Point, Positionable, Widget, [INFO] [stderr] | ^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::engine::enums` [INFO] [stderr] --> src/engine/AI/AI.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use crate::engine::enums; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::engine::AI::AI` [INFO] [stderr] --> src/engine/AI/tree.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use crate::engine::AI::AI; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> src/engine/AI/tree.rs:114:100 [INFO] [stderr] | [INFO] [stderr] 114 | let mut value = heuristics::main_heuristic(&new_board_state, enums::Player::White);; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(redundant_semicolons)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `rayon::prelude` [INFO] [stderr] --> src/engine/AI/tree.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use rayon::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `id` [INFO] [stderr] --> src/gui/board.rs:156:13 [INFO] [stderr] | [INFO] [stderr] 156 | id, [INFO] [stderr] | ^^- [INFO] [stderr] | | [INFO] [stderr] | help: try removing the field [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rect` [INFO] [stderr] --> src/gui/board.rs:158:13 [INFO] [stderr] | [INFO] [stderr] 158 | rect, [INFO] [stderr] | ^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try removing the field [INFO] [stderr] [INFO] [stderr] warning: unused variable: `style` [INFO] [stderr] --> src/gui/board.rs:160:13 [INFO] [stderr] | [INFO] [stderr] 160 | style, [INFO] [stderr] | ^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try removing the field [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rect` [INFO] [stderr] --> src/gui/tile.rs:77:13 [INFO] [stderr] | [INFO] [stderr] 77 | rect, [INFO] [stderr] | ^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try removing the field [INFO] [stderr] [INFO] [stderr] warning: unused variable: `style` [INFO] [stderr] --> src/gui/tile.rs:79:13 [INFO] [stderr] | [INFO] [stderr] 79 | style, [INFO] [stderr] | ^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try removing the field [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/engine/AI/tree.rs:70:21 [INFO] [stderr] | [INFO] [stderr] 70 | let mut value = heuristics::main_heuristic(&new_board_state, enums::Player::White); [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/engine/AI/tree.rs:114:21 [INFO] [stderr] | [INFO] [stderr] 114 | let mut value = heuristics::main_heuristic(&new_board_state, enums::Player::White);; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/engine/AI/tree.rs:115:21 [INFO] [stderr] | [INFO] [stderr] 115 | let mut node = Node {board_state: new_board_state, value, position: valid_moves[position]}; [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `difficulty` [INFO] [stderr] --> src/tui/mod.rs:16:10 [INFO] [stderr] | [INFO] [stderr] 16 | let mut difficulty = 0; [INFO] [stderr] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_difficulty` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `r` [INFO] [stderr] --> src/tui/mod.rs:31:8 [INFO] [stderr] | [INFO] [stderr] 31 | Err(r) => 0 [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_r` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `r` [INFO] [stderr] --> src/tui/mod.rs:53:9 [INFO] [stderr] | [INFO] [stderr] 53 | Err(r) => 0 [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_r` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `r` [INFO] [stderr] --> src/tui/mod.rs:74:8 [INFO] [stderr] | [INFO] [stderr] 74 | Err(r) => 0 [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_r` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `aiplayer` [INFO] [stderr] --> src/tui/mod.rs:83:7 [INFO] [stderr] | [INFO] [stderr] 83 | let aiplayer = match humanplayer { [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_aiplayer` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/tui/mod.rs:122:10 [INFO] [stderr] | [INFO] [stderr] 122 | Err(e) => 0 as u8 [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/tui/mod.rs:147:9 [INFO] [stderr] | [INFO] [stderr] 147 | Err(e) => 0 as u8 [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tui/mod.rs:16:6 [INFO] [stderr] | [INFO] [stderr] 16 | let mut difficulty = 0; [INFO] [stderr] | ----^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rust_logo` [INFO] [stderr] --> src/main.rs:79:9 [INFO] [stderr] | [INFO] [stderr] 79 | rust_logo: conrod_core::image::Id, [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rust_logo` [INFO] [stderr] [INFO] [stderr] warning: field `eventType` is never read [INFO] [stderr] --> src/gui/board.rs:134:5 [INFO] [stderr] | [INFO] [stderr] 133 | pub struct Event { [INFO] [stderr] | ----- field in this struct [INFO] [stderr] 134 | eventType: EventType, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Event` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: field `enabled` is never read [INFO] [stderr] --> src/gui/tile.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 8 | pub struct Tile { [INFO] [stderr] | ---- field in this struct [INFO] [stderr] ... [INFO] [stderr] 12 | enabled: bool, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `enabled` is never used [INFO] [stderr] --> src/gui/tile.rs:50:12 [INFO] [stderr] | [INFO] [stderr] 34 | impl<'a> Tile { [INFO] [stderr] | ------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 50 | pub fn enabled(mut self, flag: bool) -> Self { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `print_bitboard` is never used [INFO] [stderr] --> src/engine/board.rs:343:8 [INFO] [stderr] | [INFO] [stderr] 343 | pub fn print_bitboard(board: u64) { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `PositionEvaluation` is never constructed [INFO] [stderr] --> src/engine/AI/tree.rs:38:12 [INFO] [stderr] | [INFO] [stderr] 38 | pub struct PositionEvaluation { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `number_of_set_bits` is never used [INFO] [stderr] --> src/engine/AI/tree.rs:225:8 [INFO] [stderr] | [INFO] [stderr] 225 | pub fn number_of_set_bits(i: u64) -> u64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `tui` is never used [INFO] [stderr] --> src/tui/mod.rs:9:8 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn tui() { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: function `convert_letter_to_number` is never used [INFO] [stderr] --> src/tui/mod.rs:170:4 [INFO] [stderr] | [INFO] [stderr] 170 | fn convert_letter_to_number(letter: &str) -> i8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `AI_vs_AI` is never used [INFO] [stderr] --> src/tui/mod.rs:192:8 [INFO] [stderr] | [INFO] [stderr] 192 | pub fn AI_vs_AI() { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: for loop over an `Option`. This is more readably written as an `if let` statement [INFO] [stderr] --> src/gui/mod.rs:47:18 [INFO] [stderr] | [INFO] [stderr] 47 | for event in board::Board::new(&app.board_state) [INFO] [stderr] | __________________^ [INFO] [stderr] 48 | | .top_left_of(ids.canvas) [INFO] [stderr] 49 | | .set(ids.board, ui) { [INFO] [stderr] | |___________________________^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(for_loops_over_fallibles)]` on by default [INFO] [stderr] help: to check pattern in a loop use `while let` [INFO] [stderr] | [INFO] [stderr] 47 - for event in board::Board::new(&app.board_state) [INFO] [stderr] 47 + while let Some(event) = board::Board::new(&app.board_state) [INFO] [stderr] | [INFO] [stderr] help: consider using `if let` to clear intent [INFO] [stderr] | [INFO] [stderr] 47 - for event in board::Board::new(&app.board_state) [INFO] [stderr] 47 + if let Some(event) = board::Board::new(&app.board_state) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stderr] --> src/gui/board.rs:9:10 [INFO] [stderr] | [INFO] [stderr] 9 | #[derive(WidgetCommon)] [INFO] [stderr] | ^----------- [INFO] [stderr] | | [INFO] [stderr] | `Common` is not local [INFO] [stderr] | move the `impl` block outside of this constant `_IMPL_WIDGET_COMMON_FOR_Board` [INFO] [stderr] 10 | pub struct Board<'a> { [INFO] [stderr] | ----- `Board` is not local [INFO] [stderr] | [INFO] [stderr] = note: the derive macro `WidgetCommon` defines the non-local `impl`, and may need to be changed [INFO] [stderr] = 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] [stderr] = 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] [stderr] = 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] [stderr] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stderr] = note: this warning originates in the derive macro `WidgetCommon` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stderr] --> src/gui/board.rs:17:50 [INFO] [stderr] | [INFO] [stderr] 17 | #[derive(Copy, Clone, Debug, Default, PartialEq, WidgetStyle)] [INFO] [stderr] | ^---------- [INFO] [stderr] | | [INFO] [stderr] | move the `impl` block outside of this constant `_IMPL_WIDGET_STYLE_FOR_Style` [INFO] [stderr] 18 | pub struct Style { [INFO] [stderr] | ----- `Style` is not local [INFO] [stderr] | [INFO] [stderr] = note: the derive macro `WidgetStyle` defines the non-local `impl`, and may need to be changed [INFO] [stderr] = 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] [stderr] = 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] [stderr] = 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] [stderr] = note: this warning originates in the derive macro `WidgetStyle` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: structure field `eventType` should have a snake case name [INFO] [stderr] --> src/gui/board.rs:134:5 [INFO] [stderr] | [INFO] [stderr] 134 | eventType: EventType, [INFO] [stderr] | ^^^^^^^^^ help: convert the identifier to snake case: `event_type` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_snake_case)]` on by default [INFO] [stderr] [INFO] [stderr] warning: for loop over an `Option`. This is more readably written as an `if let` statement [INFO] [stderr] --> src/gui/board.rs:204:26 [INFO] [stderr] | [INFO] [stderr] 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] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: to check pattern in a loop use `while let` [INFO] [stderr] | [INFO] [stderr] 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] [stderr] 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] [stderr] | [INFO] [stderr] help: consider using `if let` to clear intent [INFO] [stderr] | [INFO] [stderr] 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] [stderr] 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] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stderr] --> src/gui/tile.rs:7:10 [INFO] [stderr] | [INFO] [stderr] 7 | #[derive(WidgetCommon)] [INFO] [stderr] | ^----------- [INFO] [stderr] | | [INFO] [stderr] | `Common` is not local [INFO] [stderr] | move the `impl` block outside of this constant `_IMPL_WIDGET_COMMON_FOR_Tile` [INFO] [stderr] 8 | pub struct Tile { [INFO] [stderr] | ---- `Tile` is not local [INFO] [stderr] | [INFO] [stderr] = note: the derive macro `WidgetCommon` defines the non-local `impl`, and may need to be changed [INFO] [stderr] = 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] [stderr] = 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] [stderr] = 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] [stderr] = note: this warning originates in the derive macro `WidgetCommon` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stderr] --> src/gui/tile.rs:17:50 [INFO] [stderr] | [INFO] [stderr] 17 | #[derive(Copy, Clone, Debug, Default, PartialEq, WidgetStyle)] [INFO] [stderr] | ^---------- [INFO] [stderr] | | [INFO] [stderr] | move the `impl` block outside of this constant `_IMPL_WIDGET_STYLE_FOR_Style` [INFO] [stderr] 18 | pub struct Style { [INFO] [stderr] | ----- `Style` is not local [INFO] [stderr] | [INFO] [stderr] = note: the derive macro `WidgetStyle` defines the non-local `impl`, and may need to be changed [INFO] [stderr] = 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] [stderr] = 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] [stderr] = 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] [stderr] = note: this warning originates in the derive macro `WidgetStyle` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: module `AI` should have a snake case name [INFO] [stderr] --> src/engine/mod.rs:3:9 [INFO] [stderr] | [INFO] [stderr] 3 | pub mod AI; [INFO] [stderr] | ^^ help: convert the identifier to snake case: `ai` [INFO] [stderr] [INFO] [stderr] warning: module `AI` should have a snake case name [INFO] [stderr] --> src/engine/AI/mod.rs:1:9 [INFO] [stderr] | [INFO] [stderr] 1 | pub mod AI; [INFO] [stderr] | ^^ help: convert the identifier to snake case: `ai` [INFO] [stderr] [INFO] [stderr] warning: variable `AI` should have a snake case name [INFO] [stderr] --> src/tui/mod.rs:15:10 [INFO] [stderr] | [INFO] [stderr] 15 | let mut AI = 0; [INFO] [stderr] | ^^ help: convert the identifier to snake case: `ai` [INFO] [stderr] [INFO] [stderr] warning: function `AI_vs_AI` should have a snake case name [INFO] [stderr] --> src/tui/mod.rs:192:8 [INFO] [stderr] | [INFO] [stderr] 192 | pub fn AI_vs_AI() { [INFO] [stderr] | ^^^^^^^^ help: convert the identifier to snake case: `ai_vs_ai` [INFO] [stderr] [INFO] [stderr] warning: `othello-gui` (bin "othello-gui" test) generated 47 warnings (run `cargo fix --bin "othello-gui" --tests` to apply 17 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.18s [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] [stderr] Running unittests src/main.rs (/opt/rustwide/target/x86_64-unknown-linux-musl/debug/deps/othello_gui-7d0b64a03e5efcf7) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test engine::board::tests::test_missing_valid_move_vertical ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "2d52eb210cfa6e192b6f82b77d79ae0a10798a50b39007c781974d023ce08b6e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2d52eb210cfa6e192b6f82b77d79ae0a10798a50b39007c781974d023ce08b6e", kill_on_drop: false }` [INFO] [stdout] 2d52eb210cfa6e192b6f82b77d79ae0a10798a50b39007c781974d023ce08b6e