[INFO] updating cached repository psincf/Tron-Rust [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/psincf/Tron-Rust [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/psincf/Tron-Rust" "work/ex/clippy-test-run/sources/stable/gh/psincf/Tron-Rust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/psincf/Tron-Rust'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/psincf/Tron-Rust" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/psincf/Tron-Rust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/psincf/Tron-Rust'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 7bdf0ecdd27312c6803e3f6e9a0e333bcfe95f58 [INFO] sha for GitHub repo psincf/Tron-Rust: 7bdf0ecdd27312c6803e3f6e9a0e333bcfe95f58 [INFO] validating manifest of psincf/Tron-Rust 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 psincf/Tron-Rust 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 psincf/Tron-Rust [INFO] finished frobbing psincf/Tron-Rust [INFO] frobbed toml for psincf/Tron-Rust written to work/ex/clippy-test-run/sources/stable/gh/psincf/Tron-Rust/Cargo.toml [INFO] started frobbing psincf/Tron-Rust [INFO] finished frobbing psincf/Tron-Rust [INFO] frobbed toml for psincf/Tron-Rust written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/psincf/Tron-Rust/Cargo.toml [INFO] crate psincf/Tron-Rust 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 psincf/Tron-Rust against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/psincf/Tron-Rust:/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" "-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] e4ff35a120a5ca2fff3a9674ccd7ff96844a29c8306ee9651fc828d4a2eca5c3 [INFO] running `"docker" "start" "-a" "e4ff35a120a5ca2fff3a9674ccd7ff96844a29c8306ee9651fc828d4a2eca5c3"` [INFO] [stderr] Compiling proc-macro2 v0.4.14 [INFO] [stderr] Compiling libloading v0.5.0 [INFO] [stderr] Checking unreachable v0.1.1 [INFO] [stderr] Checking num-rational v0.2.1 [INFO] [stderr] Compiling glutin v0.18.0 [INFO] [stderr] Checking parking_lot_core v0.3.1 [INFO] [stderr] Checking jpeg-decoder v0.1.15 [INFO] [stderr] Checking ordered-float v0.5.0 [INFO] [stderr] Checking rusttype v0.4.3 [INFO] [stderr] Checking parking_lot v0.6.4 [INFO] [stderr] Checking dlib v0.4.1 [INFO] [stderr] Checking wayland-sys v0.20.12 [INFO] [stderr] Checking wayland-commons v0.20.12 [INFO] [stderr] Checking piston2d-graphics v0.26.0 [INFO] [stderr] Checking wayland-client v0.20.12 [INFO] [stderr] Compiling quote v0.6.8 [INFO] [stderr] Compiling syn v0.14.9 [INFO] [stderr] Checking wayland-protocols v0.20.12 [INFO] [stderr] Checking smithay-client-toolkit v0.3.0 [INFO] [stderr] Compiling num-derive v0.2.2 [INFO] [stderr] Compiling serde_derive v1.0.75 [INFO] [stderr] Checking tiff v0.2.1 [INFO] [stderr] Checking winit v0.17.2 [INFO] [stderr] Checking image v0.20.0 [INFO] [stderr] Checking pistoncore-input v0.21.0 [INFO] [stderr] Checking piston-gfx_texture v0.34.0 [INFO] [stderr] Checking piston2d-opengl_graphics v0.54.0 [INFO] [stderr] Checking piston2d-gfx_graphics v0.52.0 [INFO] [stderr] Checking pistoncore-window v0.32.0 [INFO] [stderr] Checking pistoncore-event_loop v0.37.0 [INFO] [stderr] Checking pistoncore-glutin_window v0.48.0 [INFO] [stderr] Checking piston v0.37.0 [INFO] [stderr] Checking piston_window v0.82.0 [INFO] [stderr] Checking tron v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | return App{window, gl}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `App{window, gl}` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:68:5 [INFO] [stderr] | [INFO] [stderr] 68 | return Snake {body, direction:Direction::Right, new_direction:Direction::Right, player:Player::Human}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Snake {body, direction:Direction::Right, new_direction:Direction::Right, player:Player::Human}` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:76:5 [INFO] [stderr] | [INFO] [stderr] 76 | return snake_bots; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `snake_bots` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:154:5 [INFO] [stderr] | [INFO] [stderr] 154 | return Snake {body, direction:Direction::Right, new_direction:Direction::Right, player:Player::Bot}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Snake {body, direction:Direction::Right, new_direction:Direction::Right, player:Player::Bot}` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:172:5 [INFO] [stderr] | [INFO] [stderr] 172 | return matrix; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `matrix` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:253:5 [INFO] [stderr] | [INFO] [stderr] 253 | return move_snake(snake, matrix); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `move_snake(snake, matrix)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:305:5 [INFO] [stderr] | [INFO] [stderr] 305 | return 1; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/main.rs:71:26 [INFO] [stderr] | [INFO] [stderr] 71 | fn initialize_snake_bots(ref mut matrix: &mut Matrix) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | return App{window, gl}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `App{window, gl}` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/main.rs:78:25 [INFO] [stderr] | [INFO] [stderr] 78 | fn initialize_snake_bot(ref mut matrix: &mut Matrix) -> Snake { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:68:5 [INFO] [stderr] | [INFO] [stderr] 68 | return Snake {body, direction:Direction::Right, new_direction:Direction::Right, player:Player::Human}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Snake {body, direction:Direction::Right, new_direction:Direction::Right, player:Player::Human}` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:76:5 [INFO] [stderr] | [INFO] [stderr] 76 | return snake_bots; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `snake_bots` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:154:5 [INFO] [stderr] | [INFO] [stderr] 154 | return Snake {body, direction:Direction::Right, new_direction:Direction::Right, player:Player::Bot}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Snake {body, direction:Direction::Right, new_direction:Direction::Right, player:Player::Bot}` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:172:5 [INFO] [stderr] | [INFO] [stderr] 172 | return matrix; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `matrix` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:253:5 [INFO] [stderr] | [INFO] [stderr] 253 | return move_snake(snake, matrix); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `move_snake(snake, matrix)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:305:5 [INFO] [stderr] | [INFO] [stderr] 305 | return 1; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: the loop variable `x` is only used to index `temp_matrix`. [INFO] [stderr] --> src/main.rs:89:14 [INFO] [stderr] | [INFO] [stderr] 89 | for x in 0..10 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 89 | for in temp_matrix.iter_mut().take(10) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `x` is only used to index `temp_matrix`. [INFO] [stderr] --> src/main.rs:94:14 [INFO] [stderr] | [INFO] [stderr] 94 | for x in XGAME-10..XGAME { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 94 | for in temp_matrix.iter_mut().take(XGAME).skip(XGAME-10) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `x` is only used to index `temp_matrix`. [INFO] [stderr] --> src/main.rs:100:18 [INFO] [stderr] | [INFO] [stderr] 100 | for x in 0..XGAME { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 100 | for in temp_matrix.iter_mut().take(XGAME) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `x` is only used to index `temp_matrix`. [INFO] [stderr] --> src/main.rs:105:18 [INFO] [stderr] | [INFO] [stderr] 105 | for x in 0..XGAME { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 105 | for in temp_matrix.iter_mut().take(XGAME) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:113:13 [INFO] [stderr] | [INFO] [stderr] 113 | / match *state { State::Snake(_) => { [INFO] [stderr] 114 | | for ix in x-30..x+30 { [INFO] [stderr] 115 | | for iy in y-30..y+30 { [INFO] [stderr] 116 | | if ix>=0 && (ix as usize)=0 && (iy as usize) (), [INFO] [stderr] 124 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 113 | if let State::Snake(_) = *state { [INFO] [stderr] 114 | for ix in x-30..x+30 { [INFO] [stderr] 115 | for iy in y-30..y+30 { [INFO] [stderr] 116 | if ix>=0 && (ix as usize)=0 && (iy as usize) src/main.rs:125:13 [INFO] [stderr] | [INFO] [stderr] 125 | y = y + 1; [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `y += 1` [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: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:128:9 [INFO] [stderr] | [INFO] [stderr] 128 | x = x + 1; [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `x += 1` [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: equality checks against true are unnecessary [INFO] [stderr] --> src/main.rs:134:16 [INFO] [stderr] | [INFO] [stderr] 134 | if *temp == true { free_space_vec.push((x,y)); } [INFO] [stderr] | ^^^^^^^^^^^^^ help: try simplifying it as shown: `*temp` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:135:13 [INFO] [stderr] | [INFO] [stderr] 135 | y = y + 1; [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `y += 1` [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:138:9 [INFO] [stderr] | [INFO] [stderr] 138 | x = x + 1; [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `x += 1` [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: length comparison to zero [INFO] [stderr] --> src/main.rs:141:8 [INFO] [stderr] | [INFO] [stderr] 141 | if free_space_vec.len() == 0 {return Snake {body, direction:Direction::Right, new_direction:Direction::Right, player:Player::Bot}} //TODO [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `free_space_vec.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/main.rs:158:22 [INFO] [stderr] | [INFO] [stderr] 158 | fn initialize_matrix(ref snake : &Snake) -> Matrix { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `snake_bots`. [INFO] [stderr] --> src/main.rs:180:22 [INFO] [stderr] | [INFO] [stderr] 180 | for i in 0..snake_bots.len(){ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 180 | for in &mut snake_bots{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:189:48 [INFO] [stderr] | [INFO] [stderr] 189 | if *state==State::Void{y = y + 1;continue} [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `y += 1` [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:200:25 [INFO] [stderr] | [INFO] [stderr] 200 | y = y + 1; [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `y += 1` [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:203:21 [INFO] [stderr] | [INFO] [stderr] 203 | x = x +1; [INFO] [stderr] | ^^^^^^^^ help: replace it with: `x += 1` [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: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/main.rs:231:11 [INFO] [stderr] | [INFO] [stderr] 231 | fn update(ref mut snake: &mut Snake, ref mut matrix: &mut Matrix) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/main.rs:231:38 [INFO] [stderr] | [INFO] [stderr] 231 | fn update(ref mut snake: &mut Snake, ref mut matrix: &mut Matrix) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/main.rs:256:15 [INFO] [stderr] | [INFO] [stderr] 256 | fn move_snake(ref mut snake:&mut Snake, ref mut matrix:&mut Matrix) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/main.rs:256:41 [INFO] [stderr] | [INFO] [stderr] 256 | fn move_snake(ref mut snake:&mut Snake, ref mut matrix:&mut Matrix) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:257:8 [INFO] [stderr] | [INFO] [stderr] 257 | if snake.body.len() == 0 {return 0} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `snake.body.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:261:26 [INFO] [stderr] | [INFO] [stderr] 261 | Direction::Up => snake_head.1 = snake_head.1 - 1, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `snake_head.1 -= 1` [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:262:28 [INFO] [stderr] | [INFO] [stderr] 262 | Direction::Down => snake_head.1 = snake_head.1 + 1, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `snake_head.1 += 1` [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:263:28 [INFO] [stderr] | [INFO] [stderr] 263 | Direction::Left => snake_head.0 = snake_head.0 - 1, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `snake_head.0 -= 1` [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:264:29 [INFO] [stderr] | [INFO] [stderr] 264 | Direction::Right => snake_head.0 = snake_head.0 + 1, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `snake_head.0 += 1` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/main.rs:304:57 [INFO] [stderr] | [INFO] [stderr] 304 | matrix.state[x as usize][y as usize] = State::Snake(snake.player.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `snake.player` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/main.rs:71:26 [INFO] [stderr] | [INFO] [stderr] 71 | fn initialize_snake_bots(ref mut matrix: &mut Matrix) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/main.rs:78:25 [INFO] [stderr] | [INFO] [stderr] 78 | fn initialize_snake_bot(ref mut matrix: &mut Matrix) -> Snake { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: the loop variable `x` is only used to index `temp_matrix`. [INFO] [stderr] --> src/main.rs:89:14 [INFO] [stderr] | [INFO] [stderr] 89 | for x in 0..10 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 89 | for in temp_matrix.iter_mut().take(10) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `x` is only used to index `temp_matrix`. [INFO] [stderr] --> src/main.rs:94:14 [INFO] [stderr] | [INFO] [stderr] 94 | for x in XGAME-10..XGAME { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 94 | for in temp_matrix.iter_mut().take(XGAME).skip(XGAME-10) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `x` is only used to index `temp_matrix`. [INFO] [stderr] --> src/main.rs:100:18 [INFO] [stderr] | [INFO] [stderr] 100 | for x in 0..XGAME { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 100 | for in temp_matrix.iter_mut().take(XGAME) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `x` is only used to index `temp_matrix`. [INFO] [stderr] --> src/main.rs:105:18 [INFO] [stderr] | [INFO] [stderr] 105 | for x in 0..XGAME { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 105 | for in temp_matrix.iter_mut().take(XGAME) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:113:13 [INFO] [stderr] | [INFO] [stderr] 113 | / match *state { State::Snake(_) => { [INFO] [stderr] 114 | | for ix in x-30..x+30 { [INFO] [stderr] 115 | | for iy in y-30..y+30 { [INFO] [stderr] 116 | | if ix>=0 && (ix as usize)=0 && (iy as usize) (), [INFO] [stderr] 124 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 113 | if let State::Snake(_) = *state { [INFO] [stderr] 114 | for ix in x-30..x+30 { [INFO] [stderr] 115 | for iy in y-30..y+30 { [INFO] [stderr] 116 | if ix>=0 && (ix as usize)=0 && (iy as usize) src/main.rs:125:13 [INFO] [stderr] | [INFO] [stderr] 125 | y = y + 1; [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `y += 1` [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: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:128:9 [INFO] [stderr] | [INFO] [stderr] 128 | x = x + 1; [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `x += 1` [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: equality checks against true are unnecessary [INFO] [stderr] --> src/main.rs:134:16 [INFO] [stderr] | [INFO] [stderr] 134 | if *temp == true { free_space_vec.push((x,y)); } [INFO] [stderr] | ^^^^^^^^^^^^^ help: try simplifying it as shown: `*temp` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:135:13 [INFO] [stderr] | [INFO] [stderr] 135 | y = y + 1; [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `y += 1` [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:138:9 [INFO] [stderr] | [INFO] [stderr] 138 | x = x + 1; [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `x += 1` [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: length comparison to zero [INFO] [stderr] --> src/main.rs:141:8 [INFO] [stderr] | [INFO] [stderr] 141 | if free_space_vec.len() == 0 {return Snake {body, direction:Direction::Right, new_direction:Direction::Right, player:Player::Bot}} //TODO [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `free_space_vec.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/main.rs:158:22 [INFO] [stderr] | [INFO] [stderr] 158 | fn initialize_matrix(ref snake : &Snake) -> Matrix { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `snake_bots`. [INFO] [stderr] --> src/main.rs:180:22 [INFO] [stderr] | [INFO] [stderr] 180 | for i in 0..snake_bots.len(){ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 180 | for in &mut snake_bots{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:189:48 [INFO] [stderr] | [INFO] [stderr] 189 | if *state==State::Void{y = y + 1;continue} [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `y += 1` [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:200:25 [INFO] [stderr] | [INFO] [stderr] 200 | y = y + 1; [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `y += 1` [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:203:21 [INFO] [stderr] | [INFO] [stderr] 203 | x = x +1; [INFO] [stderr] | ^^^^^^^^ help: replace it with: `x += 1` [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: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/main.rs:231:11 [INFO] [stderr] | [INFO] [stderr] 231 | fn update(ref mut snake: &mut Snake, ref mut matrix: &mut Matrix) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/main.rs:231:38 [INFO] [stderr] | [INFO] [stderr] 231 | fn update(ref mut snake: &mut Snake, ref mut matrix: &mut Matrix) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/main.rs:256:15 [INFO] [stderr] | [INFO] [stderr] 256 | fn move_snake(ref mut snake:&mut Snake, ref mut matrix:&mut Matrix) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/main.rs:256:41 [INFO] [stderr] | [INFO] [stderr] 256 | fn move_snake(ref mut snake:&mut Snake, ref mut matrix:&mut Matrix) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:257:8 [INFO] [stderr] | [INFO] [stderr] 257 | if snake.body.len() == 0 {return 0} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `snake.body.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:261:26 [INFO] [stderr] | [INFO] [stderr] 261 | Direction::Up => snake_head.1 = snake_head.1 - 1, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `snake_head.1 -= 1` [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:262:28 [INFO] [stderr] | [INFO] [stderr] 262 | Direction::Down => snake_head.1 = snake_head.1 + 1, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `snake_head.1 += 1` [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:263:28 [INFO] [stderr] | [INFO] [stderr] 263 | Direction::Left => snake_head.0 = snake_head.0 - 1, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `snake_head.0 -= 1` [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:264:29 [INFO] [stderr] | [INFO] [stderr] 264 | Direction::Right => snake_head.0 = snake_head.0 + 1, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `snake_head.0 += 1` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/main.rs:304:57 [INFO] [stderr] | [INFO] [stderr] 304 | matrix.state[x as usize][y as usize] = State::Snake(snake.player.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `snake.player` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1m 09s [INFO] running `"docker" "inspect" "e4ff35a120a5ca2fff3a9674ccd7ff96844a29c8306ee9651fc828d4a2eca5c3"` [INFO] running `"docker" "rm" "-f" "e4ff35a120a5ca2fff3a9674ccd7ff96844a29c8306ee9651fc828d4a2eca5c3"` [INFO] [stdout] e4ff35a120a5ca2fff3a9674ccd7ff96844a29c8306ee9651fc828d4a2eca5c3