[INFO] updating cached repository kempchee/rust_chess_move_generator [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/kempchee/rust_chess_move_generator [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/kempchee/rust_chess_move_generator" "work/ex/clippy-test-run/sources/stable/gh/kempchee/rust_chess_move_generator"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/kempchee/rust_chess_move_generator'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/kempchee/rust_chess_move_generator" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/kempchee/rust_chess_move_generator"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/kempchee/rust_chess_move_generator'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 803e4be8c86d863422b61f80c27f4d1e7afb11d0 [INFO] sha for GitHub repo kempchee/rust_chess_move_generator: 803e4be8c86d863422b61f80c27f4d1e7afb11d0 [INFO] validating manifest of kempchee/rust_chess_move_generator 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 kempchee/rust_chess_move_generator 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 kempchee/rust_chess_move_generator [INFO] finished frobbing kempchee/rust_chess_move_generator [INFO] frobbed toml for kempchee/rust_chess_move_generator written to work/ex/clippy-test-run/sources/stable/gh/kempchee/rust_chess_move_generator/Cargo.toml [INFO] started frobbing kempchee/rust_chess_move_generator [INFO] finished frobbing kempchee/rust_chess_move_generator [INFO] frobbed toml for kempchee/rust_chess_move_generator written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/kempchee/rust_chess_move_generator/Cargo.toml [INFO] crate kempchee/rust_chess_move_generator 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 kempchee/rust_chess_move_generator 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-2/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/kempchee/rust_chess_move_generator:/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] 1c910bd83a93dd0984eb671df72185808377a1137dee0637c145d4a8fdba4e44 [INFO] running `"docker" "start" "-a" "1c910bd83a93dd0984eb671df72185808377a1137dee0637c145d4a8fdba4e44"` [INFO] [stderr] Checking move_generator v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/main.rs:1:24 [INFO] [stderr] | [INFO] [stderr] 1 | const COLUMNS_LOOKUP:[&'static str;8]=["a","b","c","d","e","f","g","h"]; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/main.rs:2:21 [INFO] [stderr] | [INFO] [stderr] 2 | const ROWS_LOOKUP:[&'static str;8]=["8","7","6","5","4","3","2","1"]; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/main.rs:34:18 [INFO] [stderr] | [INFO] [stderr] 34 | }else{ [INFO] [stderr] | __________________^ [INFO] [stderr] 35 | | if board_array[row_index][column_index]!=""&&board_array[row_index][column_index].to_string().chars().nth(0).unwrap().is_uppercase(){ [INFO] [stderr] 36 | | match board_array[row_index][column_index]{ [INFO] [stderr] 37 | | "R"=>add_available_moves_rook(row_index as i8,column_index as i8,&board_array,&mut available_moves,"w",&mut duplicate_moves), [INFO] [stderr] ... | [INFO] [stderr] 46 | | } [INFO] [stderr] 47 | | } [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] 34 | }elseif board_array[row_index][column_index]!=""&&board_array[row_index][column_index].to_string().chars().nth(0).unwrap().is_uppercase(){ [INFO] [stderr] 35 | match board_array[row_index][column_index]{ [INFO] [stderr] 36 | "R"=>add_available_moves_rook(row_index as i8,column_index as i8,&board_array,&mut available_moves,"w",&mut duplicate_moves), [INFO] [stderr] 37 | "P"=>add_available_moves_pawn(row_index,column_index,&board_array,&mut available_moves,"w"), [INFO] [stderr] 38 | "K"=>add_available_moves_king(row_index,column_index,&board_array,&mut available_moves,"w"), [INFO] [stderr] 39 | "Q"=>add_available_moves_queen(row_index,column_index,&board_array,&mut available_moves,"w"), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:135:180 [INFO] [stderr] | [INFO] [stderr] 135 | fn add_available_moves_rook(start_row:i8,start_column:i8,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str,duplicate_moves:&mut HashMap>)->(){ [INFO] [stderr] | ^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:211:135 [INFO] [stderr] | [INFO] [stderr] 211 | fn insert_into_duplicate_moves(duplicate_moves:&mut HashMap>,possible_move:&String,start_row:i8,start_column:i8)->(){ [INFO] [stderr] | ^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:219:134 [INFO] [stderr] | [INFO] [stderr] 219 | fn add_available_moves_pawn(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:223:136 [INFO] [stderr] | [INFO] [stderr] 223 | fn add_available_moves_bishop(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:227:136 [INFO] [stderr] | [INFO] [stderr] 227 | fn add_available_moves_knight(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:231:134 [INFO] [stderr] | [INFO] [stderr] 231 | fn add_available_moves_king(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:235:135 [INFO] [stderr] | [INFO] [stderr] 235 | fn add_available_moves_queen(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/main.rs:1:24 [INFO] [stderr] | [INFO] [stderr] 1 | const COLUMNS_LOOKUP:[&'static str;8]=["a","b","c","d","e","f","g","h"]; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/main.rs:2:21 [INFO] [stderr] | [INFO] [stderr] 2 | const ROWS_LOOKUP:[&'static str;8]=["8","7","6","5","4","3","2","1"]; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/main.rs:34:18 [INFO] [stderr] | [INFO] [stderr] 34 | }else{ [INFO] [stderr] | __________________^ [INFO] [stderr] 35 | | if board_array[row_index][column_index]!=""&&board_array[row_index][column_index].to_string().chars().nth(0).unwrap().is_uppercase(){ [INFO] [stderr] 36 | | match board_array[row_index][column_index]{ [INFO] [stderr] 37 | | "R"=>add_available_moves_rook(row_index as i8,column_index as i8,&board_array,&mut available_moves,"w",&mut duplicate_moves), [INFO] [stderr] ... | [INFO] [stderr] 46 | | } [INFO] [stderr] 47 | | } [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] 34 | }elseif board_array[row_index][column_index]!=""&&board_array[row_index][column_index].to_string().chars().nth(0).unwrap().is_uppercase(){ [INFO] [stderr] 35 | match board_array[row_index][column_index]{ [INFO] [stderr] 36 | "R"=>add_available_moves_rook(row_index as i8,column_index as i8,&board_array,&mut available_moves,"w",&mut duplicate_moves), [INFO] [stderr] 37 | "P"=>add_available_moves_pawn(row_index,column_index,&board_array,&mut available_moves,"w"), [INFO] [stderr] 38 | "K"=>add_available_moves_king(row_index,column_index,&board_array,&mut available_moves,"w"), [INFO] [stderr] 39 | "Q"=>add_available_moves_queen(row_index,column_index,&board_array,&mut available_moves,"w"), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:135:180 [INFO] [stderr] | [INFO] [stderr] 135 | fn add_available_moves_rook(start_row:i8,start_column:i8,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str,duplicate_moves:&mut HashMap>)->(){ [INFO] [stderr] | ^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:211:135 [INFO] [stderr] | [INFO] [stderr] 211 | fn insert_into_duplicate_moves(duplicate_moves:&mut HashMap>,possible_move:&String,start_row:i8,start_column:i8)->(){ [INFO] [stderr] | ^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:219:134 [INFO] [stderr] | [INFO] [stderr] 219 | fn add_available_moves_pawn(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:223:136 [INFO] [stderr] | [INFO] [stderr] 223 | fn add_available_moves_bishop(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:227:136 [INFO] [stderr] | [INFO] [stderr] 227 | fn add_available_moves_knight(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:231:134 [INFO] [stderr] | [INFO] [stderr] 231 | fn add_available_moves_king(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:235:135 [INFO] [stderr] | [INFO] [stderr] 235 | fn add_available_moves_queen(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unused variable: `column` [INFO] [stderr] --> src/main.rs:21:27 [INFO] [stderr] | [INFO] [stderr] 21 | for (column_index,column) in row.iter().enumerate(){ [INFO] [stderr] | ^^^^^^ help: consider using `_column` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `column` [INFO] [stderr] --> src/main.rs:21:27 [INFO] [stderr] | [INFO] [stderr] 21 | for (column_index,column) in row.iter().enumerate(){ [INFO] [stderr] | ^^^^^^ help: consider using `_column` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `converted_fen` [INFO] [stderr] --> src/main.rs:103:9 [INFO] [stderr] | [INFO] [stderr] 103 | let converted_fen=convert_array_to_fen(board_array,side_to_play,castling_availability,enpassant_target,half_move_clock,full_move_number); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider using `_converted_fen` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `start_row` [INFO] [stderr] --> src/main.rs:219:29 [INFO] [stderr] | [INFO] [stderr] 219 | fn add_available_moves_pawn(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^ help: consider using `_start_row` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `start_column` [INFO] [stderr] --> src/main.rs:219:45 [INFO] [stderr] | [INFO] [stderr] 219 | fn add_available_moves_pawn(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_start_column` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `board_array` [INFO] [stderr] --> src/main.rs:219:64 [INFO] [stderr] | [INFO] [stderr] 219 | fn add_available_moves_pawn(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^^^ help: consider using `_board_array` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `available_moves` [INFO] [stderr] --> src/main.rs:219:90 [INFO] [stderr] | [INFO] [stderr] 219 | fn add_available_moves_pawn(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using `_available_moves` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `color` [INFO] [stderr] --> src/main.rs:219:123 [INFO] [stderr] | [INFO] [stderr] 219 | fn add_available_moves_pawn(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^ help: consider using `_color` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `start_row` [INFO] [stderr] --> src/main.rs:223:31 [INFO] [stderr] | [INFO] [stderr] 223 | fn add_available_moves_bishop(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^ help: consider using `_start_row` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `start_column` [INFO] [stderr] --> src/main.rs:223:47 [INFO] [stderr] | [INFO] [stderr] 223 | fn add_available_moves_bishop(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_start_column` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `board_array` [INFO] [stderr] --> src/main.rs:223:66 [INFO] [stderr] | [INFO] [stderr] 223 | fn add_available_moves_bishop(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^^^ help: consider using `_board_array` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `available_moves` [INFO] [stderr] --> src/main.rs:223:92 [INFO] [stderr] | [INFO] [stderr] 223 | fn add_available_moves_bishop(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using `_available_moves` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `color` [INFO] [stderr] --> src/main.rs:223:125 [INFO] [stderr] | [INFO] [stderr] 223 | fn add_available_moves_bishop(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^ help: consider using `_color` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `start_row` [INFO] [stderr] --> src/main.rs:227:31 [INFO] [stderr] | [INFO] [stderr] 227 | fn add_available_moves_knight(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^ help: consider using `_start_row` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `start_column` [INFO] [stderr] --> src/main.rs:227:47 [INFO] [stderr] | [INFO] [stderr] 227 | fn add_available_moves_knight(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_start_column` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `board_array` [INFO] [stderr] --> src/main.rs:227:66 [INFO] [stderr] | [INFO] [stderr] 227 | fn add_available_moves_knight(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^^^ help: consider using `_board_array` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `available_moves` [INFO] [stderr] --> src/main.rs:227:92 [INFO] [stderr] | [INFO] [stderr] 227 | fn add_available_moves_knight(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using `_available_moves` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `color` [INFO] [stderr] --> src/main.rs:227:125 [INFO] [stderr] | [INFO] [stderr] 227 | fn add_available_moves_knight(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^ help: consider using `_color` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `start_row` [INFO] [stderr] --> src/main.rs:231:29 [INFO] [stderr] | [INFO] [stderr] 231 | fn add_available_moves_king(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^ help: consider using `_start_row` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `start_column` [INFO] [stderr] --> src/main.rs:231:45 [INFO] [stderr] | [INFO] [stderr] 231 | fn add_available_moves_king(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_start_column` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `board_array` [INFO] [stderr] --> src/main.rs:231:64 [INFO] [stderr] | [INFO] [stderr] 231 | fn add_available_moves_king(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^^^ help: consider using `_board_array` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `available_moves` [INFO] [stderr] --> src/main.rs:231:90 [INFO] [stderr] | [INFO] [stderr] 231 | fn add_available_moves_king(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using `_available_moves` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `color` [INFO] [stderr] --> src/main.rs:231:123 [INFO] [stderr] | [INFO] [stderr] 231 | fn add_available_moves_king(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^ help: consider using `_color` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `start_row` [INFO] [stderr] --> src/main.rs:235:30 [INFO] [stderr] | [INFO] [stderr] 235 | fn add_available_moves_queen(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^ help: consider using `_start_row` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `start_column` [INFO] [stderr] --> src/main.rs:235:46 [INFO] [stderr] | [INFO] [stderr] 235 | fn add_available_moves_queen(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_start_column` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `board_array` [INFO] [stderr] --> src/main.rs:235:65 [INFO] [stderr] | [INFO] [stderr] 235 | fn add_available_moves_queen(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^^^ help: consider using `_board_array` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `available_moves` [INFO] [stderr] --> src/main.rs:235:91 [INFO] [stderr] | [INFO] [stderr] 235 | fn add_available_moves_queen(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using `_available_moves` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `color` [INFO] [stderr] --> src/main.rs:235:124 [INFO] [stderr] | [INFO] [stderr] 235 | fn add_available_moves_queen(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^ help: consider using `_color` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/main.rs:249:21 [INFO] [stderr] | [INFO] [stderr] 249 | for i in 0..char.parse::().unwrap(){ [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `converted_fen` [INFO] [stderr] --> src/main.rs:103:9 [INFO] [stderr] | [INFO] [stderr] 103 | let converted_fen=convert_array_to_fen(board_array,side_to_play,castling_availability,enpassant_target,half_move_clock,full_move_number); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider using `_converted_fen` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `start_row` [INFO] [stderr] --> src/main.rs:219:29 [INFO] [stderr] | [INFO] [stderr] 219 | fn add_available_moves_pawn(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^ help: consider using `_start_row` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `start_column` [INFO] [stderr] --> src/main.rs:219:45 [INFO] [stderr] | [INFO] [stderr] 219 | fn add_available_moves_pawn(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_start_column` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `board_array` [INFO] [stderr] --> src/main.rs:219:64 [INFO] [stderr] | [INFO] [stderr] 219 | fn add_available_moves_pawn(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^^^ help: consider using `_board_array` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `available_moves` [INFO] [stderr] --> src/main.rs:219:90 [INFO] [stderr] | [INFO] [stderr] 219 | fn add_available_moves_pawn(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using `_available_moves` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `color` [INFO] [stderr] --> src/main.rs:219:123 [INFO] [stderr] | [INFO] [stderr] 219 | fn add_available_moves_pawn(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^ help: consider using `_color` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `start_row` [INFO] [stderr] --> src/main.rs:223:31 [INFO] [stderr] | [INFO] [stderr] 223 | fn add_available_moves_bishop(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^ help: consider using `_start_row` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `start_column` [INFO] [stderr] --> src/main.rs:223:47 [INFO] [stderr] | [INFO] [stderr] 223 | fn add_available_moves_bishop(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_start_column` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `board_array` [INFO] [stderr] --> src/main.rs:223:66 [INFO] [stderr] | [INFO] [stderr] 223 | fn add_available_moves_bishop(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^^^ help: consider using `_board_array` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `available_moves` [INFO] [stderr] --> src/main.rs:223:92 [INFO] [stderr] | [INFO] [stderr] 223 | fn add_available_moves_bishop(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using `_available_moves` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `color` [INFO] [stderr] --> src/main.rs:223:125 [INFO] [stderr] | [INFO] [stderr] 223 | fn add_available_moves_bishop(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^ help: consider using `_color` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `start_row` [INFO] [stderr] --> src/main.rs:227:31 [INFO] [stderr] | [INFO] [stderr] 227 | fn add_available_moves_knight(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^ help: consider using `_start_row` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `start_column` [INFO] [stderr] --> src/main.rs:227:47 [INFO] [stderr] | [INFO] [stderr] 227 | fn add_available_moves_knight(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_start_column` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `board_array` [INFO] [stderr] --> src/main.rs:227:66 [INFO] [stderr] | [INFO] [stderr] 227 | fn add_available_moves_knight(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^^^ help: consider using `_board_array` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `available_moves` [INFO] [stderr] --> src/main.rs:227:92 [INFO] [stderr] | [INFO] [stderr] 227 | fn add_available_moves_knight(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using `_available_moves` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `color` [INFO] [stderr] --> src/main.rs:227:125 [INFO] [stderr] | [INFO] [stderr] 227 | fn add_available_moves_knight(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^ help: consider using `_color` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `start_row` [INFO] [stderr] --> src/main.rs:231:29 [INFO] [stderr] | [INFO] [stderr] 231 | fn add_available_moves_king(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^ help: consider using `_start_row` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `start_column` [INFO] [stderr] --> src/main.rs:231:45 [INFO] [stderr] | [INFO] [stderr] 231 | fn add_available_moves_king(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_start_column` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `board_array` [INFO] [stderr] --> src/main.rs:231:64 [INFO] [stderr] | [INFO] [stderr] 231 | fn add_available_moves_king(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^^^ help: consider using `_board_array` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `available_moves` [INFO] [stderr] --> src/main.rs:231:90 [INFO] [stderr] | [INFO] [stderr] 231 | fn add_available_moves_king(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using `_available_moves` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `color` [INFO] [stderr] --> src/main.rs:231:123 [INFO] [stderr] | [INFO] [stderr] 231 | fn add_available_moves_king(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^ help: consider using `_color` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `start_row` [INFO] [stderr] --> src/main.rs:235:30 [INFO] [stderr] | [INFO] [stderr] 235 | fn add_available_moves_queen(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^ help: consider using `_start_row` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `start_column` [INFO] [stderr] --> src/main.rs:235:46 [INFO] [stderr] | [INFO] [stderr] 235 | fn add_available_moves_queen(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_start_column` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `board_array` [INFO] [stderr] --> src/main.rs:235:65 [INFO] [stderr] | [INFO] [stderr] 235 | fn add_available_moves_queen(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^^^ help: consider using `_board_array` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `available_moves` [INFO] [stderr] --> src/main.rs:235:91 [INFO] [stderr] | [INFO] [stderr] 235 | fn add_available_moves_queen(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using `_available_moves` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `color` [INFO] [stderr] --> src/main.rs:235:124 [INFO] [stderr] | [INFO] [stderr] 235 | fn add_available_moves_queen(start_row:usize,start_column:usize,board_array:&[[&str;8];8],available_moves:&mut Vec,color:&str)->(){ [INFO] [stderr] | ^^^^^ help: consider using `_color` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/main.rs:249:21 [INFO] [stderr] | [INFO] [stderr] 249 | for i in 0..char.parse::().unwrap(){ [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:136:9 [INFO] [stderr] | [INFO] [stderr] 136 | let mut notation_letter:String="R".to_string(); [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: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/main.rs:56:33 [INFO] [stderr] | [INFO] [stderr] 56 | let mut piece_locations=duplicate_moves.get(key).unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&duplicate_moves[key]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:76:21 [INFO] [stderr] | [INFO] [stderr] 76 | end_of_move_string=end_of_move_string+&key.to_string().chars().nth(i).unwrap().to_string()[..]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `end_of_move_string += &key.to_string().chars().nth(i).unwrap().to_string()[..]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:136:9 [INFO] [stderr] | [INFO] [stderr] 136 | let mut notation_letter:String="R".to_string(); [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: this creates an owned instance just for comparison [INFO] [stderr] --> src/main.rs:114:16 [INFO] [stderr] | [INFO] [stderr] 114 | if column.to_string()==""{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `column` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_owned)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:118:21 [INFO] [stderr] | [INFO] [stderr] 118 | fen_string=fen_string+&empty_square_count.to_string()[..]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `fen_string += &empty_square_count.to_string()[..]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:125:13 [INFO] [stderr] | [INFO] [stderr] 125 | fen_string=fen_string+&empty_square_count.to_string()[..]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `fen_string += &empty_square_count.to_string()[..]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:128:13 [INFO] [stderr] | [INFO] [stderr] 128 | fen_string=fen_string+"/"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `fen_string += "/"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/main.rs:143:55 [INFO] [stderr] | [INFO] [stderr] 143 | let possible_move=notation_letter.clone()+COLUMNS_LOOKUP[start_column as usize].clone()+ROWS_LOOKUP[(start_row+row_counter) as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::clone_double_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 143 | let possible_move=notation_letter.clone()+&(*COLUMNS_LOOKUP[start_column as usize]).clone()+ROWS_LOOKUP[(start_row+row_counter) as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 143 | let possible_move=notation_letter.clone()+&str::clone(COLUMNS_LOOKUP[start_column as usize])+ROWS_LOOKUP[(start_row+row_counter) as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/main.rs:149:59 [INFO] [stderr] | [INFO] [stderr] 149 | let possible_move=notation_letter.clone()+"x"+COLUMNS_LOOKUP[start_column as usize].clone()+ROWS_LOOKUP[(start_row+row_counter)as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 149 | let possible_move=notation_letter.clone()+"x"+&(*COLUMNS_LOOKUP[start_column as usize]).clone()+ROWS_LOOKUP[(start_row+row_counter)as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 149 | let possible_move=notation_letter.clone()+"x"+&str::clone(COLUMNS_LOOKUP[start_column as usize])+ROWS_LOOKUP[(start_row+row_counter)as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/main.rs:161:55 [INFO] [stderr] | [INFO] [stderr] 161 | let possible_move=notation_letter.clone()+COLUMNS_LOOKUP[start_column as usize].clone()+ROWS_LOOKUP[(start_row-row_counter) as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 161 | let possible_move=notation_letter.clone()+&(*COLUMNS_LOOKUP[start_column as usize]).clone()+ROWS_LOOKUP[(start_row-row_counter) as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 161 | let possible_move=notation_letter.clone()+&str::clone(COLUMNS_LOOKUP[start_column as usize])+ROWS_LOOKUP[(start_row-row_counter) as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/main.rs:167:59 [INFO] [stderr] | [INFO] [stderr] 167 | let possible_move=notation_letter.clone()+"x"+COLUMNS_LOOKUP[start_column as usize].clone()+ROWS_LOOKUP[(start_row-row_counter) as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 167 | let possible_move=notation_letter.clone()+"x"+&(*COLUMNS_LOOKUP[start_column as usize]).clone()+ROWS_LOOKUP[(start_row-row_counter) as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 167 | let possible_move=notation_letter.clone()+"x"+&str::clone(COLUMNS_LOOKUP[start_column as usize])+ROWS_LOOKUP[(start_row-row_counter) as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/main.rs:178:55 [INFO] [stderr] | [INFO] [stderr] 178 | let possible_move=notation_letter.clone()+COLUMNS_LOOKUP[(start_column+column_counter) as usize].clone()+ROWS_LOOKUP[start_row as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 178 | let possible_move=notation_letter.clone()+&(*COLUMNS_LOOKUP[(start_column+column_counter) as usize]).clone()+ROWS_LOOKUP[start_row as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 178 | let possible_move=notation_letter.clone()+&str::clone(COLUMNS_LOOKUP[(start_column+column_counter) as usize])+ROWS_LOOKUP[start_row as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/main.rs:184:59 [INFO] [stderr] | [INFO] [stderr] 184 | let possible_move=notation_letter.clone()+"x"+COLUMNS_LOOKUP[(start_column+column_counter) as usize].clone()+ROWS_LOOKUP[start_row as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 184 | let possible_move=notation_letter.clone()+"x"+&(*COLUMNS_LOOKUP[(start_column+column_counter) as usize]).clone()+ROWS_LOOKUP[start_row as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 184 | let possible_move=notation_letter.clone()+"x"+&str::clone(COLUMNS_LOOKUP[(start_column+column_counter) as usize])+ROWS_LOOKUP[start_row as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/main.rs:196:55 [INFO] [stderr] | [INFO] [stderr] 196 | let possible_move=notation_letter.clone()+COLUMNS_LOOKUP[(start_column-column_counter) as usize].clone()+ROWS_LOOKUP[start_row as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 196 | let possible_move=notation_letter.clone()+&(*COLUMNS_LOOKUP[(start_column-column_counter) as usize]).clone()+ROWS_LOOKUP[start_row as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 196 | let possible_move=notation_letter.clone()+&str::clone(COLUMNS_LOOKUP[(start_column-column_counter) as usize])+ROWS_LOOKUP[start_row as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/main.rs:202:59 [INFO] [stderr] | [INFO] [stderr] 202 | let possible_move=notation_letter.clone()+"x"+COLUMNS_LOOKUP[(start_column-column_counter) as usize].clone()+ROWS_LOOKUP[start_row as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 202 | let possible_move=notation_letter.clone()+"x"+&(*COLUMNS_LOOKUP[(start_column-column_counter) as usize]).clone()+ROWS_LOOKUP[start_row as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 202 | let possible_move=notation_letter.clone()+"x"+&str::clone(COLUMNS_LOOKUP[(start_column-column_counter) as usize])+ROWS_LOOKUP[start_row as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main.rs:211:98 [INFO] [stderr] | [INFO] [stderr] 211 | fn insert_into_duplicate_moves(duplicate_moves:&mut HashMap>,possible_move:&String,start_row:i8,start_column:i8)->(){ [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/main.rs:56:33 [INFO] [stderr] | [INFO] [stderr] 56 | let mut piece_locations=duplicate_moves.get(key).unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&duplicate_moves[key]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:76:21 [INFO] [stderr] | [INFO] [stderr] 76 | end_of_move_string=end_of_move_string+&key.to_string().chars().nth(i).unwrap().to_string()[..]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `end_of_move_string += &key.to_string().chars().nth(i).unwrap().to_string()[..]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:241:80 [INFO] [stderr] | [INFO] [stderr] 241 | let piece_locations=fen.split_whitespace().collect::>()[0].split("/").collect::>(); [INFO] [stderr] | ^^^ help: try using a char instead: `'/'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/main.rs:114:16 [INFO] [stderr] | [INFO] [stderr] 114 | if column.to_string()==""{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `column` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_owned)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:118:21 [INFO] [stderr] | [INFO] [stderr] 118 | fen_string=fen_string+&empty_square_count.to_string()[..]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `fen_string += &empty_square_count.to_string()[..]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:125:13 [INFO] [stderr] | [INFO] [stderr] 125 | fen_string=fen_string+&empty_square_count.to_string()[..]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `fen_string += &empty_square_count.to_string()[..]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:128:13 [INFO] [stderr] | [INFO] [stderr] 128 | fen_string=fen_string+"/"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `fen_string += "/"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] error: aborting due to 8 previous errors [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/main.rs:143:55 [INFO] [stderr] | [INFO] [stderr] 143 | let possible_move=notation_letter.clone()+COLUMNS_LOOKUP[start_column as usize].clone()+ROWS_LOOKUP[(start_row+row_counter) as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::clone_double_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 143 | let possible_move=notation_letter.clone()+&(*COLUMNS_LOOKUP[start_column as usize]).clone()+ROWS_LOOKUP[(start_row+row_counter) as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 143 | let possible_move=notation_letter.clone()+&str::clone(COLUMNS_LOOKUP[start_column as usize])+ROWS_LOOKUP[(start_row+row_counter) as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/main.rs:149:59 [INFO] [stderr] | [INFO] [stderr] 149 | let possible_move=notation_letter.clone()+"x"+COLUMNS_LOOKUP[start_column as usize].clone()+ROWS_LOOKUP[(start_row+row_counter)as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 149 | let possible_move=notation_letter.clone()+"x"+&(*COLUMNS_LOOKUP[start_column as usize]).clone()+ROWS_LOOKUP[(start_row+row_counter)as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 149 | let possible_move=notation_letter.clone()+"x"+&str::clone(COLUMNS_LOOKUP[start_column as usize])+ROWS_LOOKUP[(start_row+row_counter)as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/main.rs:161:55 [INFO] [stderr] | [INFO] [stderr] 161 | let possible_move=notation_letter.clone()+COLUMNS_LOOKUP[start_column as usize].clone()+ROWS_LOOKUP[(start_row-row_counter) as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 161 | let possible_move=notation_letter.clone()+&(*COLUMNS_LOOKUP[start_column as usize]).clone()+ROWS_LOOKUP[(start_row-row_counter) as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 161 | let possible_move=notation_letter.clone()+&str::clone(COLUMNS_LOOKUP[start_column as usize])+ROWS_LOOKUP[(start_row-row_counter) as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/main.rs:167:59 [INFO] [stderr] | [INFO] [stderr] 167 | let possible_move=notation_letter.clone()+"x"+COLUMNS_LOOKUP[start_column as usize].clone()+ROWS_LOOKUP[(start_row-row_counter) as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 167 | let possible_move=notation_letter.clone()+"x"+&(*COLUMNS_LOOKUP[start_column as usize]).clone()+ROWS_LOOKUP[(start_row-row_counter) as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 167 | let possible_move=notation_letter.clone()+"x"+&str::clone(COLUMNS_LOOKUP[start_column as usize])+ROWS_LOOKUP[(start_row-row_counter) as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/main.rs:178:55 [INFO] [stderr] | [INFO] [stderr] 178 | let possible_move=notation_letter.clone()+COLUMNS_LOOKUP[(start_column+column_counter) as usize].clone()+ROWS_LOOKUP[start_row as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 178 | let possible_move=notation_letter.clone()+&(*COLUMNS_LOOKUP[(start_column+column_counter) as usize]).clone()+ROWS_LOOKUP[start_row as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 178 | let possible_move=notation_letter.clone()+&str::clone(COLUMNS_LOOKUP[(start_column+column_counter) as usize])+ROWS_LOOKUP[start_row as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/main.rs:184:59 [INFO] [stderr] | [INFO] [stderr] 184 | let possible_move=notation_letter.clone()+"x"+COLUMNS_LOOKUP[(start_column+column_counter) as usize].clone()+ROWS_LOOKUP[start_row as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 184 | let possible_move=notation_letter.clone()+"x"+&(*COLUMNS_LOOKUP[(start_column+column_counter) as usize]).clone()+ROWS_LOOKUP[start_row as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 184 | let possible_move=notation_letter.clone()+"x"+&str::clone(COLUMNS_LOOKUP[(start_column+column_counter) as usize])+ROWS_LOOKUP[start_row as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/main.rs:196:55 [INFO] [stderr] | [INFO] [stderr] 196 | let possible_move=notation_letter.clone()+COLUMNS_LOOKUP[(start_column-column_counter) as usize].clone()+ROWS_LOOKUP[start_row as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 196 | let possible_move=notation_letter.clone()+&(*COLUMNS_LOOKUP[(start_column-column_counter) as usize]).clone()+ROWS_LOOKUP[start_row as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 196 | let possible_move=notation_letter.clone()+&str::clone(COLUMNS_LOOKUP[(start_column-column_counter) as usize])+ROWS_LOOKUP[start_row as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/main.rs:202:59 [INFO] [stderr] | [INFO] [stderr] 202 | let possible_move=notation_letter.clone()+"x"+COLUMNS_LOOKUP[(start_column-column_counter) as usize].clone()+ROWS_LOOKUP[start_row as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 202 | let possible_move=notation_letter.clone()+"x"+&(*COLUMNS_LOOKUP[(start_column-column_counter) as usize]).clone()+ROWS_LOOKUP[start_row as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 202 | let possible_move=notation_letter.clone()+"x"+&str::clone(COLUMNS_LOOKUP[(start_column-column_counter) as usize])+ROWS_LOOKUP[start_row as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main.rs:211:98 [INFO] [stderr] | [INFO] [stderr] 211 | fn insert_into_duplicate_moves(duplicate_moves:&mut HashMap>,possible_move:&String,start_row:i8,start_column:i8)->(){ [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] error: Could not compile `move_generator`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:241:80 [INFO] [stderr] | [INFO] [stderr] 241 | let piece_locations=fen.split_whitespace().collect::>()[0].split("/").collect::>(); [INFO] [stderr] | ^^^ help: try using a char instead: `'/'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] error: aborting due to 8 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `move_generator`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "1c910bd83a93dd0984eb671df72185808377a1137dee0637c145d4a8fdba4e44"` [INFO] running `"docker" "rm" "-f" "1c910bd83a93dd0984eb671df72185808377a1137dee0637c145d4a8fdba4e44"` [INFO] [stdout] 1c910bd83a93dd0984eb671df72185808377a1137dee0637c145d4a8fdba4e44