[INFO] cloning repository https://github.com/hobo0xcc/othello
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/hobo0xcc/othello" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhobo0xcc%2Fothello", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhobo0xcc%2Fothello'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c25ce1c0e15d0fd1ee17ae9da10671c7939c63fd
[INFO] testing hobo0xcc/othello against 1.85.0 for beta-1.86-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhobo0xcc%2Fothello" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/hobo0xcc/othello on toolchain 1.85.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.85.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/hobo0xcc/othello
[INFO] finished tweaking git repo https://github.com/hobo0xcc/othello
[INFO] tweaked toml for git repo https://github.com/hobo0xcc/othello written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/hobo0xcc/othello 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" "+1.85.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wasm-timer v0.2.5
[INFO] [stderr]   Downloaded ab_glyph_rasterizer v0.1.4
[INFO] [stderr]   Downloaded num_enum_derive v0.5.4
[INFO] [stderr]   Downloaded ndk-glue v0.3.0
[INFO] [stderr]   Downloaded objc_id v0.1.1
[INFO] [stderr]   Downloaded takeable-option v0.5.0
[INFO] [stderr]   Downloaded lazy-bytes-cast v5.0.1
[INFO] [stderr]   Downloaded glutin_egl_sys v0.1.5
[INFO] [stderr]   Downloaded crossbeam v0.8.1
[INFO] [stderr]   Downloaded crossbeam-queue v0.3.2
[INFO] [stderr]   Downloaded mio-misc v1.2.1
[INFO] [stderr]   Downloaded clipboard-win v3.1.1
[INFO] [stderr]   Downloaded widestring v0.4.3
[INFO] [stderr]   Downloaded rusttype v0.9.2
[INFO] [stderr]   Downloaded backtrace v0.3.62
[INFO] [stderr]   Downloaded minimal-lexical v0.1.4
[INFO] [stderr]   Downloaded ttf-parser v0.6.2
[INFO] [stderr]   Downloaded smithay-client-toolkit v0.14.0
[INFO] [stderr]   Downloaded quick-xml v0.22.0
[INFO] [stderr]   Downloaded object v0.27.1
[INFO] [stderr]   Downloaded syn v1.0.80
[INFO] [stderr]   Downloaded ndk-sys v0.2.1
[INFO] [stderr]   Downloaded xcb v0.10.1
[INFO] [stderr]   Downloaded winit v0.25.0
[INFO] [stderr]   Downloaded nom v7.0.0
[INFO] [stderr]   Downloaded ttf-parser v0.12.3
[INFO] [stderr]   Downloaded libc v0.2.105
[INFO] [stderr]   Downloaded mio v0.7.14
[INFO] [stderr]   Downloaded glutin v0.27.0
[INFO] [stderr]   Downloaded cc v1.0.71
[INFO] [stderr]   Downloaded ron v0.7.0
[INFO] [stderr]   Downloaded futures v0.3.17
[INFO] [stderr]   Downloaded gimli v0.25.0
[INFO] [stderr]   Downloaded addr2line v0.16.0
[INFO] [stderr]   Downloaded epaint v0.15.0
[INFO] [stderr]   Downloaded rustc-demangle v0.1.21
[INFO] [stderr]   Downloaded glium v0.30.2
[INFO] [stderr]   Downloaded raw-window-handle v0.3.3
[INFO] [stderr]   Downloaded pkg-config v0.3.21
[INFO] [stderr]   Downloaded egui_web v0.15.0
[INFO] [stderr]   Downloaded egui v0.15.0
[INFO] [stderr]   Downloaded core-foundation v0.9.2
[INFO] [stderr]   Downloaded dirs-sys v0.3.6
[INFO] [stderr]   Downloaded libloading v0.7.1
[INFO] [stderr]   Downloaded egui_glium v0.15.0
[INFO] [stderr]   Downloaded ab_glyph v0.2.11
[INFO] [stderr]   Downloaded emath v0.15.0
[INFO] [stderr]   Downloaded proc-macro2 v1.0.30
[INFO] [stderr]   Downloaded objc-foundation v0.1.1
[INFO] [stderr]   Downloaded memmap2 v0.2.3
[INFO] [stderr]   Downloaded smithay-clipboard v0.6.4
[INFO] [stderr]   Downloaded copypasta v0.7.1
[INFO] [stderr]   Downloaded webbrowser v0.5.5
[INFO] [stderr]   Downloaded egui-winit v0.15.0
[INFO] [stderr]   Downloaded core-graphics v0.22.2
[INFO] [stderr]   Downloaded ndk v0.3.0
[INFO] [stderr]   Downloaded xdg v2.4.0
[INFO] [stderr]   Downloaded epi v0.15.0
[INFO] [stderr]   Downloaded owned_ttf_parser v0.6.0
[INFO] [stderr]   Downloaded eframe v0.15.0
[INFO] [stderr]   Downloaded num_enum v0.5.4
[INFO] [stderr]   Downloaded dirs v3.0.2
[INFO] [stderr]   Downloaded redox_users v0.4.0
[INFO] [stderr]   Downloaded owned_ttf_parser v0.12.1
[INFO] [stderr]   Downloaded smallvec v1.7.0
[INFO] [stderr]   Downloaded glutin_glx_sys v0.1.7
[INFO] [stderr]   Downloaded directories-next v2.0.0
[INFO] [stderr]   Downloaded nohash-hasher v0.2.0
[INFO] [stderr]   Downloaded futures-executor v0.3.17
[INFO] [stderr]   Downloaded futures-macro v0.3.17
[INFO] [stderr]   Downloaded x11-clipboard v0.5.3
[INFO] [stderr]   Downloaded memoffset v0.6.4
[INFO] [stderr]   Downloaded atomic_refcell v0.1.8
[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:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+1.85.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e91edff297cc93bc52b6c9ae8a8218148aeb6baa2c0e2d4a2c9e654c70ebaabd
[INFO] running `Command { std: "docker" "start" "-a" "e91edff297cc93bc52b6c9ae8a8218148aeb6baa2c0e2d4a2c9e654c70ebaabd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e91edff297cc93bc52b6c9ae8a8218148aeb6baa2c0e2d4a2c9e654c70ebaabd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e91edff297cc93bc52b6c9ae8a8218148aeb6baa2c0e2d4a2c9e654c70ebaabd", kill_on_drop: false }`
[INFO] [stdout] e91edff297cc93bc52b6c9ae8a8218148aeb6baa2c0e2d4a2c9e654c70ebaabd
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+1.85.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] bb0848bb72edceeb940222d0cbdd8e9cd2de154aad40470cd9bbafb8033070ad
[INFO] running `Command { std: "docker" "start" "-a" "bb0848bb72edceeb940222d0cbdd8e9cd2de154aad40470cd9bbafb8033070ad", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.105
[INFO] [stderr]    Compiling proc-macro2 v1.0.30
[INFO] [stderr]    Compiling xml-rs v0.8.4
[INFO] [stderr]    Compiling memchr v2.4.1
[INFO] [stderr]    Compiling pkg-config v0.3.21
[INFO] [stderr]    Compiling version_check v0.9.3
[INFO] [stderr]    Compiling once_cell v1.8.0
[INFO] [stderr]    Compiling smallvec v1.7.0
[INFO] [stderr]    Compiling libloading v0.7.1
[INFO] [stderr]    Compiling khronos_api v3.1.0
[INFO] [stderr]    Compiling log v0.4.14
[INFO] [stderr]    Compiling crossbeam-utils v0.8.5
[INFO] [stderr]    Compiling ab_glyph_rasterizer v0.1.4
[INFO] [stderr]    Compiling syn v1.0.80
[INFO] [stderr]    Compiling minimal-lexical v0.1.4
[INFO] [stderr]    Compiling memoffset v0.6.4
[INFO] [stderr]    Compiling dlib v0.5.0
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.5
[INFO] [stderr]    Compiling ttf-parser v0.6.2
[INFO] [stderr]    Compiling parking_lot_core v0.8.5
[INFO] [stderr]    Compiling crossbeam-queue v0.3.2
[INFO] [stderr]    Compiling nix v0.18.0
[INFO] [stderr]    Compiling instant v0.1.12
[INFO] [stderr]    Compiling nom v7.0.0
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling ahash v0.7.6
[INFO] [stderr]    Compiling lock_api v0.4.5
[INFO] [stderr]    Compiling libloading v0.6.7
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.78
[INFO] [stderr]    Compiling ttf-parser v0.12.3
[INFO] [stderr]    Compiling winit v0.25.0
[INFO] [stderr]    Compiling walkdir v2.3.2
[INFO] [stderr]    Compiling wayland-sys v0.28.6
[INFO] [stderr]    Compiling x11-dl v2.19.1
[INFO] [stderr]    Compiling futures-core v0.3.17
[INFO] [stderr]    Compiling quote v1.0.10
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]    Compiling crossbeam-channel v0.5.1
[INFO] [stderr]    Compiling quick-xml v0.22.0
[INFO] [stderr]    Compiling crossbeam-deque v0.8.1
[INFO] [stderr]    Compiling dlib v0.4.2
[INFO] [stderr]    Compiling wayland-scanner v0.28.6
[INFO] [stderr]    Compiling miniz_oxide v0.4.4
[INFO] [stderr]    Compiling futures-macro v0.3.17
[INFO] [stderr]    Compiling emath v0.15.0
[INFO] [stderr]    Compiling bumpalo v3.8.0
[INFO] [stderr]    Compiling futures-channel v0.3.17
[INFO] [stderr]    Compiling atomic_refcell v0.1.8
[INFO] [stderr]    Compiling proc-macro-nested v0.1.7
[INFO] [stderr]    Compiling nohash-hasher v0.2.0
[INFO] [stderr]    Compiling cc v1.0.71
[INFO] [stderr]    Compiling futures-task v0.3.17
[INFO] [stderr]    Compiling glutin_glx_sys v0.1.7
[INFO] [stderr]    Compiling glutin_egl_sys v0.1.5
[INFO] [stderr]    Compiling owned_ttf_parser v0.6.0
[INFO] [stderr]    Compiling futures-util v0.3.17
[INFO] [stderr]    Compiling gimli v0.25.0
[INFO] [stderr]    Compiling rusttype v0.9.2
[INFO] [stderr]    Compiling futures-sink v0.3.17
[INFO] [stderr]    Compiling adler v1.0.2
[INFO] [stderr]    Compiling glium v0.30.2
[INFO] [stderr]    Compiling object v0.27.1
[INFO] [stderr]    Compiling crossbeam v0.8.1
[INFO] [stderr]    Compiling rustc-demangle v0.1.21
[INFO] [stderr]    Compiling pin-project-lite v0.2.7
[INFO] [stderr]    Compiling wasm-bindgen v0.2.78
[INFO] [stderr]    Compiling futures-io v0.3.17
[INFO] [stderr]    Compiling webbrowser v0.5.5
[INFO] [stderr]    Compiling takeable-option v0.5.0
[INFO] [stderr]    Compiling nix v0.20.0
[INFO] [stderr]    Compiling getrandom v0.2.3
[INFO] [stderr]    Compiling dirs-sys v0.3.6
[INFO] [stderr]    Compiling dirs v3.0.2
[INFO] [stderr]    Compiling xdg v2.4.0
[INFO] [stderr]    Compiling wayland-client v0.28.6
[INFO] [stderr]    Compiling wayland-protocols v0.28.6
[INFO] [stderr]    Compiling owned_ttf_parser v0.12.1
[INFO] [stderr]    Compiling parking_lot v0.11.2
[INFO] [stderr]    Compiling xcb v0.10.1
[INFO] [stderr]    Compiling memmap2 v0.1.0
[INFO] [stderr]    Compiling mio v0.7.14
[INFO] [stderr]    Compiling andrew v0.3.1
[INFO] [stderr]    Compiling ab_glyph v0.2.11
[INFO] [stderr]    Compiling memmap2 v0.2.3
[INFO] [stderr]    Compiling raw-window-handle v0.3.3
[INFO] [stderr]    Compiling xcursor v0.3.4
[INFO] [stderr]    Compiling epaint v0.15.0
[INFO] [stderr]    Compiling backtrace v0.3.62
[INFO] [stderr]    Compiling mio-misc v1.2.1
[INFO] [stderr]    Compiling shared_library v0.1.9
[INFO] [stderr]    Compiling addr2line v0.16.0
[INFO] [stderr]    Compiling osmesa-sys v0.1.2
[INFO] [stderr]    Compiling rand_core v0.6.3
[INFO] [stderr]    Compiling egui v0.15.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.15
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.4
[INFO] [stderr]    Compiling calloop v0.6.5
[INFO] [stderr]    Compiling wayland-commons v0.28.6
[INFO] [stderr]    Compiling wasm-bindgen-backend v0.2.78
[INFO] [stderr]    Compiling epi v0.15.0
[INFO] [stderr]    Compiling x11-clipboard v0.5.3
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.78
[INFO] [stderr]    Compiling wayland-cursor v0.28.6
[INFO] [stderr]    Compiling wayland-egl v0.28.6
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.78
[INFO] [stderr]    Compiling js-sys v0.3.55
[INFO] [stderr]    Compiling futures-executor v0.3.17
[INFO] [stderr]    Compiling futures v0.3.17
[INFO] [stderr]    Compiling wasm-timer v0.2.5
[INFO] [stderr]    Compiling web-sys v0.3.55
[INFO] [stderr]    Compiling smithay-client-toolkit v0.12.3
[INFO] [stderr]    Compiling smithay-client-toolkit v0.14.0
[INFO] [stderr]    Compiling smithay-clipboard v0.6.4
[INFO] [stderr]    Compiling copypasta v0.7.1
[INFO] [stderr]    Compiling glutin v0.27.0
[INFO] [stderr]    Compiling egui-winit v0.15.0
[INFO] [stderr]    Compiling egui_glium v0.15.0
[INFO] [stderr]    Compiling eframe v0.15.0
[INFO] [stderr]    Compiling othello v0.0.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `prelude`
[INFO] [stdout]  --> src/othello/moai.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rand::{prelude, Rng};
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> src/othello/moai.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Shl` and `Shr`
[INFO] [stdout]  --> src/othello/moai.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::{Shl, Shr};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/othello/moai.rs:463:27
[INFO] [stdout]     |
[INFO] [stdout] 463 |             let mut val = (child.q / child.n as f64);
[INFO] [stdout]     |                           ^                        ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 463 -             let mut val = (child.q / child.n as f64);
[INFO] [stdout] 463 +             let mut val = child.q / child.n as f64;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused extern crate
[INFO] [stdout]  --> src/lib.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | extern crate wasm_timer;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove it
[INFO] [stdout]   |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]  --> src/lib.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![warn(clippy::all, rust_2018_idioms)]
[INFO] [stdout]   |                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]   = note: `#[warn(unused_extern_crates)]` implied by `#[warn(rust_2018_idioms)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/othello/board.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |         for y in 0..8 {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/othello/board.rs:34:17
[INFO] [stdout]    |
[INFO] [stdout] 34 |             for x in 0..8 {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/othello/board.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |         for i in 0..height {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]   --> src/othello/board.rs:69:17
[INFO] [stdout]    |
[INFO] [stdout] 69 |             for j in 0..width {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/othello/moai.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let mut mO: u64;
[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: unnecessary `unsafe` block
[INFO] [stdout]    --> src/othello/moai.rs:252:9
[INFO] [stdout]     |
[INFO] [stdout] 252 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/othello/moai.rs:292:14
[INFO] [stdout]     |
[INFO] [stdout] 292 |         let (mut player, mut opponent) = board.update(player, opponent, position);
[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/othello/moai.rs:292:26
[INFO] [stdout]     |
[INFO] [stdout] 292 |         let (mut player, mut opponent) = board.update(player, opponent, position);
[INFO] [stdout]     |                          ----^^^^^^^^
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/othello/moai.rs:315:9
[INFO] [stdout]     |
[INFO] [stdout] 315 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/othello/moai.rs:391:13
[INFO] [stdout]     |
[INFO] [stdout] 391 |         let mut v_0 = Node::new(None, state, 0);
[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/othello/moai.rs:394:13
[INFO] [stdout]     |
[INFO] [stdout] 394 |         let mut inst = Instant::now();
[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/othello/moai.rs:413:31
[INFO] [stdout]     |
[INFO] [stdout] 413 |     fn tree_policy(&mut self, mut id: NodeId) -> NodeId {
[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/othello/moai.rs:446:13
[INFO] [stdout]     |
[INFO] [stdout] 446 |         let mut v = self.table.get_mut(&id).unwrap();
[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/othello/moai.rs:449:13
[INFO] [stdout]     |
[INFO] [stdout] 449 |         let mut vp = Node::new(Some(id), new_state, a);
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/othello/moai.rs:457:48
[INFO] [stdout]     |
[INFO] [stdout] 457 |     fn best_child_ucb_tuned(&self, id: NodeId, c: f64) -> NodeId {
[INFO] [stdout]     |                                                ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/othello/moai.rs:481:17
[INFO] [stdout]     |
[INFO] [stdout] 481 |             let mut val = (child.q / child.n as f64)
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/othello/moai.rs:494:13
[INFO] [stdout]     |
[INFO] [stdout] 494 |         for i in 0..self.playout {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ave`
[INFO] [stdout]    --> src/othello/moai.rs:505:17
[INFO] [stdout]     |
[INFO] [stdout] 505 |             let ave = node.q / node.n as f64;
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_ave`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/othello/moai.rs:504:17
[INFO] [stdout]     |
[INFO] [stdout] 504 |             let mut node = self.table.get_mut(&id).unwrap();
[INFO] [stdout]     |                 ----^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `winner` is never used
[INFO] [stdout]    --> src/othello/board.rs:264:8
[INFO] [stdout]     |
[INFO] [stdout] 64  | impl Board {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 264 |     fn winner(&self) -> i32 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vertical_mirror` is never used
[INFO] [stdout]  --> src/othello/moai.rs:8:4
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn vertical_mirror(x: i64) -> i64 {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `best_child` is never used
[INFO] [stdout]    --> src/othello/moai.rs:475:8
[INFO] [stdout]     |
[INFO] [stdout] 366 | impl MCTS {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 475 |     fn best_child(&self, id: NodeId, c: f64) -> NodeId {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `P` should have a snake case name
[INFO] [stdout]   --> src/othello/moai.rs:48:35
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn legal_move_bits(&self, P: u64, O: u64) -> u64 {
[INFO] [stdout]    |                                   ^ help: convert the identifier to snake case: `p`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `O` should have a snake case name
[INFO] [stdout]   --> src/othello/moai.rs:48:43
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn legal_move_bits(&self, P: u64, O: u64) -> u64 {
[INFO] [stdout]    |                                           ^ help: convert the identifier to snake case (notice the capitalization): `o`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `mO` should have a snake case name
[INFO] [stdout]   --> src/othello/moai.rs:50:17
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let mut mO: u64;
[INFO] [stdout]    |                 ^^ help: convert the identifier to snake case: `m_o`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> src/othello/moai.rs:451:9
[INFO] [stdout]     |
[INFO] [stdout] 451 |         drop(v);
[INFO] [stdout]     |         ^^^^^-^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              argument has type `&mut Node`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dropping_references)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     |
[INFO] [stdout] 451 -         drop(v);
[INFO] [stdout] 451 +         let _ = v;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 15s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: quick-xml v0.22.0, wasm-bindgen v0.2.78
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 11`
[INFO] running `Command { std: "docker" "inspect" "bb0848bb72edceeb940222d0cbdd8e9cd2de154aad40470cd9bbafb8033070ad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bb0848bb72edceeb940222d0cbdd8e9cd2de154aad40470cd9bbafb8033070ad", kill_on_drop: false }`
[INFO] [stdout] bb0848bb72edceeb940222d0cbdd8e9cd2de154aad40470cd9bbafb8033070ad
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+1.85.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5aec0242da246a9e086aec025b868a90429c1aab5b743738ca65c96db7dfc0ca
[INFO] running `Command { std: "docker" "start" "-a" "5aec0242da246a9e086aec025b868a90429c1aab5b743738ca65c96db7dfc0ca", kill_on_drop: false }`
[INFO] [stderr]    Compiling othello v0.0.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `prelude`
[INFO] [stdout]  --> src/othello/moai.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rand::{prelude, Rng};
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> src/othello/moai.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Shl` and `Shr`
[INFO] [stdout]  --> src/othello/moai.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::{Shl, Shr};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/othello/moai.rs:463:27
[INFO] [stdout]     |
[INFO] [stdout] 463 |             let mut val = (child.q / child.n as f64);
[INFO] [stdout]     |                           ^                        ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 463 -             let mut val = (child.q / child.n as f64);
[INFO] [stdout] 463 +             let mut val = child.q / child.n as f64;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused extern crate
[INFO] [stdout]  --> src/lib.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | extern crate wasm_timer;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove it
[INFO] [stdout]   |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]  --> src/lib.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![warn(clippy::all, rust_2018_idioms)]
[INFO] [stdout]   |                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]   = note: `#[warn(unused_extern_crates)]` implied by `#[warn(rust_2018_idioms)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/othello/board.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |         for y in 0..8 {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/othello/board.rs:34:17
[INFO] [stdout]    |
[INFO] [stdout] 34 |             for x in 0..8 {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/othello/board.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |         for i in 0..height {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]   --> src/othello/board.rs:69:17
[INFO] [stdout]    |
[INFO] [stdout] 69 |             for j in 0..width {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/othello/moai.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let mut mO: u64;
[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: unnecessary `unsafe` block
[INFO] [stdout]    --> src/othello/moai.rs:252:9
[INFO] [stdout]     |
[INFO] [stdout] 252 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/othello/moai.rs:292:14
[INFO] [stdout]     |
[INFO] [stdout] 292 |         let (mut player, mut opponent) = board.update(player, opponent, position);
[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/othello/moai.rs:292:26
[INFO] [stdout]     |
[INFO] [stdout] 292 |         let (mut player, mut opponent) = board.update(player, opponent, position);
[INFO] [stdout]     |                          ----^^^^^^^^
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/othello/moai.rs:315:9
[INFO] [stdout]     |
[INFO] [stdout] 315 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/othello/moai.rs:391:13
[INFO] [stdout]     |
[INFO] [stdout] 391 |         let mut v_0 = Node::new(None, state, 0);
[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/othello/moai.rs:394:13
[INFO] [stdout]     |
[INFO] [stdout] 394 |         let mut inst = Instant::now();
[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/othello/moai.rs:413:31
[INFO] [stdout]     |
[INFO] [stdout] 413 |     fn tree_policy(&mut self, mut id: NodeId) -> NodeId {
[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/othello/moai.rs:446:13
[INFO] [stdout]     |
[INFO] [stdout] 446 |         let mut v = self.table.get_mut(&id).unwrap();
[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/othello/moai.rs:449:13
[INFO] [stdout]     |
[INFO] [stdout] 449 |         let mut vp = Node::new(Some(id), new_state, a);
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/othello/moai.rs:457:48
[INFO] [stdout]     |
[INFO] [stdout] 457 |     fn best_child_ucb_tuned(&self, id: NodeId, c: f64) -> NodeId {
[INFO] [stdout]     |                                                ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/othello/moai.rs:481:17
[INFO] [stdout]     |
[INFO] [stdout] 481 |             let mut val = (child.q / child.n as f64)
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/othello/moai.rs:494:13
[INFO] [stdout]     |
[INFO] [stdout] 494 |         for i in 0..self.playout {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ave`
[INFO] [stdout]    --> src/othello/moai.rs:505:17
[INFO] [stdout]     |
[INFO] [stdout] 505 |             let ave = node.q / node.n as f64;
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_ave`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/othello/moai.rs:504:17
[INFO] [stdout]     |
[INFO] [stdout] 504 |             let mut node = self.table.get_mut(&id).unwrap();
[INFO] [stdout]     |                 ----^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `winner` is never used
[INFO] [stdout]    --> src/othello/board.rs:264:8
[INFO] [stdout]     |
[INFO] [stdout] 64  | impl Board {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 264 |     fn winner(&self) -> i32 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vertical_mirror` is never used
[INFO] [stdout]  --> src/othello/moai.rs:8:4
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn vertical_mirror(x: i64) -> i64 {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `best_child` is never used
[INFO] [stdout]    --> src/othello/moai.rs:475:8
[INFO] [stdout]     |
[INFO] [stdout] 366 | impl MCTS {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 475 |     fn best_child(&self, id: NodeId, c: f64) -> NodeId {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `P` should have a snake case name
[INFO] [stdout]   --> src/othello/moai.rs:48:35
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn legal_move_bits(&self, P: u64, O: u64) -> u64 {
[INFO] [stdout]    |                                   ^ help: convert the identifier to snake case: `p`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `O` should have a snake case name
[INFO] [stdout]   --> src/othello/moai.rs:48:43
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn legal_move_bits(&self, P: u64, O: u64) -> u64 {
[INFO] [stdout]    |                                           ^ help: convert the identifier to snake case (notice the capitalization): `o`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `mO` should have a snake case name
[INFO] [stdout]   --> src/othello/moai.rs:50:17
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let mut mO: u64;
[INFO] [stdout]    |                 ^^ help: convert the identifier to snake case: `m_o`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> src/othello/moai.rs:451:9
[INFO] [stdout]     |
[INFO] [stdout] 451 |         drop(v);
[INFO] [stdout]     |         ^^^^^-^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              argument has type `&mut Node`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dropping_references)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     |
[INFO] [stdout] 451 -         drop(v);
[INFO] [stdout] 451 +         let _ = v;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `prelude`
[INFO] [stdout]  --> src/othello/moai.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rand::{prelude, Rng};
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> src/othello/moai.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Shl` and `Shr`
[INFO] [stdout]  --> src/othello/moai.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::{Shl, Shr};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/othello/moai.rs:463:27
[INFO] [stdout]     |
[INFO] [stdout] 463 |             let mut val = (child.q / child.n as f64);
[INFO] [stdout]     |                           ^                        ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 463 -             let mut val = (child.q / child.n as f64);
[INFO] [stdout] 463 +             let mut val = child.q / child.n as f64;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused extern crate
[INFO] [stdout]  --> src/lib.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | extern crate wasm_timer;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove it
[INFO] [stdout]   |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]  --> src/lib.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![warn(clippy::all, rust_2018_idioms)]
[INFO] [stdout]   |                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]   = note: `#[warn(unused_extern_crates)]` implied by `#[warn(rust_2018_idioms)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/othello/board.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |         for y in 0..8 {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/othello/board.rs:34:17
[INFO] [stdout]    |
[INFO] [stdout] 34 |             for x in 0..8 {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/othello/board.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |         for i in 0..height {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]   --> src/othello/board.rs:69:17
[INFO] [stdout]    |
[INFO] [stdout] 69 |             for j in 0..width {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/othello/moai.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let mut mO: u64;
[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: unnecessary `unsafe` block
[INFO] [stdout]    --> src/othello/moai.rs:252:9
[INFO] [stdout]     |
[INFO] [stdout] 252 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/othello/moai.rs:292:14
[INFO] [stdout]     |
[INFO] [stdout] 292 |         let (mut player, mut opponent) = board.update(player, opponent, position);
[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/othello/moai.rs:292:26
[INFO] [stdout]     |
[INFO] [stdout] 292 |         let (mut player, mut opponent) = board.update(player, opponent, position);
[INFO] [stdout]     |                          ----^^^^^^^^
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/othello/moai.rs:315:9
[INFO] [stdout]     |
[INFO] [stdout] 315 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/othello/moai.rs:391:13
[INFO] [stdout]     |
[INFO] [stdout] 391 |         let mut v_0 = Node::new(None, state, 0);
[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/othello/moai.rs:394:13
[INFO] [stdout]     |
[INFO] [stdout] 394 |         let mut inst = Instant::now();
[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/othello/moai.rs:413:31
[INFO] [stdout]     |
[INFO] [stdout] 413 |     fn tree_policy(&mut self, mut id: NodeId) -> NodeId {
[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/othello/moai.rs:446:13
[INFO] [stdout]     |
[INFO] [stdout] 446 |         let mut v = self.table.get_mut(&id).unwrap();
[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/othello/moai.rs:449:13
[INFO] [stdout]     |
[INFO] [stdout] 449 |         let mut vp = Node::new(Some(id), new_state, a);
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/othello/moai.rs:457:48
[INFO] [stdout]     |
[INFO] [stdout] 457 |     fn best_child_ucb_tuned(&self, id: NodeId, c: f64) -> NodeId {
[INFO] [stdout]     |                                                ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/othello/moai.rs:481:17
[INFO] [stdout]     |
[INFO] [stdout] 481 |             let mut val = (child.q / child.n as f64)
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/othello/moai.rs:494:13
[INFO] [stdout]     |
[INFO] [stdout] 494 |         for i in 0..self.playout {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ave`
[INFO] [stdout]    --> src/othello/moai.rs:505:17
[INFO] [stdout]     |
[INFO] [stdout] 505 |             let ave = node.q / node.n as f64;
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_ave`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/othello/moai.rs:504:17
[INFO] [stdout]     |
[INFO] [stdout] 504 |             let mut node = self.table.get_mut(&id).unwrap();
[INFO] [stdout]     |                 ----^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `winner` is never used
[INFO] [stdout]    --> src/othello/board.rs:264:8
[INFO] [stdout]     |
[INFO] [stdout] 64  | impl Board {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 264 |     fn winner(&self) -> i32 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vertical_mirror` is never used
[INFO] [stdout]  --> src/othello/moai.rs:8:4
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn vertical_mirror(x: i64) -> i64 {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `best_child` is never used
[INFO] [stdout]    --> src/othello/moai.rs:475:8
[INFO] [stdout]     |
[INFO] [stdout] 366 | impl MCTS {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 475 |     fn best_child(&self, id: NodeId, c: f64) -> NodeId {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `P` should have a snake case name
[INFO] [stdout]   --> src/othello/moai.rs:48:35
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn legal_move_bits(&self, P: u64, O: u64) -> u64 {
[INFO] [stdout]    |                                   ^ help: convert the identifier to snake case: `p`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `O` should have a snake case name
[INFO] [stdout]   --> src/othello/moai.rs:48:43
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn legal_move_bits(&self, P: u64, O: u64) -> u64 {
[INFO] [stdout]    |                                           ^ help: convert the identifier to snake case (notice the capitalization): `o`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `mO` should have a snake case name
[INFO] [stdout]   --> src/othello/moai.rs:50:17
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let mut mO: u64;
[INFO] [stdout]    |                 ^^ help: convert the identifier to snake case: `m_o`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> src/othello/moai.rs:451:9
[INFO] [stdout]     |
[INFO] [stdout] 451 |         drop(v);
[INFO] [stdout]     |         ^^^^^-^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              argument has type `&mut Node`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dropping_references)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     |
[INFO] [stdout] 451 -         drop(v);
[INFO] [stdout] 451 +         let _ = v;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.04s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: quick-xml v0.22.0, wasm-bindgen v0.2.78
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 11`
[INFO] running `Command { std: "docker" "inspect" "5aec0242da246a9e086aec025b868a90429c1aab5b743738ca65c96db7dfc0ca", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5aec0242da246a9e086aec025b868a90429c1aab5b743738ca65c96db7dfc0ca", kill_on_drop: false }`
[INFO] [stdout] 5aec0242da246a9e086aec025b868a90429c1aab5b743738ca65c96db7dfc0ca
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+1.85.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 5340693b7a7eb4cdac194ed0a18a75b5732cc6c92e8fe6db451ad16606dc6ec3
[INFO] running `Command { std: "docker" "start" "-a" "5340693b7a7eb4cdac194ed0a18a75b5732cc6c92e8fe6db451ad16606dc6ec3", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `prelude`
[INFO] [stderr]  --> src/othello/moai.rs:1:12
[INFO] [stderr]   |
[INFO] [stderr] 1 | use rand::{prelude, Rng};
[INFO] [stderr]   |            ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::io`
[INFO] [stderr]  --> src/othello/moai.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::io;
[INFO] [stderr]   |     ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Shl` and `Shr`
[INFO] [stderr]  --> src/othello/moai.rs:4:16
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::ops::{Shl, Shr};
[INFO] [stderr]   |                ^^^  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/othello/moai.rs:463:27
[INFO] [stderr]     |
[INFO] [stderr] 463 |             let mut val = (child.q / child.n as f64);
[INFO] [stderr]     |                           ^                        ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 463 -             let mut val = (child.q / child.n as f64);
[INFO] [stderr] 463 +             let mut val = child.q / child.n as f64;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused extern crate
[INFO] [stderr]  --> src/lib.rs:7:1
[INFO] [stderr]   |
[INFO] [stderr] 7 | extern crate wasm_timer;
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove it
[INFO] [stderr]   |
[INFO] [stderr] note: the lint level is defined here
[INFO] [stderr]  --> src/lib.rs:1:22
[INFO] [stderr]   |
[INFO] [stderr] 1 | #![warn(clippy::all, rust_2018_idioms)]
[INFO] [stderr]   |                      ^^^^^^^^^^^^^^^^
[INFO] [stderr]   = note: `#[warn(unused_extern_crates)]` implied by `#[warn(rust_2018_idioms)]`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `y`
[INFO] [stderr]   --> src/othello/board.rs:32:13
[INFO] [stderr]    |
[INFO] [stderr] 32 |         for y in 0..8 {
[INFO] [stderr]    |             ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]   --> src/othello/board.rs:34:17
[INFO] [stderr]    |
[INFO] [stderr] 34 |             for x in 0..8 {
[INFO] [stderr]    |                 ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> src/othello/board.rs:67:13
[INFO] [stderr]    |
[INFO] [stderr] 67 |         for i in 0..height {
[INFO] [stderr]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `j`
[INFO] [stderr]   --> src/othello/board.rs:69:17
[INFO] [stderr]    |
[INFO] [stderr] 69 |             for j in 0..width {
[INFO] [stderr]    |                 ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/othello/moai.rs:50:13
[INFO] [stderr]    |
[INFO] [stderr] 50 |         let mut mO: u64;
[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: unnecessary `unsafe` block
[INFO] [stderr]    --> src/othello/moai.rs:252:9
[INFO] [stderr]     |
[INFO] [stderr] 252 |         unsafe {
[INFO] [stderr]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_unsafe)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/othello/moai.rs:292:14
[INFO] [stderr]     |
[INFO] [stderr] 292 |         let (mut player, mut opponent) = board.update(player, opponent, position);
[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/othello/moai.rs:292:26
[INFO] [stderr]     |
[INFO] [stderr] 292 |         let (mut player, mut opponent) = board.update(player, opponent, position);
[INFO] [stderr]     |                          ----^^^^^^^^
[INFO] [stderr]     |                          |
[INFO] [stderr]     |                          help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]    --> src/othello/moai.rs:315:9
[INFO] [stderr]     |
[INFO] [stderr] 315 |         unsafe {
[INFO] [stderr]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/othello/moai.rs:391:13
[INFO] [stderr]     |
[INFO] [stderr] 391 |         let mut v_0 = Node::new(None, state, 0);
[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/othello/moai.rs:394:13
[INFO] [stderr]     |
[INFO] [stderr] 394 |         let mut inst = Instant::now();
[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/othello/moai.rs:413:31
[INFO] [stderr]     |
[INFO] [stderr] 413 |     fn tree_policy(&mut self, mut id: NodeId) -> NodeId {
[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/othello/moai.rs:446:13
[INFO] [stderr]     |
[INFO] [stderr] 446 |         let mut v = self.table.get_mut(&id).unwrap();
[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/othello/moai.rs:449:13
[INFO] [stderr]     |
[INFO] [stderr] 449 |         let mut vp = Node::new(Some(id), new_state, a);
[INFO] [stderr]     |             ----^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `c`
[INFO] [stderr]    --> src/othello/moai.rs:457:48
[INFO] [stderr]     |
[INFO] [stderr] 457 |     fn best_child_ucb_tuned(&self, id: NodeId, c: f64) -> NodeId {
[INFO] [stderr]     |                                                ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/othello/moai.rs:481:17
[INFO] [stderr]     |
[INFO] [stderr] 481 |             let mut val = (child.q / child.n as f64)
[INFO] [stderr]     |                 ----^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/othello/moai.rs:494:13
[INFO] [stderr]     |
[INFO] [stderr] 494 |         for i in 0..self.playout {
[INFO] [stderr]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ave`
[INFO] [stderr]    --> src/othello/moai.rs:505:17
[INFO] [stderr]     |
[INFO] [stderr] 505 |             let ave = node.q / node.n as f64;
[INFO] [stderr]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_ave`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/othello/moai.rs:504:17
[INFO] [stderr]     |
[INFO] [stderr] 504 |             let mut node = self.table.get_mut(&id).unwrap();
[INFO] [stderr]     |                 ----^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: method `winner` is never used
[INFO] [stderr]    --> src/othello/board.rs:264:8
[INFO] [stderr]     |
[INFO] [stderr] 64  | impl Board {
[INFO] [stderr]     | ---------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 264 |     fn winner(&self) -> i32 {
[INFO] [stderr]     |        ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `vertical_mirror` is never used
[INFO] [stderr]  --> src/othello/moai.rs:8:4
[INFO] [stderr]   |
[INFO] [stderr] 8 | fn vertical_mirror(x: i64) -> i64 {
[INFO] [stderr]   |    ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `best_child` is never used
[INFO] [stderr]    --> src/othello/moai.rs:475:8
[INFO] [stderr]     |
[INFO] [stderr] 366 | impl MCTS {
[INFO] [stderr]     | --------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 475 |     fn best_child(&self, id: NodeId, c: f64) -> NodeId {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable `P` should have a snake case name
[INFO] [stderr]   --> src/othello/moai.rs:48:35
[INFO] [stderr]    |
[INFO] [stderr] 48 |     pub fn legal_move_bits(&self, P: u64, O: u64) -> u64 {
[INFO] [stderr]    |                                   ^ help: convert the identifier to snake case: `p`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `O` should have a snake case name
[INFO] [stderr]   --> src/othello/moai.rs:48:43
[INFO] [stderr]    |
[INFO] [stderr] 48 |     pub fn legal_move_bits(&self, P: u64, O: u64) -> u64 {
[INFO] [stderr]    |                                           ^ help: convert the identifier to snake case (notice the capitalization): `o`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `mO` should have a snake case name
[INFO] [stderr]   --> src/othello/moai.rs:50:17
[INFO] [stderr]    |
[INFO] [stderr] 50 |         let mut mO: u64;
[INFO] [stderr]    |                 ^^ help: convert the identifier to snake case: `m_o`
[INFO] [stderr] 
[INFO] [stderr] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stderr]    --> src/othello/moai.rs:451:9
[INFO] [stderr]     |
[INFO] [stderr] 451 |         drop(v);
[INFO] [stderr]     |         ^^^^^-^
[INFO] [stderr]     |              |
[INFO] [stderr]     |              argument has type `&mut Node`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dropping_references)]` on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the expression or result
[INFO] [stderr]     |
[INFO] [stderr] 451 -         drop(v);
[INFO] [stderr] 451 +         let _ = v;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: `othello` (lib) generated 31 warnings (run `cargo fix --lib -p othello` to apply 15 suggestions)
[INFO] [stderr] warning: `othello` (lib test) generated 31 warnings (31 duplicates)
[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: quick-xml v0.22.0, wasm-bindgen v0.2.78
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 11`
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/othello-edacbd9fb336fe5d)
[INFO] [stdout] running 0 tests
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/othello-a811f46565957866)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests othello
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/othello/moai.rs:463:27
[INFO] [stderr]     |
[INFO] [stderr] 463 |             let mut val = (child.q / child.n as f64);
[INFO] [stderr]     |                           ^                        ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 463 -             let mut val = (child.q / child.n as f64);
[INFO] [stderr] 463 +             let mut val = child.q / child.n as f64;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: 1 warning emitted
[INFO] [stderr] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "5340693b7a7eb4cdac194ed0a18a75b5732cc6c92e8fe6db451ad16606dc6ec3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5340693b7a7eb4cdac194ed0a18a75b5732cc6c92e8fe6db451ad16606dc6ec3", kill_on_drop: false }`
[INFO] [stdout] 5340693b7a7eb4cdac194ed0a18a75b5732cc6c92e8fe6db451ad16606dc6ec3
