[INFO] updating cached repository mkyl/cicada [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/mkyl/cicada [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/mkyl/cicada" "work/ex/clippy-test-run/sources/stable/gh/mkyl/cicada"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/mkyl/cicada'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/mkyl/cicada" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mkyl/cicada"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mkyl/cicada'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 4519dedcdf37ee0a364dfd73861c2475ed2f2c33 [INFO] sha for GitHub repo mkyl/cicada: 4519dedcdf37ee0a364dfd73861c2475ed2f2c33 [INFO] validating manifest of mkyl/cicada on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of mkyl/cicada on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing mkyl/cicada [INFO] finished frobbing mkyl/cicada [INFO] frobbed toml for mkyl/cicada written to work/ex/clippy-test-run/sources/stable/gh/mkyl/cicada/Cargo.toml [INFO] started frobbing mkyl/cicada [INFO] finished frobbing mkyl/cicada [INFO] frobbed toml for mkyl/cicada written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mkyl/cicada/Cargo.toml [INFO] crate mkyl/cicada has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting mkyl/cicada against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-3/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mkyl/cicada:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dclippy::into_iter_on_array" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 135f1420b00c8eeb26768c09a4aacf4a87f961997822f4f703354d0d9eab16cb [INFO] running `"docker" "start" "-a" "135f1420b00c8eeb26768c09a4aacf4a87f961997822f4f703354d0d9eab16cb"` [INFO] [stderr] Checking cicada v0.0.1 (/opt/crater/workdir) [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/board.rs:220:9 [INFO] [stderr] | [INFO] [stderr] 220 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::println_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/board.rs:220:9 [INFO] [stderr] | [INFO] [stderr] 220 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::println_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: unused import: `board::chessboard` [INFO] [stderr] --> src/zobrist.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use board::chessboard; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/moves.rs:158:25 [INFO] [stderr] | [INFO] [stderr] 158 | / if cboard.castling as u8 & board::castling_bits::K_cp as u8 != 0 { [INFO] [stderr] 159 | | if cboard.layout[board::square::F1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 160 | | if cboard.layout[board::square::G1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 161 | | if !square::attacked(board::square::E1 as u8, board::black, cboard) && [INFO] [stderr] ... | [INFO] [stderr] 167 | | } [INFO] [stderr] 168 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 158 | if cboard.castling as u8 & board::castling_bits::K_cp as u8 != 0 && cboard.layout[board::square::F1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 159 | if cboard.layout[board::square::G1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 160 | if !square::attacked(board::square::E1 as u8, board::black, cboard) && [INFO] [stderr] 161 | !square::attacked(board::square::F1 as u8, board::black, cboard) { [INFO] [stderr] 162 | add_move(_move::new(piece, board::square::G1 as u8, 0, 0, [INFO] [stderr] 163 | false, false, true, 0), list); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/moves.rs:159:29 [INFO] [stderr] | [INFO] [stderr] 159 | / if cboard.layout[board::square::F1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 160 | | if cboard.layout[board::square::G1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 161 | | if !square::attacked(board::square::E1 as u8, board::black, cboard) && [INFO] [stderr] 162 | | !square::attacked(board::square::F1 as u8, board::black, cboard) { [INFO] [stderr] ... | [INFO] [stderr] 166 | | } [INFO] [stderr] 167 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 159 | if cboard.layout[board::square::F1 as usize] == board::piece::Empty as u8 && cboard.layout[board::square::G1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 160 | if !square::attacked(board::square::E1 as u8, board::black, cboard) && [INFO] [stderr] 161 | !square::attacked(board::square::F1 as u8, board::black, cboard) { [INFO] [stderr] 162 | add_move(_move::new(piece, board::square::G1 as u8, 0, 0, [INFO] [stderr] 163 | false, false, true, 0), list); [INFO] [stderr] 164 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/moves.rs:160:33 [INFO] [stderr] | [INFO] [stderr] 160 | / if cboard.layout[board::square::G1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 161 | | if !square::attacked(board::square::E1 as u8, board::black, cboard) && [INFO] [stderr] 162 | | !square::attacked(board::square::F1 as u8, board::black, cboard) { [INFO] [stderr] 163 | | add_move(_move::new(piece, board::square::G1 as u8, 0, 0, [INFO] [stderr] 164 | | false, false, true, 0), list); [INFO] [stderr] 165 | | } [INFO] [stderr] 166 | | } [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 160 | if cboard.layout[board::square::G1 as usize] == board::piece::Empty as u8 && !square::attacked(board::square::E1 as u8, board::black, cboard) && [INFO] [stderr] 161 | !square::attacked(board::square::F1 as u8, board::black, cboard) { [INFO] [stderr] 162 | add_move(_move::new(piece, board::square::G1 as u8, 0, 0, [INFO] [stderr] 163 | false, false, true, 0), list); [INFO] [stderr] 164 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/moves.rs:169:25 [INFO] [stderr] | [INFO] [stderr] 169 | / if cboard.castling as u8 & board::castling_bits::Q_cp as u8 != 0 { [INFO] [stderr] 170 | | if cboard.layout[board::square::D1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 171 | | if cboard.layout[board::square::C1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 172 | | if cboard.layout[board::square::B1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] ... | [INFO] [stderr] 180 | | } [INFO] [stderr] 181 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 169 | if cboard.castling as u8 & board::castling_bits::Q_cp as u8 != 0 && cboard.layout[board::square::D1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 170 | if cboard.layout[board::square::C1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 171 | if cboard.layout[board::square::B1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 172 | if !square::attacked(board::square::E1 as u8, board::black, cboard) && [INFO] [stderr] 173 | !square::attacked(board::square::D1 as u8, board::black, cboard) { [INFO] [stderr] 174 | add_move(_move::new(piece, board::square::C1 as u8, 0, 0, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/moves.rs:170:29 [INFO] [stderr] | [INFO] [stderr] 170 | / if cboard.layout[board::square::D1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 171 | | if cboard.layout[board::square::C1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 172 | | if cboard.layout[board::square::B1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 173 | | if !square::attacked(board::square::E1 as u8, board::black, cboard) && [INFO] [stderr] ... | [INFO] [stderr] 179 | | } [INFO] [stderr] 180 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 170 | if cboard.layout[board::square::D1 as usize] == board::piece::Empty as u8 && cboard.layout[board::square::C1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 171 | if cboard.layout[board::square::B1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 172 | if !square::attacked(board::square::E1 as u8, board::black, cboard) && [INFO] [stderr] 173 | !square::attacked(board::square::D1 as u8, board::black, cboard) { [INFO] [stderr] 174 | add_move(_move::new(piece, board::square::C1 as u8, 0, 0, [INFO] [stderr] 175 | false, false, true, 0), list); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/moves.rs:171:33 [INFO] [stderr] | [INFO] [stderr] 171 | / if cboard.layout[board::square::C1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 172 | | if cboard.layout[board::square::B1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 173 | | if !square::attacked(board::square::E1 as u8, board::black, cboard) && [INFO] [stderr] 174 | | !square::attacked(board::square::D1 as u8, board::black, cboard) { [INFO] [stderr] ... | [INFO] [stderr] 178 | | } [INFO] [stderr] 179 | | } [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 171 | if cboard.layout[board::square::C1 as usize] == board::piece::Empty as u8 && cboard.layout[board::square::B1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 172 | if !square::attacked(board::square::E1 as u8, board::black, cboard) && [INFO] [stderr] 173 | !square::attacked(board::square::D1 as u8, board::black, cboard) { [INFO] [stderr] 174 | add_move(_move::new(piece, board::square::C1 as u8, 0, 0, [INFO] [stderr] 175 | false, false, true, 0), list); [INFO] [stderr] 176 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/moves.rs:172:37 [INFO] [stderr] | [INFO] [stderr] 172 | / if cboard.layout[board::square::B1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 173 | | if !square::attacked(board::square::E1 as u8, board::black, cboard) && [INFO] [stderr] 174 | | !square::attacked(board::square::D1 as u8, board::black, cboard) { [INFO] [stderr] 175 | | add_move(_move::new(piece, board::square::C1 as u8, 0, 0, [INFO] [stderr] 176 | | false, false, true, 0), list); [INFO] [stderr] 177 | | } [INFO] [stderr] 178 | | } [INFO] [stderr] | |_____________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 172 | if cboard.layout[board::square::B1 as usize] == board::piece::Empty as u8 && !square::attacked(board::square::E1 as u8, board::black, cboard) && [INFO] [stderr] 173 | !square::attacked(board::square::D1 as u8, board::black, cboard) { [INFO] [stderr] 174 | add_move(_move::new(piece, board::square::C1 as u8, 0, 0, [INFO] [stderr] 175 | false, false, true, 0), list); [INFO] [stderr] 176 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/moves.rs:183:25 [INFO] [stderr] | [INFO] [stderr] 183 | / if cboard.castling as u8 & board::castling_bits::k_cp as u8 != 0 { [INFO] [stderr] 184 | | if cboard.layout[board::square::F8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 185 | | if cboard.layout[board::square::G8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 186 | | if !square::attacked(board::square::E8 as u8, board::white, cboard) && [INFO] [stderr] ... | [INFO] [stderr] 192 | | } [INFO] [stderr] 193 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 183 | if cboard.castling as u8 & board::castling_bits::k_cp as u8 != 0 && cboard.layout[board::square::F8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 184 | if cboard.layout[board::square::G8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 185 | if !square::attacked(board::square::E8 as u8, board::white, cboard) && [INFO] [stderr] 186 | !square::attacked(board::square::F8 as u8, board::white, cboard) { [INFO] [stderr] 187 | add_move(_move::new(piece, board::square::G8 as u8, 0, 0, [INFO] [stderr] 188 | false, false, true, 0), list); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/moves.rs:184:29 [INFO] [stderr] | [INFO] [stderr] 184 | / if cboard.layout[board::square::F8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 185 | | if cboard.layout[board::square::G8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 186 | | if !square::attacked(board::square::E8 as u8, board::white, cboard) && [INFO] [stderr] 187 | | !square::attacked(board::square::F8 as u8, board::white, cboard) { [INFO] [stderr] ... | [INFO] [stderr] 191 | | } [INFO] [stderr] 192 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 184 | if cboard.layout[board::square::F8 as usize] == board::piece::Empty as u8 && cboard.layout[board::square::G8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 185 | if !square::attacked(board::square::E8 as u8, board::white, cboard) && [INFO] [stderr] 186 | !square::attacked(board::square::F8 as u8, board::white, cboard) { [INFO] [stderr] 187 | add_move(_move::new(piece, board::square::G8 as u8, 0, 0, [INFO] [stderr] 188 | false, false, true, 0), list); [INFO] [stderr] 189 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/moves.rs:185:33 [INFO] [stderr] | [INFO] [stderr] 185 | / if cboard.layout[board::square::G8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 186 | | if !square::attacked(board::square::E8 as u8, board::white, cboard) && [INFO] [stderr] 187 | | !square::attacked(board::square::F8 as u8, board::white, cboard) { [INFO] [stderr] 188 | | add_move(_move::new(piece, board::square::G8 as u8, 0, 0, [INFO] [stderr] 189 | | false, false, true, 0), list); [INFO] [stderr] 190 | | } [INFO] [stderr] 191 | | } [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 185 | if cboard.layout[board::square::G8 as usize] == board::piece::Empty as u8 && !square::attacked(board::square::E8 as u8, board::white, cboard) && [INFO] [stderr] 186 | !square::attacked(board::square::F8 as u8, board::white, cboard) { [INFO] [stderr] 187 | add_move(_move::new(piece, board::square::G8 as u8, 0, 0, [INFO] [stderr] 188 | false, false, true, 0), list); [INFO] [stderr] 189 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/moves.rs:194:25 [INFO] [stderr] | [INFO] [stderr] 194 | / if cboard.castling as u8 & board::castling_bits::q_cp as u8 != 0 { [INFO] [stderr] 195 | | if cboard.layout[board::square::D8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 196 | | if cboard.layout[board::square::C8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 197 | | if cboard.layout[board::square::B8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] ... | [INFO] [stderr] 205 | | } [INFO] [stderr] 206 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 194 | if cboard.castling as u8 & board::castling_bits::q_cp as u8 != 0 && cboard.layout[board::square::D8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 195 | if cboard.layout[board::square::C8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 196 | if cboard.layout[board::square::B8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 197 | if !square::attacked(board::square::E8 as u8, board::white, cboard) && [INFO] [stderr] 198 | !square::attacked(board::square::D8 as u8, board::white, cboard) { [INFO] [stderr] 199 | add_move(_move::new(piece, board::square::C8 as u8, 0, 0, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/moves.rs:195:29 [INFO] [stderr] | [INFO] [stderr] 195 | / if cboard.layout[board::square::D8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 196 | | if cboard.layout[board::square::C8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 197 | | if cboard.layout[board::square::B8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 198 | | if !square::attacked(board::square::E8 as u8, board::white, cboard) && [INFO] [stderr] ... | [INFO] [stderr] 204 | | } [INFO] [stderr] 205 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 195 | if cboard.layout[board::square::D8 as usize] == board::piece::Empty as u8 && cboard.layout[board::square::C8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 196 | if cboard.layout[board::square::B8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 197 | if !square::attacked(board::square::E8 as u8, board::white, cboard) && [INFO] [stderr] 198 | !square::attacked(board::square::D8 as u8, board::white, cboard) { [INFO] [stderr] 199 | add_move(_move::new(piece, board::square::C8 as u8, 0, 0, [INFO] [stderr] 200 | false, false, true, 0), list); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/moves.rs:196:33 [INFO] [stderr] | [INFO] [stderr] 196 | / if cboard.layout[board::square::C8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 197 | | if cboard.layout[board::square::B8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 198 | | if !square::attacked(board::square::E8 as u8, board::white, cboard) && [INFO] [stderr] 199 | | !square::attacked(board::square::D8 as u8, board::white, cboard) { [INFO] [stderr] ... | [INFO] [stderr] 203 | | } [INFO] [stderr] 204 | | } [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 196 | if cboard.layout[board::square::C8 as usize] == board::piece::Empty as u8 && cboard.layout[board::square::B8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 197 | if !square::attacked(board::square::E8 as u8, board::white, cboard) && [INFO] [stderr] 198 | !square::attacked(board::square::D8 as u8, board::white, cboard) { [INFO] [stderr] 199 | add_move(_move::new(piece, board::square::C8 as u8, 0, 0, [INFO] [stderr] 200 | false, false, true, 0), list); [INFO] [stderr] 201 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/moves.rs:197:37 [INFO] [stderr] | [INFO] [stderr] 197 | / if cboard.layout[board::square::B8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 198 | | if !square::attacked(board::square::E8 as u8, board::white, cboard) && [INFO] [stderr] 199 | | !square::attacked(board::square::D8 as u8, board::white, cboard) { [INFO] [stderr] 200 | | add_move(_move::new(piece, board::square::C8 as u8, 0, 0, [INFO] [stderr] 201 | | false, false, true, 0), list); [INFO] [stderr] 202 | | } [INFO] [stderr] 203 | | } [INFO] [stderr] | |_____________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 197 | if cboard.layout[board::square::B8 as usize] == board::piece::Empty as u8 && !square::attacked(board::square::E8 as u8, board::white, cboard) && [INFO] [stderr] 198 | !square::attacked(board::square::D8 as u8, board::white, cboard) { [INFO] [stderr] 199 | add_move(_move::new(piece, board::square::C8 as u8, 0, 0, [INFO] [stderr] 200 | false, false, true, 0), list); [INFO] [stderr] 201 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/moves.rs:318:32 [INFO] [stderr] | [INFO] [stderr] 318 | } else { [INFO] [stderr] | ________________________________^ [INFO] [stderr] 319 | | if piece / 10 == 3 { [INFO] [stderr] 320 | | add_move(_move::new(piece, piece.wrapping_add(dir as u8), 0, [INFO] [stderr] 321 | | board::piece::q as u8, false, false, false,0), list); [INFO] [stderr] ... | [INFO] [stderr] 334 | | } [INFO] [stderr] 335 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 318 | } else if piece / 10 == 3 { [INFO] [stderr] 319 | add_move(_move::new(piece, piece.wrapping_add(dir as u8), 0, [INFO] [stderr] 320 | board::piece::q as u8, false, false, false,0), list); [INFO] [stderr] 321 | add_move(_move::new(piece, piece.wrapping_add(dir as u8), 0, [INFO] [stderr] 322 | board::piece::r as u8, false, false, false,0), list); [INFO] [stderr] 323 | add_move(_move::new(piece, piece.wrapping_add(dir as u8), 0, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/think.rs:8:31 [INFO] [stderr] | [INFO] [stderr] 8 | const hash_map_size : usize = 0x100000; [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0010_0000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/think.rs:9:19 [INFO] [stderr] | [INFO] [stderr] 9 | const inf : i32 = 100000; [INFO] [stderr] | ^^^^^^ help: consider: `100_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unused import: `board::chessboard` [INFO] [stderr] --> src/zobrist.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use board::chessboard; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/moves.rs:158:25 [INFO] [stderr] | [INFO] [stderr] 158 | / if cboard.castling as u8 & board::castling_bits::K_cp as u8 != 0 { [INFO] [stderr] 159 | | if cboard.layout[board::square::F1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 160 | | if cboard.layout[board::square::G1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 161 | | if !square::attacked(board::square::E1 as u8, board::black, cboard) && [INFO] [stderr] ... | [INFO] [stderr] 167 | | } [INFO] [stderr] 168 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 158 | if cboard.castling as u8 & board::castling_bits::K_cp as u8 != 0 && cboard.layout[board::square::F1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 159 | if cboard.layout[board::square::G1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 160 | if !square::attacked(board::square::E1 as u8, board::black, cboard) && [INFO] [stderr] 161 | !square::attacked(board::square::F1 as u8, board::black, cboard) { [INFO] [stderr] 162 | add_move(_move::new(piece, board::square::G1 as u8, 0, 0, [INFO] [stderr] 163 | false, false, true, 0), list); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/moves.rs:159:29 [INFO] [stderr] | [INFO] [stderr] 159 | / if cboard.layout[board::square::F1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 160 | | if cboard.layout[board::square::G1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 161 | | if !square::attacked(board::square::E1 as u8, board::black, cboard) && [INFO] [stderr] 162 | | !square::attacked(board::square::F1 as u8, board::black, cboard) { [INFO] [stderr] ... | [INFO] [stderr] 166 | | } [INFO] [stderr] 167 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 159 | if cboard.layout[board::square::F1 as usize] == board::piece::Empty as u8 && cboard.layout[board::square::G1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 160 | if !square::attacked(board::square::E1 as u8, board::black, cboard) && [INFO] [stderr] 161 | !square::attacked(board::square::F1 as u8, board::black, cboard) { [INFO] [stderr] 162 | add_move(_move::new(piece, board::square::G1 as u8, 0, 0, [INFO] [stderr] 163 | false, false, true, 0), list); [INFO] [stderr] 164 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/moves.rs:160:33 [INFO] [stderr] | [INFO] [stderr] 160 | / if cboard.layout[board::square::G1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 161 | | if !square::attacked(board::square::E1 as u8, board::black, cboard) && [INFO] [stderr] 162 | | !square::attacked(board::square::F1 as u8, board::black, cboard) { [INFO] [stderr] 163 | | add_move(_move::new(piece, board::square::G1 as u8, 0, 0, [INFO] [stderr] 164 | | false, false, true, 0), list); [INFO] [stderr] 165 | | } [INFO] [stderr] 166 | | } [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 160 | if cboard.layout[board::square::G1 as usize] == board::piece::Empty as u8 && !square::attacked(board::square::E1 as u8, board::black, cboard) && [INFO] [stderr] 161 | !square::attacked(board::square::F1 as u8, board::black, cboard) { [INFO] [stderr] 162 | add_move(_move::new(piece, board::square::G1 as u8, 0, 0, [INFO] [stderr] 163 | false, false, true, 0), list); [INFO] [stderr] 164 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/moves.rs:169:25 [INFO] [stderr] | [INFO] [stderr] 169 | / if cboard.castling as u8 & board::castling_bits::Q_cp as u8 != 0 { [INFO] [stderr] 170 | | if cboard.layout[board::square::D1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 171 | | if cboard.layout[board::square::C1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 172 | | if cboard.layout[board::square::B1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] ... | [INFO] [stderr] 180 | | } [INFO] [stderr] 181 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 169 | if cboard.castling as u8 & board::castling_bits::Q_cp as u8 != 0 && cboard.layout[board::square::D1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 170 | if cboard.layout[board::square::C1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 171 | if cboard.layout[board::square::B1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 172 | if !square::attacked(board::square::E1 as u8, board::black, cboard) && [INFO] [stderr] 173 | !square::attacked(board::square::D1 as u8, board::black, cboard) { [INFO] [stderr] 174 | add_move(_move::new(piece, board::square::C1 as u8, 0, 0, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/moves.rs:170:29 [INFO] [stderr] | [INFO] [stderr] 170 | / if cboard.layout[board::square::D1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 171 | | if cboard.layout[board::square::C1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 172 | | if cboard.layout[board::square::B1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 173 | | if !square::attacked(board::square::E1 as u8, board::black, cboard) && [INFO] [stderr] ... | [INFO] [stderr] 179 | | } [INFO] [stderr] 180 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 170 | if cboard.layout[board::square::D1 as usize] == board::piece::Empty as u8 && cboard.layout[board::square::C1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 171 | if cboard.layout[board::square::B1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 172 | if !square::attacked(board::square::E1 as u8, board::black, cboard) && [INFO] [stderr] 173 | !square::attacked(board::square::D1 as u8, board::black, cboard) { [INFO] [stderr] 174 | add_move(_move::new(piece, board::square::C1 as u8, 0, 0, [INFO] [stderr] 175 | false, false, true, 0), list); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/moves.rs:171:33 [INFO] [stderr] | [INFO] [stderr] 171 | / if cboard.layout[board::square::C1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 172 | | if cboard.layout[board::square::B1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 173 | | if !square::attacked(board::square::E1 as u8, board::black, cboard) && [INFO] [stderr] 174 | | !square::attacked(board::square::D1 as u8, board::black, cboard) { [INFO] [stderr] ... | [INFO] [stderr] 178 | | } [INFO] [stderr] 179 | | } [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 171 | if cboard.layout[board::square::C1 as usize] == board::piece::Empty as u8 && cboard.layout[board::square::B1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 172 | if !square::attacked(board::square::E1 as u8, board::black, cboard) && [INFO] [stderr] 173 | !square::attacked(board::square::D1 as u8, board::black, cboard) { [INFO] [stderr] 174 | add_move(_move::new(piece, board::square::C1 as u8, 0, 0, [INFO] [stderr] 175 | false, false, true, 0), list); [INFO] [stderr] 176 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/moves.rs:172:37 [INFO] [stderr] | [INFO] [stderr] 172 | / if cboard.layout[board::square::B1 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 173 | | if !square::attacked(board::square::E1 as u8, board::black, cboard) && [INFO] [stderr] 174 | | !square::attacked(board::square::D1 as u8, board::black, cboard) { [INFO] [stderr] 175 | | add_move(_move::new(piece, board::square::C1 as u8, 0, 0, [INFO] [stderr] 176 | | false, false, true, 0), list); [INFO] [stderr] 177 | | } [INFO] [stderr] 178 | | } [INFO] [stderr] | |_____________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 172 | if cboard.layout[board::square::B1 as usize] == board::piece::Empty as u8 && !square::attacked(board::square::E1 as u8, board::black, cboard) && [INFO] [stderr] 173 | !square::attacked(board::square::D1 as u8, board::black, cboard) { [INFO] [stderr] 174 | add_move(_move::new(piece, board::square::C1 as u8, 0, 0, [INFO] [stderr] 175 | false, false, true, 0), list); [INFO] [stderr] 176 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/moves.rs:183:25 [INFO] [stderr] | [INFO] [stderr] 183 | / if cboard.castling as u8 & board::castling_bits::k_cp as u8 != 0 { [INFO] [stderr] 184 | | if cboard.layout[board::square::F8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 185 | | if cboard.layout[board::square::G8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 186 | | if !square::attacked(board::square::E8 as u8, board::white, cboard) && [INFO] [stderr] ... | [INFO] [stderr] 192 | | } [INFO] [stderr] 193 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 183 | if cboard.castling as u8 & board::castling_bits::k_cp as u8 != 0 && cboard.layout[board::square::F8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 184 | if cboard.layout[board::square::G8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 185 | if !square::attacked(board::square::E8 as u8, board::white, cboard) && [INFO] [stderr] 186 | !square::attacked(board::square::F8 as u8, board::white, cboard) { [INFO] [stderr] 187 | add_move(_move::new(piece, board::square::G8 as u8, 0, 0, [INFO] [stderr] 188 | false, false, true, 0), list); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/moves.rs:184:29 [INFO] [stderr] | [INFO] [stderr] 184 | / if cboard.layout[board::square::F8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 185 | | if cboard.layout[board::square::G8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 186 | | if !square::attacked(board::square::E8 as u8, board::white, cboard) && [INFO] [stderr] 187 | | !square::attacked(board::square::F8 as u8, board::white, cboard) { [INFO] [stderr] ... | [INFO] [stderr] 191 | | } [INFO] [stderr] 192 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 184 | if cboard.layout[board::square::F8 as usize] == board::piece::Empty as u8 && cboard.layout[board::square::G8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 185 | if !square::attacked(board::square::E8 as u8, board::white, cboard) && [INFO] [stderr] 186 | !square::attacked(board::square::F8 as u8, board::white, cboard) { [INFO] [stderr] 187 | add_move(_move::new(piece, board::square::G8 as u8, 0, 0, [INFO] [stderr] 188 | false, false, true, 0), list); [INFO] [stderr] 189 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/moves.rs:185:33 [INFO] [stderr] | [INFO] [stderr] 185 | / if cboard.layout[board::square::G8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 186 | | if !square::attacked(board::square::E8 as u8, board::white, cboard) && [INFO] [stderr] 187 | | !square::attacked(board::square::F8 as u8, board::white, cboard) { [INFO] [stderr] 188 | | add_move(_move::new(piece, board::square::G8 as u8, 0, 0, [INFO] [stderr] 189 | | false, false, true, 0), list); [INFO] [stderr] 190 | | } [INFO] [stderr] 191 | | } [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 185 | if cboard.layout[board::square::G8 as usize] == board::piece::Empty as u8 && !square::attacked(board::square::E8 as u8, board::white, cboard) && [INFO] [stderr] 186 | !square::attacked(board::square::F8 as u8, board::white, cboard) { [INFO] [stderr] 187 | add_move(_move::new(piece, board::square::G8 as u8, 0, 0, [INFO] [stderr] 188 | false, false, true, 0), list); [INFO] [stderr] 189 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/moves.rs:194:25 [INFO] [stderr] | [INFO] [stderr] 194 | / if cboard.castling as u8 & board::castling_bits::q_cp as u8 != 0 { [INFO] [stderr] 195 | | if cboard.layout[board::square::D8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 196 | | if cboard.layout[board::square::C8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 197 | | if cboard.layout[board::square::B8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] ... | [INFO] [stderr] 205 | | } [INFO] [stderr] 206 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 194 | if cboard.castling as u8 & board::castling_bits::q_cp as u8 != 0 && cboard.layout[board::square::D8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 195 | if cboard.layout[board::square::C8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 196 | if cboard.layout[board::square::B8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 197 | if !square::attacked(board::square::E8 as u8, board::white, cboard) && [INFO] [stderr] 198 | !square::attacked(board::square::D8 as u8, board::white, cboard) { [INFO] [stderr] 199 | add_move(_move::new(piece, board::square::C8 as u8, 0, 0, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/moves.rs:195:29 [INFO] [stderr] | [INFO] [stderr] 195 | / if cboard.layout[board::square::D8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 196 | | if cboard.layout[board::square::C8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 197 | | if cboard.layout[board::square::B8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 198 | | if !square::attacked(board::square::E8 as u8, board::white, cboard) && [INFO] [stderr] ... | [INFO] [stderr] 204 | | } [INFO] [stderr] 205 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 195 | if cboard.layout[board::square::D8 as usize] == board::piece::Empty as u8 && cboard.layout[board::square::C8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 196 | if cboard.layout[board::square::B8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 197 | if !square::attacked(board::square::E8 as u8, board::white, cboard) && [INFO] [stderr] 198 | !square::attacked(board::square::D8 as u8, board::white, cboard) { [INFO] [stderr] 199 | add_move(_move::new(piece, board::square::C8 as u8, 0, 0, [INFO] [stderr] 200 | false, false, true, 0), list); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/moves.rs:196:33 [INFO] [stderr] | [INFO] [stderr] 196 | / if cboard.layout[board::square::C8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 197 | | if cboard.layout[board::square::B8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 198 | | if !square::attacked(board::square::E8 as u8, board::white, cboard) && [INFO] [stderr] 199 | | !square::attacked(board::square::D8 as u8, board::white, cboard) { [INFO] [stderr] ... | [INFO] [stderr] 203 | | } [INFO] [stderr] 204 | | } [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 196 | if cboard.layout[board::square::C8 as usize] == board::piece::Empty as u8 && cboard.layout[board::square::B8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 197 | if !square::attacked(board::square::E8 as u8, board::white, cboard) && [INFO] [stderr] 198 | !square::attacked(board::square::D8 as u8, board::white, cboard) { [INFO] [stderr] 199 | add_move(_move::new(piece, board::square::C8 as u8, 0, 0, [INFO] [stderr] 200 | false, false, true, 0), list); [INFO] [stderr] 201 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/moves.rs:197:37 [INFO] [stderr] | [INFO] [stderr] 197 | / if cboard.layout[board::square::B8 as usize] == board::piece::Empty as u8 { [INFO] [stderr] 198 | | if !square::attacked(board::square::E8 as u8, board::white, cboard) && [INFO] [stderr] 199 | | !square::attacked(board::square::D8 as u8, board::white, cboard) { [INFO] [stderr] 200 | | add_move(_move::new(piece, board::square::C8 as u8, 0, 0, [INFO] [stderr] 201 | | false, false, true, 0), list); [INFO] [stderr] 202 | | } [INFO] [stderr] 203 | | } [INFO] [stderr] | |_____________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 197 | if cboard.layout[board::square::B8 as usize] == board::piece::Empty as u8 && !square::attacked(board::square::E8 as u8, board::white, cboard) && [INFO] [stderr] 198 | !square::attacked(board::square::D8 as u8, board::white, cboard) { [INFO] [stderr] 199 | add_move(_move::new(piece, board::square::C8 as u8, 0, 0, [INFO] [stderr] 200 | false, false, true, 0), list); [INFO] [stderr] 201 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/moves.rs:318:32 [INFO] [stderr] | [INFO] [stderr] 318 | } else { [INFO] [stderr] | ________________________________^ [INFO] [stderr] 319 | | if piece / 10 == 3 { [INFO] [stderr] 320 | | add_move(_move::new(piece, piece.wrapping_add(dir as u8), 0, [INFO] [stderr] 321 | | board::piece::q as u8, false, false, false,0), list); [INFO] [stderr] ... | [INFO] [stderr] 334 | | } [INFO] [stderr] 335 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 318 | } else if piece / 10 == 3 { [INFO] [stderr] 319 | add_move(_move::new(piece, piece.wrapping_add(dir as u8), 0, [INFO] [stderr] 320 | board::piece::q as u8, false, false, false,0), list); [INFO] [stderr] 321 | add_move(_move::new(piece, piece.wrapping_add(dir as u8), 0, [INFO] [stderr] 322 | board::piece::r as u8, false, false, false,0), list); [INFO] [stderr] 323 | add_move(_move::new(piece, piece.wrapping_add(dir as u8), 0, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused import: `think` [INFO] [stderr] --> src/sanity.rs:245:9 [INFO] [stderr] | [INFO] [stderr] 245 | use think; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/sanity.rs:253:49 [INFO] [stderr] | [INFO] [stderr] 253 | assert_eq!(perft_test(4, &mut main_board), 182838f64); [INFO] [stderr] | ^^^^^^^^^ help: consider: `182_838f64` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/sanity.rs:256:49 [INFO] [stderr] | [INFO] [stderr] 256 | assert_eq!(perft_test(4, &mut main_board), 197281f64); [INFO] [stderr] | ^^^^^^^^^ help: consider: `197_281f64` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/think.rs:8:31 [INFO] [stderr] | [INFO] [stderr] 8 | const hash_map_size : usize = 0x100000; [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0010_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/think.rs:9:19 [INFO] [stderr] | [INFO] [stderr] 9 | const inf : i32 = 100000; [INFO] [stderr] | ^^^^^^ help: consider: `100_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unused variable: `best` [INFO] [stderr] --> src/think.rs:241:13 [INFO] [stderr] | [INFO] [stderr] 241 | let mut best : u32 = 0; [INFO] [stderr] | ^^^^ help: consider using `_best` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `score` is never read [INFO] [stderr] --> src/think.rs:242:13 [INFO] [stderr] | [INFO] [stderr] 242 | let mut score = 0; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `score` is never read [INFO] [stderr] --> src/think.rs:302:13 [INFO] [stderr] | [INFO] [stderr] 302 | let mut score = -inf; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `stale_alpha` [INFO] [stderr] --> src/think.rs:389:9 [INFO] [stderr] | [INFO] [stderr] 389 | let stale_alpha = alpha; [INFO] [stderr] | ^^^^^^^^^^^ help: consider using `_stale_alpha` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `score` is never read [INFO] [stderr] --> src/think.rs:392:13 [INFO] [stderr] | [INFO] [stderr] 392 | let mut score = -inf; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `best` [INFO] [stderr] --> src/think.rs:241:13 [INFO] [stderr] | [INFO] [stderr] 241 | let mut best : u32 = 0; [INFO] [stderr] | ^^^^ help: consider using `_best` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `score` is never read [INFO] [stderr] --> src/think.rs:242:13 [INFO] [stderr] | [INFO] [stderr] 242 | let mut score = 0; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `score` is never read [INFO] [stderr] --> src/think.rs:302:13 [INFO] [stderr] | [INFO] [stderr] 302 | let mut score = -inf; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `stale_alpha` [INFO] [stderr] --> src/think.rs:389:9 [INFO] [stderr] | [INFO] [stderr] 389 | let stale_alpha = alpha; [INFO] [stderr] | ^^^^^^^^^^^ help: consider using `_stale_alpha` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `score` is never read [INFO] [stderr] --> src/think.rs:392:13 [INFO] [stderr] | [INFO] [stderr] 392 | let mut score = -inf; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `x` [INFO] [stderr] --> src/sanity.rs:100:9 [INFO] [stderr] | [INFO] [stderr] 100 | for x in 0..4 { [INFO] [stderr] | ^ help: consider using `_x` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/think.rs:241:9 [INFO] [stderr] | [INFO] [stderr] 241 | let mut best : u32 = 0; [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/uci.rs:8:9 [INFO] [stderr] | [INFO] [stderr] 8 | let mut input = &mut String::new(); [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `rank_1` [INFO] [stderr] --> src/board.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | rank_1, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `rank_2` [INFO] [stderr] --> src/board.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | rank_2, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `rank_3` [INFO] [stderr] --> src/board.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | rank_3, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `rank_4` [INFO] [stderr] --> src/board.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | rank_4, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `rank_5` [INFO] [stderr] --> src/board.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | rank_5, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `rank_6` [INFO] [stderr] --> src/board.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | rank_6, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `rank_7` [INFO] [stderr] --> src/board.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | rank_7, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `invalid_rank` [INFO] [stderr] --> src/board.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 46 | invalid_rank [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `A1` [INFO] [stderr] --> src/board.rs:58:5 [INFO] [stderr] | [INFO] [stderr] 58 | A1 = 21, B1, C1, D1, E1, F1, G1, H1, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `H1` [INFO] [stderr] --> src/board.rs:58:38 [INFO] [stderr] | [INFO] [stderr] 58 | A1 = 21, B1, C1, D1, E1, F1, G1, H1, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `A2` [INFO] [stderr] --> src/board.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | A2 = 31, B2, C2, D2, E2, F2, G2, H2, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `B2` [INFO] [stderr] --> src/board.rs:59:14 [INFO] [stderr] | [INFO] [stderr] 59 | A2 = 31, B2, C2, D2, E2, F2, G2, H2, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `C2` [INFO] [stderr] --> src/board.rs:59:18 [INFO] [stderr] | [INFO] [stderr] 59 | A2 = 31, B2, C2, D2, E2, F2, G2, H2, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `D2` [INFO] [stderr] --> src/board.rs:59:22 [INFO] [stderr] | [INFO] [stderr] 59 | A2 = 31, B2, C2, D2, E2, F2, G2, H2, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `E2` [INFO] [stderr] --> src/board.rs:59:26 [INFO] [stderr] | [INFO] [stderr] 59 | A2 = 31, B2, C2, D2, E2, F2, G2, H2, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `F2` [INFO] [stderr] --> src/board.rs:59:30 [INFO] [stderr] | [INFO] [stderr] 59 | A2 = 31, B2, C2, D2, E2, F2, G2, H2, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `G2` [INFO] [stderr] --> src/board.rs:59:34 [INFO] [stderr] | [INFO] [stderr] 59 | A2 = 31, B2, C2, D2, E2, F2, G2, H2, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `H2` [INFO] [stderr] --> src/board.rs:59:38 [INFO] [stderr] | [INFO] [stderr] 59 | A2 = 31, B2, C2, D2, E2, F2, G2, H2, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `A3` [INFO] [stderr] --> src/board.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | A3 = 41, B3, C3, D3, E3, F3, G3, H3, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `B3` [INFO] [stderr] --> src/board.rs:60:14 [INFO] [stderr] | [INFO] [stderr] 60 | A3 = 41, B3, C3, D3, E3, F3, G3, H3, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `C3` [INFO] [stderr] --> src/board.rs:60:18 [INFO] [stderr] | [INFO] [stderr] 60 | A3 = 41, B3, C3, D3, E3, F3, G3, H3, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `D3` [INFO] [stderr] --> src/board.rs:60:22 [INFO] [stderr] | [INFO] [stderr] 60 | A3 = 41, B3, C3, D3, E3, F3, G3, H3, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `E3` [INFO] [stderr] --> src/board.rs:60:26 [INFO] [stderr] | [INFO] [stderr] 60 | A3 = 41, B3, C3, D3, E3, F3, G3, H3, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `F3` [INFO] [stderr] --> src/board.rs:60:30 [INFO] [stderr] | [INFO] [stderr] 60 | A3 = 41, B3, C3, D3, E3, F3, G3, H3, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `G3` [INFO] [stderr] --> src/board.rs:60:34 [INFO] [stderr] | [INFO] [stderr] 60 | A3 = 41, B3, C3, D3, E3, F3, G3, H3, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `H3` [INFO] [stderr] --> src/board.rs:60:38 [INFO] [stderr] | [INFO] [stderr] 60 | A3 = 41, B3, C3, D3, E3, F3, G3, H3, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `A4` [INFO] [stderr] --> src/board.rs:61:5 [INFO] [stderr] | [INFO] [stderr] 61 | A4 = 51, B4, C4, D4, E4, F4, G4, H4, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `B4` [INFO] [stderr] --> src/board.rs:61:14 [INFO] [stderr] | [INFO] [stderr] 61 | A4 = 51, B4, C4, D4, E4, F4, G4, H4, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `C4` [INFO] [stderr] --> src/board.rs:61:18 [INFO] [stderr] | [INFO] [stderr] 61 | A4 = 51, B4, C4, D4, E4, F4, G4, H4, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `D4` [INFO] [stderr] --> src/board.rs:61:22 [INFO] [stderr] | [INFO] [stderr] 61 | A4 = 51, B4, C4, D4, E4, F4, G4, H4, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `E4` [INFO] [stderr] --> src/board.rs:61:26 [INFO] [stderr] | [INFO] [stderr] 61 | A4 = 51, B4, C4, D4, E4, F4, G4, H4, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `F4` [INFO] [stderr] --> src/board.rs:61:30 [INFO] [stderr] | [INFO] [stderr] 61 | A4 = 51, B4, C4, D4, E4, F4, G4, H4, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `G4` [INFO] [stderr] --> src/board.rs:61:34 [INFO] [stderr] | [INFO] [stderr] 61 | A4 = 51, B4, C4, D4, E4, F4, G4, H4, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `H4` [INFO] [stderr] --> src/board.rs:61:38 [INFO] [stderr] | [INFO] [stderr] 61 | A4 = 51, B4, C4, D4, E4, F4, G4, H4, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `A5` [INFO] [stderr] --> src/board.rs:62:5 [INFO] [stderr] | [INFO] [stderr] 62 | A5 = 61, B5, C5, D5, E5, F5, G5, H5, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `B5` [INFO] [stderr] --> src/board.rs:62:14 [INFO] [stderr] | [INFO] [stderr] 62 | A5 = 61, B5, C5, D5, E5, F5, G5, H5, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `C5` [INFO] [stderr] --> src/board.rs:62:18 [INFO] [stderr] | [INFO] [stderr] 62 | A5 = 61, B5, C5, D5, E5, F5, G5, H5, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `D5` [INFO] [stderr] --> src/board.rs:62:22 [INFO] [stderr] | [INFO] [stderr] 62 | A5 = 61, B5, C5, D5, E5, F5, G5, H5, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `E5` [INFO] [stderr] --> src/board.rs:62:26 [INFO] [stderr] | [INFO] [stderr] 62 | A5 = 61, B5, C5, D5, E5, F5, G5, H5, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `F5` [INFO] [stderr] --> src/board.rs:62:30 [INFO] [stderr] | [INFO] [stderr] 62 | A5 = 61, B5, C5, D5, E5, F5, G5, H5, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `G5` [INFO] [stderr] --> src/board.rs:62:34 [INFO] [stderr] | [INFO] [stderr] 62 | A5 = 61, B5, C5, D5, E5, F5, G5, H5, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `H5` [INFO] [stderr] --> src/board.rs:62:38 [INFO] [stderr] | [INFO] [stderr] 62 | A5 = 61, B5, C5, D5, E5, F5, G5, H5, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `A6` [INFO] [stderr] --> src/board.rs:63:5 [INFO] [stderr] | [INFO] [stderr] 63 | A6 = 71, B6, C6, D6, E6, F6, G6, H6, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `B6` [INFO] [stderr] --> src/board.rs:63:14 [INFO] [stderr] | [INFO] [stderr] 63 | A6 = 71, B6, C6, D6, E6, F6, G6, H6, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `C6` [INFO] [stderr] --> src/board.rs:63:18 [INFO] [stderr] | [INFO] [stderr] 63 | A6 = 71, B6, C6, D6, E6, F6, G6, H6, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `D6` [INFO] [stderr] --> src/board.rs:63:22 [INFO] [stderr] | [INFO] [stderr] 63 | A6 = 71, B6, C6, D6, E6, F6, G6, H6, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `E6` [INFO] [stderr] --> src/board.rs:63:26 [INFO] [stderr] | [INFO] [stderr] 63 | A6 = 71, B6, C6, D6, E6, F6, G6, H6, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `F6` [INFO] [stderr] --> src/board.rs:63:30 [INFO] [stderr] | [INFO] [stderr] 63 | A6 = 71, B6, C6, D6, E6, F6, G6, H6, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `G6` [INFO] [stderr] --> src/board.rs:63:34 [INFO] [stderr] | [INFO] [stderr] 63 | A6 = 71, B6, C6, D6, E6, F6, G6, H6, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `H6` [INFO] [stderr] --> src/board.rs:63:38 [INFO] [stderr] | [INFO] [stderr] 63 | A6 = 71, B6, C6, D6, E6, F6, G6, H6, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `A7` [INFO] [stderr] --> src/board.rs:64:5 [INFO] [stderr] | [INFO] [stderr] 64 | A7 = 81, B7, C7, D7, E7, F7, G7, H7, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `B7` [INFO] [stderr] --> src/board.rs:64:14 [INFO] [stderr] | [INFO] [stderr] 64 | A7 = 81, B7, C7, D7, E7, F7, G7, H7, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `C7` [INFO] [stderr] --> src/board.rs:64:18 [INFO] [stderr] | [INFO] [stderr] 64 | A7 = 81, B7, C7, D7, E7, F7, G7, H7, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `D7` [INFO] [stderr] --> src/board.rs:64:22 [INFO] [stderr] | [INFO] [stderr] 64 | A7 = 81, B7, C7, D7, E7, F7, G7, H7, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `E7` [INFO] [stderr] --> src/board.rs:64:26 [INFO] [stderr] | [INFO] [stderr] 64 | A7 = 81, B7, C7, D7, E7, F7, G7, H7, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `F7` [INFO] [stderr] --> src/board.rs:64:30 [INFO] [stderr] | [INFO] [stderr] 64 | A7 = 81, B7, C7, D7, E7, F7, G7, H7, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `G7` [INFO] [stderr] --> src/board.rs:64:34 [INFO] [stderr] | [INFO] [stderr] 64 | A7 = 81, B7, C7, D7, E7, F7, G7, H7, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `H7` [INFO] [stderr] --> src/board.rs:64:38 [INFO] [stderr] | [INFO] [stderr] 64 | A7 = 81, B7, C7, D7, E7, F7, G7, H7, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `A8` [INFO] [stderr] --> src/board.rs:65:5 [INFO] [stderr] | [INFO] [stderr] 65 | A8 = 91, B8, C8, D8, E8, F8, G8, H8 [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `H8` [INFO] [stderr] --> src/board.rs:65:38 [INFO] [stderr] | [INFO] [stderr] 65 | A8 = 91, B8, C8, D8, E8, F8, G8, H8 [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: static item is never used: `leafnodes` [INFO] [stderr] --> src/sanity.rs:198:1 [INFO] [stderr] | [INFO] [stderr] 198 | static mut leafnodes : f64 = 0f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `perft` [INFO] [stderr] --> src/sanity.rs:200:1 [INFO] [stderr] | [INFO] [stderr] 200 | pub fn perft(depth : i32, cboard : &mut board::chessboard) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `perft_test` [INFO] [stderr] --> src/sanity.rs:220:1 [INFO] [stderr] | [INFO] [stderr] 220 | pub fn perft_test(depth: i32, cboard : &mut board::chessboard) -> f64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/board.rs:50:12 [INFO] [stderr] | [INFO] [stderr] 50 | K_cp = 1 << 0, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/board.rs:215:14 [INFO] [stderr] | [INFO] [stderr] 215 | for x in (0..rank::rank_8 as u8 + 1).rev() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0..=rank::rank_8 as u8)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/board.rs:217:18 [INFO] [stderr] | [INFO] [stderr] 217 | for i in 0..file::file_h as u8 + 1{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=file::file_h as u8` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/board.rs:226:14 [INFO] [stderr] | [INFO] [stderr] 226 | for i in 0..piece::p as usize + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=piece::p as usize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/fen.rs:106:25 [INFO] [stderr] | [INFO] [stderr] 106 | cboard.depth = (fen[counter] as u16 - '0' as u16) * 100 + (fen[counter + 1] as u16 - '0' as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(fen[counter])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/fen.rs:106:68 [INFO] [stderr] | [INFO] [stderr] 106 | cboard.depth = (fen[counter] as u16 - '0' as u16) * 100 + (fen[counter + 1] as u16 - '0' as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(fen[counter + 1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/fen.rs:107:20 [INFO] [stderr] | [INFO] [stderr] 107 | * 10 + fen[counter + 2] as u16 - '0' as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(fen[counter + 2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/fen.rs:109:25 [INFO] [stderr] | [INFO] [stderr] 109 | cboard.depth = (fen[counter] as u16 - '0' as u16) * 10 + fen[counter + 1] as u16 - '0' as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(fen[counter])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/fen.rs:109:66 [INFO] [stderr] | [INFO] [stderr] 109 | cboard.depth = (fen[counter] as u16 - '0' as u16) * 10 + fen[counter + 1] as u16 - '0' as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(fen[counter + 1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/fen.rs:111:24 [INFO] [stderr] | [INFO] [stderr] 111 | cboard.depth = fen[counter] as u16 - '0' as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(fen[counter])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (8/7) [INFO] [stderr] --> src/moves.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | / pub fn new(from : u8, to : u8, captured : u8, promoted : u8, en_passant : bool, pawn_double : bool, castling : bool, scoring : u16) -> _move { [INFO] [stderr] 18 | | // TODO double check on EP in move generator [INFO] [stderr] 19 | | let mut combined : u32 = 0; [INFO] [stderr] 20 | | combined |= from as u32; [INFO] [stderr] ... | [INFO] [stderr] 31 | | } [INFO] [stderr] 32 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/moves.rs:20:21 [INFO] [stderr] | [INFO] [stderr] 20 | combined |= from as u32; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u32::from(from)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/moves.rs:21:21 [INFO] [stderr] | [INFO] [stderr] 21 | combined |= (to as u32) << 7; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u32::from(to)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/moves.rs:22:21 [INFO] [stderr] | [INFO] [stderr] 22 | combined |= (captured as u32) << 14; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(captured)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/moves.rs:23:21 [INFO] [stderr] | [INFO] [stderr] 23 | combined |= (promoted as u32) << 18; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(promoted)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 54 [INFO] [stderr] --> src/moves.rs:135:1 [INFO] [stderr] | [INFO] [stderr] 135 | / pub fn generator(list : &mut movelist, cboard : &board::chessboard) { [INFO] [stderr] 136 | | let baseline = if cboard.side == board::black { 6 } else { 0 }; [INFO] [stderr] 137 | | [INFO] [stderr] 138 | | for x in (1 + baseline)..(board::piece::k as usize + baseline) { [INFO] [stderr] ... | [INFO] [stderr] 380 | | } [INFO] [stderr] 381 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/think.rs:241:9 [INFO] [stderr] | [INFO] [stderr] 241 | let mut best : u32 = 0; [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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/think.rs:178:30 [INFO] [stderr] | [INFO] [stderr] 178 | for x in (cboard.depth - cboard.fifty as u16) as usize..cboard.depth as usize - 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(cboard.fifty)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/uci.rs:8:9 [INFO] [stderr] | [INFO] [stderr] 8 | let mut input = &mut String::new(); [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/think.rs:261:22 [INFO] [stderr] | [INFO] [stderr] 261 | for depth in 1..target+1 { [INFO] [stderr] | ^^^^^^^^^^^ help: use: `1..=target` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/think.rs:355:49 [INFO] [stderr] | [INFO] [stderr] 355 | -board::piece_value[1] as i32 + cboard.ply as i32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i32::from(cboard.ply)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/think.rs:362:49 [INFO] [stderr] | [INFO] [stderr] 362 | -board::piece_value[1] as i32 + cboard.ply as i32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i32::from(cboard.ply)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `rank_1` [INFO] [stderr] --> src/board.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | rank_1, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `rank_2` [INFO] [stderr] --> src/board.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | rank_2, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `rank_3` [INFO] [stderr] --> src/board.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | rank_3, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `rank_4` [INFO] [stderr] --> src/board.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | rank_4, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `rank_5` [INFO] [stderr] --> src/board.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | rank_5, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `rank_6` [INFO] [stderr] --> src/board.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | rank_6, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `rank_7` [INFO] [stderr] --> src/board.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | rank_7, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `invalid_rank` [INFO] [stderr] --> src/board.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 46 | invalid_rank [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `A1` [INFO] [stderr] --> src/board.rs:58:5 [INFO] [stderr] | [INFO] [stderr] 58 | A1 = 21, B1, C1, D1, E1, F1, G1, H1, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `H1` [INFO] [stderr] --> src/board.rs:58:38 [INFO] [stderr] | [INFO] [stderr] 58 | A1 = 21, B1, C1, D1, E1, F1, G1, H1, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `A2` [INFO] [stderr] --> src/board.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | A2 = 31, B2, C2, D2, E2, F2, G2, H2, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `B2` [INFO] [stderr] --> src/board.rs:59:14 [INFO] [stderr] | [INFO] [stderr] 59 | A2 = 31, B2, C2, D2, E2, F2, G2, H2, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `C2` [INFO] [stderr] --> src/board.rs:59:18 [INFO] [stderr] | [INFO] [stderr] 59 | A2 = 31, B2, C2, D2, E2, F2, G2, H2, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `D2` [INFO] [stderr] --> src/board.rs:59:22 [INFO] [stderr] | [INFO] [stderr] 59 | A2 = 31, B2, C2, D2, E2, F2, G2, H2, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `E2` [INFO] [stderr] --> src/board.rs:59:26 [INFO] [stderr] | [INFO] [stderr] 59 | A2 = 31, B2, C2, D2, E2, F2, G2, H2, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `F2` [INFO] [stderr] --> src/board.rs:59:30 [INFO] [stderr] | [INFO] [stderr] 59 | A2 = 31, B2, C2, D2, E2, F2, G2, H2, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `G2` [INFO] [stderr] --> src/board.rs:59:34 [INFO] [stderr] | [INFO] [stderr] 59 | A2 = 31, B2, C2, D2, E2, F2, G2, H2, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `H2` [INFO] [stderr] --> src/board.rs:59:38 [INFO] [stderr] | [INFO] [stderr] 59 | A2 = 31, B2, C2, D2, E2, F2, G2, H2, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `A3` [INFO] [stderr] --> src/board.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | A3 = 41, B3, C3, D3, E3, F3, G3, H3, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `B3` [INFO] [stderr] --> src/board.rs:60:14 [INFO] [stderr] | [INFO] [stderr] 60 | A3 = 41, B3, C3, D3, E3, F3, G3, H3, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `C3` [INFO] [stderr] --> src/board.rs:60:18 [INFO] [stderr] | [INFO] [stderr] 60 | A3 = 41, B3, C3, D3, E3, F3, G3, H3, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `D3` [INFO] [stderr] --> src/board.rs:60:22 [INFO] [stderr] | [INFO] [stderr] 60 | A3 = 41, B3, C3, D3, E3, F3, G3, H3, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `E3` [INFO] [stderr] --> src/board.rs:60:26 [INFO] [stderr] | [INFO] [stderr] 60 | A3 = 41, B3, C3, D3, E3, F3, G3, H3, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `F3` [INFO] [stderr] --> src/board.rs:60:30 [INFO] [stderr] | [INFO] [stderr] 60 | A3 = 41, B3, C3, D3, E3, F3, G3, H3, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `G3` [INFO] [stderr] --> src/board.rs:60:34 [INFO] [stderr] | [INFO] [stderr] 60 | A3 = 41, B3, C3, D3, E3, F3, G3, H3, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `H3` [INFO] [stderr] --> src/board.rs:60:38 [INFO] [stderr] | [INFO] [stderr] 60 | A3 = 41, B3, C3, D3, E3, F3, G3, H3, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `A4` [INFO] [stderr] --> src/board.rs:61:5 [INFO] [stderr] | [INFO] [stderr] 61 | A4 = 51, B4, C4, D4, E4, F4, G4, H4, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `B4` [INFO] [stderr] --> src/board.rs:61:14 [INFO] [stderr] | [INFO] [stderr] 61 | A4 = 51, B4, C4, D4, E4, F4, G4, H4, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `C4` [INFO] [stderr] --> src/board.rs:61:18 [INFO] [stderr] | [INFO] [stderr] 61 | A4 = 51, B4, C4, D4, E4, F4, G4, H4, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `D4` [INFO] [stderr] --> src/board.rs:61:22 [INFO] [stderr] | [INFO] [stderr] 61 | A4 = 51, B4, C4, D4, E4, F4, G4, H4, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `E4` [INFO] [stderr] --> src/board.rs:61:26 [INFO] [stderr] | [INFO] [stderr] 61 | A4 = 51, B4, C4, D4, E4, F4, G4, H4, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `F4` [INFO] [stderr] --> src/board.rs:61:30 [INFO] [stderr] | [INFO] [stderr] 61 | A4 = 51, B4, C4, D4, E4, F4, G4, H4, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `G4` [INFO] [stderr] --> src/board.rs:61:34 [INFO] [stderr] | [INFO] [stderr] 61 | A4 = 51, B4, C4, D4, E4, F4, G4, H4, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `H4` [INFO] [stderr] --> src/board.rs:61:38 [INFO] [stderr] | [INFO] [stderr] 61 | A4 = 51, B4, C4, D4, E4, F4, G4, H4, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `A5` [INFO] [stderr] --> src/board.rs:62:5 [INFO] [stderr] | [INFO] [stderr] 62 | A5 = 61, B5, C5, D5, E5, F5, G5, H5, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `B5` [INFO] [stderr] --> src/board.rs:62:14 [INFO] [stderr] | [INFO] [stderr] 62 | A5 = 61, B5, C5, D5, E5, F5, G5, H5, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `C5` [INFO] [stderr] --> src/board.rs:62:18 [INFO] [stderr] | [INFO] [stderr] 62 | A5 = 61, B5, C5, D5, E5, F5, G5, H5, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `D5` [INFO] [stderr] --> src/board.rs:62:22 [INFO] [stderr] | [INFO] [stderr] 62 | A5 = 61, B5, C5, D5, E5, F5, G5, H5, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `E5` [INFO] [stderr] --> src/board.rs:62:26 [INFO] [stderr] | [INFO] [stderr] 62 | A5 = 61, B5, C5, D5, E5, F5, G5, H5, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `F5` [INFO] [stderr] --> src/board.rs:62:30 [INFO] [stderr] | [INFO] [stderr] 62 | A5 = 61, B5, C5, D5, E5, F5, G5, H5, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `G5` [INFO] [stderr] --> src/board.rs:62:34 [INFO] [stderr] | [INFO] [stderr] 62 | A5 = 61, B5, C5, D5, E5, F5, G5, H5, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `H5` [INFO] [stderr] --> src/board.rs:62:38 [INFO] [stderr] | [INFO] [stderr] 62 | A5 = 61, B5, C5, D5, E5, F5, G5, H5, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `A6` [INFO] [stderr] --> src/board.rs:63:5 [INFO] [stderr] | [INFO] [stderr] 63 | A6 = 71, B6, C6, D6, E6, F6, G6, H6, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `B6` [INFO] [stderr] --> src/board.rs:63:14 [INFO] [stderr] | [INFO] [stderr] 63 | A6 = 71, B6, C6, D6, E6, F6, G6, H6, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `C6` [INFO] [stderr] --> src/board.rs:63:18 [INFO] [stderr] | [INFO] [stderr] 63 | A6 = 71, B6, C6, D6, E6, F6, G6, H6, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `D6` [INFO] [stderr] --> src/board.rs:63:22 [INFO] [stderr] | [INFO] [stderr] 63 | A6 = 71, B6, C6, D6, E6, F6, G6, H6, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `E6` [INFO] [stderr] --> src/board.rs:63:26 [INFO] [stderr] | [INFO] [stderr] 63 | A6 = 71, B6, C6, D6, E6, F6, G6, H6, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `F6` [INFO] [stderr] --> src/board.rs:63:30 [INFO] [stderr] | [INFO] [stderr] 63 | A6 = 71, B6, C6, D6, E6, F6, G6, H6, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `G6` [INFO] [stderr] --> src/board.rs:63:34 [INFO] [stderr] | [INFO] [stderr] 63 | A6 = 71, B6, C6, D6, E6, F6, G6, H6, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `H6` [INFO] [stderr] --> src/board.rs:63:38 [INFO] [stderr] | [INFO] [stderr] 63 | A6 = 71, B6, C6, D6, E6, F6, G6, H6, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `A7` [INFO] [stderr] --> src/board.rs:64:5 [INFO] [stderr] | [INFO] [stderr] 64 | A7 = 81, B7, C7, D7, E7, F7, G7, H7, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `B7` [INFO] [stderr] --> src/board.rs:64:14 [INFO] [stderr] | [INFO] [stderr] 64 | A7 = 81, B7, C7, D7, E7, F7, G7, H7, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `C7` [INFO] [stderr] --> src/board.rs:64:18 [INFO] [stderr] | [INFO] [stderr] 64 | A7 = 81, B7, C7, D7, E7, F7, G7, H7, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `D7` [INFO] [stderr] --> src/board.rs:64:22 [INFO] [stderr] | [INFO] [stderr] 64 | A7 = 81, B7, C7, D7, E7, F7, G7, H7, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `E7` [INFO] [stderr] --> src/board.rs:64:26 [INFO] [stderr] | [INFO] [stderr] 64 | A7 = 81, B7, C7, D7, E7, F7, G7, H7, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `F7` [INFO] [stderr] --> src/board.rs:64:30 [INFO] [stderr] | [INFO] [stderr] 64 | A7 = 81, B7, C7, D7, E7, F7, G7, H7, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `G7` [INFO] [stderr] --> src/board.rs:64:34 [INFO] [stderr] | [INFO] [stderr] 64 | A7 = 81, B7, C7, D7, E7, F7, G7, H7, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `H7` [INFO] [stderr] --> src/board.rs:64:38 [INFO] [stderr] | [INFO] [stderr] 64 | A7 = 81, B7, C7, D7, E7, F7, G7, H7, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `A8` [INFO] [stderr] --> src/board.rs:65:5 [INFO] [stderr] | [INFO] [stderr] 65 | A8 = 91, B8, C8, D8, E8, F8, G8, H8 [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `H8` [INFO] [stderr] --> src/board.rs:65:38 [INFO] [stderr] | [INFO] [stderr] 65 | A8 = 91, B8, C8, D8, E8, F8, G8, H8 [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/board.rs:50:12 [INFO] [stderr] | [INFO] [stderr] 50 | K_cp = 1 << 0, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/board.rs:215:14 [INFO] [stderr] | [INFO] [stderr] 215 | for x in (0..rank::rank_8 as u8 + 1).rev() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0..=rank::rank_8 as u8)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/board.rs:217:18 [INFO] [stderr] | [INFO] [stderr] 217 | for i in 0..file::file_h as u8 + 1{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=file::file_h as u8` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/board.rs:226:14 [INFO] [stderr] | [INFO] [stderr] 226 | for i in 0..piece::p as usize + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=piece::p as usize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/fen.rs:106:25 [INFO] [stderr] | [INFO] [stderr] 106 | cboard.depth = (fen[counter] as u16 - '0' as u16) * 100 + (fen[counter + 1] as u16 - '0' as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(fen[counter])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/fen.rs:106:68 [INFO] [stderr] | [INFO] [stderr] 106 | cboard.depth = (fen[counter] as u16 - '0' as u16) * 100 + (fen[counter + 1] as u16 - '0' as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(fen[counter + 1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/fen.rs:107:20 [INFO] [stderr] | [INFO] [stderr] 107 | * 10 + fen[counter + 2] as u16 - '0' as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(fen[counter + 2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/fen.rs:109:25 [INFO] [stderr] | [INFO] [stderr] 109 | cboard.depth = (fen[counter] as u16 - '0' as u16) * 10 + fen[counter + 1] as u16 - '0' as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(fen[counter])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/fen.rs:109:66 [INFO] [stderr] | [INFO] [stderr] 109 | cboard.depth = (fen[counter] as u16 - '0' as u16) * 10 + fen[counter + 1] as u16 - '0' as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(fen[counter + 1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/fen.rs:111:24 [INFO] [stderr] | [INFO] [stderr] 111 | cboard.depth = fen[counter] as u16 - '0' as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(fen[counter])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (8/7) [INFO] [stderr] --> src/moves.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | / pub fn new(from : u8, to : u8, captured : u8, promoted : u8, en_passant : bool, pawn_double : bool, castling : bool, scoring : u16) -> _move { [INFO] [stderr] 18 | | // TODO double check on EP in move generator [INFO] [stderr] 19 | | let mut combined : u32 = 0; [INFO] [stderr] 20 | | combined |= from as u32; [INFO] [stderr] ... | [INFO] [stderr] 31 | | } [INFO] [stderr] 32 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/moves.rs:20:21 [INFO] [stderr] | [INFO] [stderr] 20 | combined |= from as u32; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u32::from(from)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/moves.rs:21:21 [INFO] [stderr] | [INFO] [stderr] 21 | combined |= (to as u32) << 7; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u32::from(to)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/moves.rs:22:21 [INFO] [stderr] | [INFO] [stderr] 22 | combined |= (captured as u32) << 14; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(captured)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/moves.rs:23:21 [INFO] [stderr] | [INFO] [stderr] 23 | combined |= (promoted as u32) << 18; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(promoted)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 54 [INFO] [stderr] --> src/moves.rs:135:1 [INFO] [stderr] | [INFO] [stderr] 135 | / pub fn generator(list : &mut movelist, cboard : &board::chessboard) { [INFO] [stderr] 136 | | let baseline = if cboard.side == board::black { 6 } else { 0 }; [INFO] [stderr] 137 | | [INFO] [stderr] 138 | | for x in (1 + baseline)..(board::piece::k as usize + baseline) { [INFO] [stderr] ... | [INFO] [stderr] 380 | | } [INFO] [stderr] 381 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/sanity.rs:250:5 [INFO] [stderr] | [INFO] [stderr] 250 | assert_eq!(perft_test(3, &mut main_board), 97862f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/sanity.rs:250:5 [INFO] [stderr] | [INFO] [stderr] 250 | assert_eq!(perft_test(3, &mut main_board), 97862f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/sanity.rs:253:5 [INFO] [stderr] | [INFO] [stderr] 253 | assert_eq!(perft_test(4, &mut main_board), 182838f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/sanity.rs:253:5 [INFO] [stderr] | [INFO] [stderr] 253 | assert_eq!(perft_test(4, &mut main_board), 182838f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/sanity.rs:256:5 [INFO] [stderr] | [INFO] [stderr] 256 | assert_eq!(perft_test(4, &mut main_board), 197281f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/sanity.rs:256:5 [INFO] [stderr] | [INFO] [stderr] 256 | assert_eq!(perft_test(4, &mut main_board), 197281f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/think.rs:178:30 [INFO] [stderr] | [INFO] [stderr] 178 | for x in (cboard.depth - cboard.fifty as u16) as usize..cboard.depth as usize - 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(cboard.fifty)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/think.rs:261:22 [INFO] [stderr] | [INFO] [stderr] 261 | for depth in 1..target+1 { [INFO] [stderr] | ^^^^^^^^^^^ help: use: `1..=target` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/think.rs:355:49 [INFO] [stderr] | [INFO] [stderr] 355 | -board::piece_value[1] as i32 + cboard.ply as i32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i32::from(cboard.ply)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/think.rs:362:49 [INFO] [stderr] | [INFO] [stderr] 362 | -board::piece_value[1] as i32 + cboard.ply as i32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i32::from(cboard.ply)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `cicada`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "135f1420b00c8eeb26768c09a4aacf4a87f961997822f4f703354d0d9eab16cb"` [INFO] running `"docker" "rm" "-f" "135f1420b00c8eeb26768c09a4aacf4a87f961997822f4f703354d0d9eab16cb"` [INFO] [stdout] 135f1420b00c8eeb26768c09a4aacf4a87f961997822f4f703354d0d9eab16cb