[INFO] cloning repository https://github.com/inda21plusplus/ollejer-chess
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/inda21plusplus/ollejer-chess" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Finda21plusplus%2Follejer-chess", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Finda21plusplus%2Follejer-chess'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ea9943b9f2b67e54a477acad577557f70d669293
[INFO] building inda21plusplus/ollejer-chess against try#4987e9d4227139400384ab59296ffee3b0fb1183 for pr-146237-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Finda21plusplus%2Follejer-chess" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/inda21plusplus/ollejer-chess
[INFO] finished tweaking git repo https://github.com/inda21plusplus/ollejer-chess
[INFO] tweaked toml for git repo https://github.com/inda21plusplus/ollejer-chess written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/inda21plusplus/ollejer-chess on toolchain 4987e9d4227139400384ab59296ffee3b0fb1183
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4987e9d4227139400384ab59296ffee3b0fb1183" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/inda21plusplus/ollejer-chess 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" "+4987e9d4227139400384ab59296ffee3b0fb1183" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+4987e9d4227139400384ab59296ffee3b0fb1183" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] fb2886f6a9313e8f927343f6d1e4f6adc68976a34e106fad40dab9deac9b09c7
[INFO] running `Command { std: "docker" "start" "-a" "fb2886f6a9313e8f927343f6d1e4f6adc68976a34e106fad40dab9deac9b09c7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "fb2886f6a9313e8f927343f6d1e4f6adc68976a34e106fad40dab9deac9b09c7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fb2886f6a9313e8f927343f6d1e4f6adc68976a34e106fad40dab9deac9b09c7", kill_on_drop: false }`
[INFO] [stdout] fb2886f6a9313e8f927343f6d1e4f6adc68976a34e106fad40dab9deac9b09c7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+4987e9d4227139400384ab59296ffee3b0fb1183" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 62b9dcb160c9ea845227097c2775406a68a8576f668732249396ab92491a3f70
[INFO] running `Command { std: "docker" "start" "-a" "62b9dcb160c9ea845227097c2775406a68a8576f668732249396ab92491a3f70", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.103
[INFO] [stderr]    Compiling xml-rs v0.8.4
[INFO] [stderr]    Compiling syn v1.0.77
[INFO] [stderr]    Compiling quote v1.0.9
[INFO] [stderr]    Compiling memchr v2.4.1
[INFO] [stderr]    Compiling wayland-sys v0.28.6
[INFO] [stderr]    Compiling libloading v0.7.0
[INFO] [stderr]    Compiling serde v1.0.130
[INFO] [stderr]    Compiling ab_glyph_rasterizer v0.1.4
[INFO] [stderr]    Compiling dlib v0.5.0
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling nom v7.0.0
[INFO] [stderr]    Compiling instant v0.1.11
[INFO] [stderr]    Compiling walkdir v2.3.2
[INFO] [stderr]    Compiling ttf-parser v0.6.2
[INFO] [stderr]    Compiling nix v0.18.0
[INFO] [stderr]    Compiling ucd-trie v0.1.3
[INFO] [stderr]    Compiling minimal-lexical v0.1.3
[INFO] [stderr]    Compiling crossbeam-queue v0.3.2
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]    Compiling wayland-scanner v0.28.6
[INFO] [stderr]    Compiling nix v0.20.0
[INFO] [stderr]    Compiling jobserver v0.1.24
[INFO] [stderr]    Compiling getrandom v0.2.3
[INFO] [stderr]    Compiling owned_ttf_parser v0.6.0
[INFO] [stderr]    Compiling rand_core v0.6.3
[INFO] [stderr]    Compiling parking_lot_core v0.8.5
[INFO] [stderr]    Compiling cc v1.0.70
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling wayland-client v0.28.6
[INFO] [stderr]    Compiling wayland-protocols v0.28.6
[INFO] [stderr]    Compiling rand v0.8.4
[INFO] [stderr]    Compiling pest v2.1.3
[INFO] [stderr]    Compiling ryu v1.0.5
[INFO] [stderr]    Compiling lock_api v0.4.5
[INFO] [stderr]    Compiling unicase v2.6.0
[INFO] [stderr]    Compiling x11-dl v2.19.1
[INFO] [stderr]    Compiling serde_json v1.0.68
[INFO] [stderr]    Compiling parking_lot v0.11.2
[INFO] [stderr]    Compiling xcursor v0.3.4
[INFO] [stderr]    Compiling rusttype v0.9.2
[INFO] [stderr]    Compiling semver-parser v0.10.2
[INFO] [stderr]    Compiling euclid v0.22.6
[INFO] [stderr]    Compiling error-chain v0.12.4
[INFO] [stderr]    Compiling num-integer v0.1.44
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]    Compiling libloading v0.6.7
[INFO] [stderr]    Compiling xdg v2.2.0
[INFO] [stderr]    Compiling arrayvec v0.5.2
[INFO] [stderr]    Compiling ttf-parser v0.12.3
[INFO] [stderr]    Compiling pulldown-cmark v0.8.0
[INFO] [stderr]    Compiling crc32fast v1.2.1
[INFO] [stderr]    Compiling itoa v0.4.8
[INFO] [stderr]    Compiling lyon_geom v0.17.5
[INFO] [stderr]    Compiling andrew v0.3.1
[INFO] [stderr]    Compiling dlib v0.4.2
[INFO] [stderr]    Compiling crossbeam v0.8.1
[INFO] [stderr]    Compiling bzip2-sys v0.1.11+1.0.8
[INFO] [stderr]    Compiling wayland-commons v0.28.6
[INFO] [stderr]    Compiling minimp3-sys v0.3.2
[INFO] [stderr]    Compiling owned_ttf_parser v0.12.1
[INFO] [stderr]    Compiling glutin_egl_sys v0.1.5
[INFO] [stderr]    Compiling calloop v0.6.5
[INFO] [stderr]    Compiling glutin_glx_sys v0.1.7
[INFO] [stderr]    Compiling serde_derive v1.0.130
[INFO] [stderr]    Compiling thiserror-impl v1.0.29
[INFO] [stderr]    Compiling gfx_gl v0.6.1
[INFO] [stderr]    Compiling num_cpus v1.13.0
[INFO] [stderr]    Compiling memmap2 v0.1.0
[INFO] [stderr]    Compiling mio v0.7.13
[INFO] [stderr]    Compiling miniz_oxide v0.4.4
[INFO] [stderr]    Compiling draw_state v0.8.0
[INFO] [stderr]    Compiling libudev-sys v0.1.4
[INFO] [stderr]    Compiling remove_dir_all v0.5.3
[INFO] [stderr]    Compiling winit v0.25.0
[INFO] [stderr]    Compiling adler32 v1.2.0
[INFO] [stderr]    Compiling tempfile v3.2.0
[INFO] [stderr]    Compiling gfx_core v0.9.2
[INFO] [stderr]    Compiling thiserror v1.0.29
[INFO] [stderr]    Compiling rayon-core v1.9.1
[INFO] [stderr]    Compiling mio-misc v1.2.1
[INFO] [stderr]    Compiling ab_glyph v0.2.11
[INFO] [stderr]    Compiling wayland-cursor v0.28.6
[INFO] [stderr]    Compiling lyon_path v0.17.7
[INFO] [stderr]    Compiling raw-window-handle v0.3.3
[INFO] [stderr]    Compiling shared_library v0.1.9
[INFO] [stderr]    Compiling sid v0.6.1
[INFO] [stderr]    Compiling num-iter v0.1.42
[INFO] [stderr]    Compiling num-rational v0.3.2
[INFO] [stderr]    Compiling cpal v0.13.4
[INFO] [stderr]    Compiling bytecount v0.6.2
[INFO] [stderr]    Compiling adler v1.0.2
[INFO] [stderr]    Compiling glob v0.3.0
[INFO] [stderr]    Compiling weezl v0.1.5
[INFO] [stderr]    Compiling rayon v1.5.1
[INFO] [stderr]    Compiling osmesa-sys v0.1.2
[INFO] [stderr]    Compiling alsa v0.5.0
[INFO] [stderr]    Compiling wayland-egl v0.28.6
[INFO] [stderr]    Compiling miniz_oxide v0.3.7
[INFO] [stderr]    Compiling deflate v0.8.6
[INFO] [stderr]    Compiling slice-deque v0.3.0
[INFO] [stderr]    Compiling ogg v0.8.0
[INFO] [stderr]    Compiling approx v0.5.0
[INFO] [stderr]    Compiling float_next_after v0.1.5
[INFO] [stderr]    Compiling jpeg-decoder v0.1.22
[INFO] [stderr]    Compiling color_quant v1.1.0
[INFO] [stderr]    Compiling xi-unicode v0.3.0
[INFO] [stderr]    Compiling uuid v0.8.2
[INFO] [stderr]    Compiling twox-hash v1.6.1
[INFO] [stderr]    Compiling glyph_brush_layout v0.2.3
[INFO] [stderr]    Compiling gif v0.11.2
[INFO] [stderr]    Compiling gilrs-core v0.3.1
[INFO] [stderr]    Compiling tiff v0.6.1
[INFO] [stderr]    Compiling glyph_brush_draw_cache v0.1.4
[INFO] [stderr]    Compiling lewton v0.10.2
[INFO] [stderr]    Compiling lyon_tessellation v0.17.9
[INFO] [stderr]    Compiling png v0.16.8
[INFO] [stderr]    Compiling gfx_device_gl v0.16.2
[INFO] [stderr]    Compiling lyon_algorithms v0.17.6
[INFO] [stderr]    Compiling dirs-sys v0.3.6
[INFO] [stderr]    Compiling ordered-float v2.8.0
[INFO] [stderr]    Compiling hound v3.4.0
[INFO] [stderr]    Compiling mint v0.5.7
[INFO] [stderr]    Compiling bytemuck v1.7.2
[INFO] [stderr]    Compiling claxon v0.4.3
[INFO] [stderr]    Compiling image v0.23.14
[INFO] [stderr]    Compiling gilrs v0.8.1
[INFO] [stderr]    Compiling glyph_brush v0.7.2
[INFO] [stderr]    Compiling semver v0.11.0
[INFO] [stderr]    Compiling cargo-platform v0.1.2
[INFO] [stderr]    Compiling glam v0.17.3
[INFO] [stderr]    Compiling toml v0.5.8
[INFO] [stderr]    Compiling lyon v0.17.5
[INFO] [stderr]    Compiling directories v3.0.2
[INFO] [stderr]    Compiling gfx v0.18.2
[INFO] [stderr]    Compiling smart-default v0.6.0
[INFO] [stderr]    Compiling cargo_metadata v0.12.3
[INFO] [stderr]    Compiling ollejer-chess v0.1.0 (/opt/rustwide/workdir/ollejer-chess)
[INFO] [stdout] warning: unused variable: `rook`
[INFO] [stdout]    --> ollejer-chess/src/board.rs:210:9
[INFO] [stdout]     |
[INFO] [stdout] 210 |         rook: Piece,
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_rook`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `destination`
[INFO] [stdout]    --> ollejer-chess/src/board.rs:212:9
[INFO] [stdout]     |
[INFO] [stdout] 212 |         destination: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_destination`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `result` is assigned to, but never used
[INFO] [stdout]    --> ollejer-chess/src/board.rs:356:13
[INFO] [stdout]     |
[INFO] [stdout] 356 |         let result: Result<(), &'static str>;
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_result` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `result` is never read
[INFO] [stdout]    --> ollejer-chess/src/board.rs:358:13
[INFO] [stdout]     |
[INFO] [stdout] 358 |             result = match read_promotion() {
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `result` is never read
[INFO] [stdout]    --> ollejer-chess/src/board.rs:372:13
[INFO] [stdout]     |
[INFO] [stdout] 372 |             result = match read_promotion() {
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `result` is never read
[INFO] [stdout]    --> ollejer-chess/src/board.rs:386:13
[INFO] [stdout]     |
[INFO] [stdout] 386 |             result = Ok(());
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `turn`
[INFO] [stdout]    --> ollejer-chess/src/board.rs:425:13
[INFO] [stdout]     |
[INFO] [stdout] 425 |         let turn = match turn {
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_turn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> ollejer-chess/src/movement.rs:193:9
[INFO] [stdout]     |
[INFO] [stdout] 193 |         _ => panic!("Error! Cant get move from unknown piece."),
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> ollejer-chess/src/movement.rs:193:9
[INFO] [stdout]     |
[INFO] [stdout] 187 |         Knight => get_knight_moves(position),
[INFO] [stdout]     |         ------ matches some of the same values
[INFO] [stdout] 188 |         Bishop => get_bishop_moves(position),
[INFO] [stdout]     |         ------ matches some of the same values
[INFO] [stdout] 189 |         Rook => get_rook_moves(position),
[INFO] [stdout]     |         ---- matches some of the same values
[INFO] [stdout] 190 |         Queen => get_queen_moves(position),
[INFO] [stdout]     |         ----- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 193 |         _ => panic!("Error! Cant get move from unknown piece."),
[INFO] [stdout]     |         ^ ...and 2 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `this_knight_color`
[INFO] [stdout]   --> ollejer-chess/src/rules.rs:86:17
[INFO] [stdout]    |
[INFO] [stdout] 86 |                 this_knight_color if this_piece_color == target_piece.color => continue,
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_this_knight_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `largest` is never read
[INFO] [stdout]    --> ollejer-chess/src/rules.rs:271:17
[INFO] [stdout]     |
[INFO] [stdout] 271 |         let mut largest = 0;
[INFO] [stdout]     |                 ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `smallest` is never read
[INFO] [stdout]    --> ollejer-chess/src/rules.rs:272:17
[INFO] [stdout]     |
[INFO] [stdout] 272 |         let mut smallest = 0;
[INFO] [stdout]     |                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> ollejer-chess/src/rules.rs:337:9
[INFO] [stdout]     |
[INFO] [stdout] 337 |         _ => panic!("Error! Cant get move from unknown piece."), //WARNING WTF IS THIS GHOST
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> ollejer-chess/src/rules.rs:337:9
[INFO] [stdout]     |
[INFO] [stdout] 331 |         pieces::Pieces::Knight => validate_knight_moves(one_d_board, moves, position),
[INFO] [stdout]     |         ---------------------- matches some of the same values
[INFO] [stdout] 332 |         pieces::Pieces::Queen => validate_queen_moves(one_d_board, moves, position),
[INFO] [stdout]     |         --------------------- matches some of the same values
[INFO] [stdout] 333 |         pieces::Pieces::Rook => validate_rook_moves(one_d_board, moves, position),
[INFO] [stdout]     |         -------------------- matches some of the same values
[INFO] [stdout] 334 |         pieces::Pieces::Bishop => validate_bishop_moves(one_d_board, moves, position),
[INFO] [stdout]     |         ---------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 337 |         _ => panic!("Error! Cant get move from unknown piece."), //WARNING WTF IS THIS GHOST
[INFO] [stdout]     |         ^ ...and 2 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]    --> ollejer-chess/src/rules.rs:410:5
[INFO] [stdout]     |
[INFO] [stdout] 410 |     pos: usize,
[INFO] [stdout]     |     ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `halfmove_clock` and `fullmove_clock` are never read
[INFO] [stdout]    --> ollejer-chess/src/board.rs:157:5
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub struct OneDBoard {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 157 |     halfmove_clock: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 158 |     fullmove_clock: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OneDBoard` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_piece_UNSAFE` should have a snake case name
[INFO] [stdout]    --> ollejer-chess/src/board.rs:400:12
[INFO] [stdout]     |
[INFO] [stdout] 400 |     pub fn set_piece_UNSAFE(&mut self, position: usize, piece: Option<Piece>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `set_piece_unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `new_from_FEN` should have a snake case name
[INFO] [stdout]    --> ollejer-chess/src/board.rs:418:12
[INFO] [stdout]     |
[INFO] [stdout] 418 |     pub fn new_from_FEN(fen: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^ help: convert the identifier to snake case: `new_from_fen`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> ollejer-chess/src/board.rs:456:30
[INFO] [stdout]     |
[INFO] [stdout] 456 |             Err(e) => panic!(e),
[INFO] [stdout]     |                              ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 456 |             Err(e) => panic!("{}", e),
[INFO] [stdout]     |                              +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 456 -             Err(e) => panic!(e),
[INFO] [stdout] 456 +             Err(e) => std::panic::panic_any(e),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> ollejer-chess/src/board.rs:462:30
[INFO] [stdout]     |
[INFO] [stdout] 462 |             Err(e) => panic!(e),
[INFO] [stdout]     |                              ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 462 |             Err(e) => panic!("{}", e),
[INFO] [stdout]     |                              +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 462 -             Err(e) => panic!(e),
[INFO] [stdout] 462 +             Err(e) => std::panic::panic_any(e),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling termapp v0.1.0 (/opt/rustwide/workdir/termapp)
[INFO] [stderr]    Compiling minimp3 v0.5.1
[INFO] [stderr]    Compiling rodio v0.14.0
[INFO] [stderr]    Compiling skeptic v0.13.6
[INFO] [stderr]    Compiling bzip2 v0.4.3
[INFO] [stderr]    Compiling smithay-client-toolkit v0.12.3
[INFO] [stderr]    Compiling zip v0.5.13
[INFO] [stderr]    Compiling ggez v0.6.1
[INFO] [stderr]    Compiling glutin v0.27.0
[INFO] [stderr]    Compiling old_school_gfx_glutin_ext v0.27.0
[INFO] [stderr]    Compiling gui v0.1.0 (/opt/rustwide/workdir/gui)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 37s
[INFO] running `Command { std: "docker" "inspect" "62b9dcb160c9ea845227097c2775406a68a8576f668732249396ab92491a3f70", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "62b9dcb160c9ea845227097c2775406a68a8576f668732249396ab92491a3f70", kill_on_drop: false }`
[INFO] [stdout] 62b9dcb160c9ea845227097c2775406a68a8576f668732249396ab92491a3f70
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+4987e9d4227139400384ab59296ffee3b0fb1183" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 31abee0d1e90baaf685162bcb1d94f5bd75c94c2855de29420b490927ea09048
[INFO] running `Command { std: "docker" "start" "-a" "31abee0d1e90baaf685162bcb1d94f5bd75c94c2855de29420b490927ea09048", kill_on_drop: false }`
[INFO] [stdout] warning: unused variable: `rook`
[INFO] [stdout]    --> ollejer-chess/src/board.rs:210:9
[INFO] [stdout]     |
[INFO] [stdout] 210 |         rook: Piece,
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_rook`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `destination`
[INFO] [stdout]    --> ollejer-chess/src/board.rs:212:9
[INFO] [stdout]     |
[INFO] [stdout] 212 |         destination: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_destination`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `result` is assigned to, but never used
[INFO] [stdout]    --> ollejer-chess/src/board.rs:356:13
[INFO] [stdout]     |
[INFO] [stdout] 356 |         let result: Result<(), &'static str>;
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_result` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `result` is never read
[INFO] [stdout]    --> ollejer-chess/src/board.rs:358:13
[INFO] [stdout]     |
[INFO] [stdout] 358 |             result = match read_promotion() {
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `result` is never read
[INFO] [stdout]    --> ollejer-chess/src/board.rs:372:13
[INFO] [stdout]     |
[INFO] [stdout] 372 |             result = match read_promotion() {
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `result` is never read
[INFO] [stdout]    --> ollejer-chess/src/board.rs:386:13
[INFO] [stdout]     |
[INFO] [stdout] 386 |             result = Ok(());
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `turn`
[INFO] [stdout]    --> ollejer-chess/src/board.rs:425:13
[INFO] [stdout]     |
[INFO] [stdout] 425 |         let turn = match turn {
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_turn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> ollejer-chess/src/movement.rs:193:9
[INFO] [stdout]     |
[INFO] [stdout] 193 |         _ => panic!("Error! Cant get move from unknown piece."),
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> ollejer-chess/src/movement.rs:193:9
[INFO] [stdout]     |
[INFO] [stdout] 187 |         Knight => get_knight_moves(position),
[INFO] [stdout]     |         ------ matches some of the same values
[INFO] [stdout] 188 |         Bishop => get_bishop_moves(position),
[INFO] [stdout]     |         ------ matches some of the same values
[INFO] [stdout] 189 |         Rook => get_rook_moves(position),
[INFO] [stdout]     |         ---- matches some of the same values
[INFO] [stdout] 190 |         Queen => get_queen_moves(position),
[INFO] [stdout]     |         ----- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 193 |         _ => panic!("Error! Cant get move from unknown piece."),
[INFO] [stdout]     |         ^ ...and 2 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `this_knight_color`
[INFO] [stdout]   --> ollejer-chess/src/rules.rs:86:17
[INFO] [stdout]    |
[INFO] [stdout] 86 |                 this_knight_color if this_piece_color == target_piece.color => continue,
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_this_knight_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `largest` is never read
[INFO] [stdout]    --> ollejer-chess/src/rules.rs:271:17
[INFO] [stdout]     |
[INFO] [stdout] 271 |         let mut largest = 0;
[INFO] [stdout]     |                 ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `smallest` is never read
[INFO] [stdout]    --> ollejer-chess/src/rules.rs:272:17
[INFO] [stdout]     |
[INFO] [stdout] 272 |         let mut smallest = 0;
[INFO] [stdout]     |                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling termapp v0.1.0 (/opt/rustwide/workdir/termapp)
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> ollejer-chess/src/rules.rs:337:9
[INFO] [stdout]     |
[INFO] [stdout] 337 |         _ => panic!("Error! Cant get move from unknown piece."), //WARNING WTF IS THIS GHOST
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> ollejer-chess/src/rules.rs:337:9
[INFO] [stdout]     |
[INFO] [stdout] 331 |         pieces::Pieces::Knight => validate_knight_moves(one_d_board, moves, position),
[INFO] [stdout]     |         ---------------------- matches some of the same values
[INFO] [stdout] 332 |         pieces::Pieces::Queen => validate_queen_moves(one_d_board, moves, position),
[INFO] [stdout]     |         --------------------- matches some of the same values
[INFO] [stdout] 333 |         pieces::Pieces::Rook => validate_rook_moves(one_d_board, moves, position),
[INFO] [stdout]     |         -------------------- matches some of the same values
[INFO] [stdout] 334 |         pieces::Pieces::Bishop => validate_bishop_moves(one_d_board, moves, position),
[INFO] [stdout]     |         ---------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 337 |         _ => panic!("Error! Cant get move from unknown piece."), //WARNING WTF IS THIS GHOST
[INFO] [stdout]     |         ^ ...and 2 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling ollejer-chess v0.1.0 (/opt/rustwide/workdir/ollejer-chess)
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]    --> ollejer-chess/src/rules.rs:410:5
[INFO] [stdout]     |
[INFO] [stdout] 410 |     pos: usize,
[INFO] [stdout]     |     ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling gui v0.1.0 (/opt/rustwide/workdir/gui)
[INFO] [stdout] warning: fields `halfmove_clock` and `fullmove_clock` are never read
[INFO] [stdout]    --> ollejer-chess/src/board.rs:157:5
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub struct OneDBoard {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 157 |     halfmove_clock: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 158 |     fullmove_clock: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OneDBoard` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_piece_UNSAFE` should have a snake case name
[INFO] [stdout]    --> ollejer-chess/src/board.rs:400:12
[INFO] [stdout]     |
[INFO] [stdout] 400 |     pub fn set_piece_UNSAFE(&mut self, position: usize, piece: Option<Piece>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `set_piece_unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `new_from_FEN` should have a snake case name
[INFO] [stdout]    --> ollejer-chess/src/board.rs:418:12
[INFO] [stdout]     |
[INFO] [stdout] 418 |     pub fn new_from_FEN(fen: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^ help: convert the identifier to snake case: `new_from_fen`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> ollejer-chess/src/board.rs:456:30
[INFO] [stdout]     |
[INFO] [stdout] 456 |             Err(e) => panic!(e),
[INFO] [stdout]     |                              ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 456 |             Err(e) => panic!("{}", e),
[INFO] [stdout]     |                              +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 456 -             Err(e) => panic!(e),
[INFO] [stdout] 456 +             Err(e) => std::panic::panic_any(e),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> ollejer-chess/src/board.rs:462:30
[INFO] [stdout]     |
[INFO] [stdout] 462 |             Err(e) => panic!(e),
[INFO] [stdout]     |                              ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 462 |             Err(e) => panic!("{}", e),
[INFO] [stdout]     |                              +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 462 -             Err(e) => panic!(e),
[INFO] [stdout] 462 +             Err(e) => std::panic::panic_any(e),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `largest` is never read
[INFO] [stdout]    --> ollejer-chess/src/rules.rs:271:17
[INFO] [stdout]     |
[INFO] [stdout] 271 |         let mut largest = 0;
[INFO] [stdout]     |                 ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `this_knight_color`
[INFO] [stdout]   --> ollejer-chess/src/rules.rs:86:17
[INFO] [stdout]    |
[INFO] [stdout] 86 |                 this_knight_color if this_piece_color == target_piece.color => continue,
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_this_knight_color`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `turn`
[INFO] [stdout]    --> ollejer-chess/src/board.rs:425:13
[INFO] [stdout]     |
[INFO] [stdout] 425 |         let turn = match turn {
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_turn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `smallest` is never read
[INFO] [stdout]    --> ollejer-chess/src/rules.rs:272:17
[INFO] [stdout]     |
[INFO] [stdout] 272 |         let mut smallest = 0;
[INFO] [stdout]     |                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rook`
[INFO] [stdout]    --> ollejer-chess/src/board.rs:210:9
[INFO] [stdout]     |
[INFO] [stdout] 210 |         rook: Piece,
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_rook`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `destination`
[INFO] [stdout]    --> ollejer-chess/src/board.rs:212:9
[INFO] [stdout]     |
[INFO] [stdout] 212 |         destination: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_destination`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `result` is assigned to, but never used
[INFO] [stdout]    --> ollejer-chess/src/board.rs:356:13
[INFO] [stdout]     |
[INFO] [stdout] 356 |         let result: Result<(), &'static str>;
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_result` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]    --> ollejer-chess/src/rules.rs:410:5
[INFO] [stdout]     |
[INFO] [stdout] 410 |     pos: usize,
[INFO] [stdout]     |     ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `result` is never read
[INFO] [stdout]    --> ollejer-chess/src/board.rs:358:13
[INFO] [stdout]     |
[INFO] [stdout] 358 |             result = match read_promotion() {
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `result` is never read
[INFO] [stdout]    --> ollejer-chess/src/board.rs:372:13
[INFO] [stdout]     |
[INFO] [stdout] 372 |             result = match read_promotion() {
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `result` is never read
[INFO] [stdout]    --> ollejer-chess/src/board.rs:386:13
[INFO] [stdout]     |
[INFO] [stdout] 386 |             result = Ok(());
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> ollejer-chess/src/rules.rs:337:9
[INFO] [stdout]     |
[INFO] [stdout] 337 |         _ => panic!("Error! Cant get move from unknown piece."), //WARNING WTF IS THIS GHOST
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> ollejer-chess/src/rules.rs:337:9
[INFO] [stdout]     |
[INFO] [stdout] 331 |         pieces::Pieces::Knight => validate_knight_moves(one_d_board, moves, position),
[INFO] [stdout]     |         ---------------------- matches some of the same values
[INFO] [stdout] 332 |         pieces::Pieces::Queen => validate_queen_moves(one_d_board, moves, position),
[INFO] [stdout]     |         --------------------- matches some of the same values
[INFO] [stdout] 333 |         pieces::Pieces::Rook => validate_rook_moves(one_d_board, moves, position),
[INFO] [stdout]     |         -------------------- matches some of the same values
[INFO] [stdout] 334 |         pieces::Pieces::Bishop => validate_bishop_moves(one_d_board, moves, position),
[INFO] [stdout]     |         ---------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 337 |         _ => panic!("Error! Cant get move from unknown piece."), //WARNING WTF IS THIS GHOST
[INFO] [stdout]     |         ^ ...and 2 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> ollejer-chess/src/movement.rs:193:9
[INFO] [stdout]     |
[INFO] [stdout] 193 |         _ => panic!("Error! Cant get move from unknown piece."),
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> ollejer-chess/src/movement.rs:193:9
[INFO] [stdout]     |
[INFO] [stdout] 187 |         Knight => get_knight_moves(position),
[INFO] [stdout]     |         ------ matches some of the same values
[INFO] [stdout] 188 |         Bishop => get_bishop_moves(position),
[INFO] [stdout]     |         ------ matches some of the same values
[INFO] [stdout] 189 |         Rook => get_rook_moves(position),
[INFO] [stdout]     |         ---- matches some of the same values
[INFO] [stdout] 190 |         Queen => get_queen_moves(position),
[INFO] [stdout]     |         ----- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 193 |         _ => panic!("Error! Cant get move from unknown piece."),
[INFO] [stdout]     |         ^ ...and 2 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `halfmove_clock` and `fullmove_clock` are never read
[INFO] [stdout]    --> ollejer-chess/src/board.rs:157:5
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub struct OneDBoard {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 157 |     halfmove_clock: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 158 |     fullmove_clock: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OneDBoard` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_piece_UNSAFE` should have a snake case name
[INFO] [stdout]    --> ollejer-chess/src/board.rs:400:12
[INFO] [stdout]     |
[INFO] [stdout] 400 |     pub fn set_piece_UNSAFE(&mut self, position: usize, piece: Option<Piece>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `set_piece_unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `new_from_FEN` should have a snake case name
[INFO] [stdout]    --> ollejer-chess/src/board.rs:418:12
[INFO] [stdout]     |
[INFO] [stdout] 418 |     pub fn new_from_FEN(fen: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^ help: convert the identifier to snake case: `new_from_fen`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> ollejer-chess/src/board.rs:456:30
[INFO] [stdout]     |
[INFO] [stdout] 456 |             Err(e) => panic!(e),
[INFO] [stdout]     |                              ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 456 |             Err(e) => panic!("{}", e),
[INFO] [stdout]     |                              +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 456 -             Err(e) => panic!(e),
[INFO] [stdout] 456 +             Err(e) => std::panic::panic_any(e),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> ollejer-chess/src/board.rs:462:30
[INFO] [stdout]     |
[INFO] [stdout] 462 |             Err(e) => panic!(e),
[INFO] [stdout]     |                              ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 462 |             Err(e) => panic!("{}", e),
[INFO] [stdout]     |                              +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 462 -             Err(e) => panic!(e),
[INFO] [stdout] 462 +             Err(e) => std::panic::panic_any(e),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.39s
[INFO] running `Command { std: "docker" "inspect" "31abee0d1e90baaf685162bcb1d94f5bd75c94c2855de29420b490927ea09048", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "31abee0d1e90baaf685162bcb1d94f5bd75c94c2855de29420b490927ea09048", kill_on_drop: false }`
[INFO] [stdout] 31abee0d1e90baaf685162bcb1d94f5bd75c94c2855de29420b490927ea09048
