[INFO] updating cached repository JosefKuchar/neural-snake [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/JosefKuchar/neural-snake [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/JosefKuchar/neural-snake" "work/ex/clippy-test-run/sources/stable/gh/JosefKuchar/neural-snake"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/JosefKuchar/neural-snake'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/JosefKuchar/neural-snake" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/JosefKuchar/neural-snake"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/JosefKuchar/neural-snake'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 68d465b2e0ab25f6448ca195fdabebf7a721793b [INFO] sha for GitHub repo JosefKuchar/neural-snake: 68d465b2e0ab25f6448ca195fdabebf7a721793b [INFO] validating manifest of JosefKuchar/neural-snake 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 JosefKuchar/neural-snake 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 JosefKuchar/neural-snake [INFO] finished frobbing JosefKuchar/neural-snake [INFO] frobbed toml for JosefKuchar/neural-snake written to work/ex/clippy-test-run/sources/stable/gh/JosefKuchar/neural-snake/Cargo.toml [INFO] started frobbing JosefKuchar/neural-snake [INFO] finished frobbing JosefKuchar/neural-snake [INFO] frobbed toml for JosefKuchar/neural-snake written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/JosefKuchar/neural-snake/Cargo.toml [INFO] crate JosefKuchar/neural-snake 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 JosefKuchar/neural-snake against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-5/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/JosefKuchar/neural-snake:/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] 79742bcc65e97b3a403defe9b13d264851ae207e12225032ee5a1d09d11f7d4e [INFO] running `"docker" "start" "-a" "79742bcc65e97b3a403defe9b13d264851ae207e12225032ee5a1d09d11f7d4e"` [INFO] [stderr] Compiling num-traits v0.1.43 [INFO] [stderr] Compiling phf_generator v0.7.21 [INFO] [stderr] Checking rayon-core v1.3.0 [INFO] [stderr] Checking tempfile v2.2.0 [INFO] [stderr] Compiling glutin v0.10.1 [INFO] [stderr] Compiling gl v0.7.0 [INFO] [stderr] Checking gfx_device_gl v0.15.0 [INFO] [stderr] Compiling serde_json v0.9.10 [INFO] [stderr] Compiling phf_codegen v0.7.21 [INFO] [stderr] Checking rayon v0.8.2 [INFO] [stderr] Compiling target_build_utils v0.3.1 [INFO] [stderr] Checking jpeg-decoder v0.1.13 [INFO] [stderr] Checking image v0.18.0 [INFO] [stderr] Compiling libloading v0.3.4 [INFO] [stderr] Checking piston-gfx_texture v0.31.0 [INFO] [stderr] Checking piston2d-opengl_graphics v0.50.0 [INFO] [stderr] Checking dlib v0.3.1 [INFO] [stderr] Checking wayland-sys v0.9.10 [INFO] [stderr] Checking wayland-client v0.9.10 [INFO] [stderr] Checking piston2d-gfx_graphics v0.48.0 [INFO] [stderr] Checking wayland-protocols v0.9.10 [INFO] [stderr] Checking wayland-kbd v0.9.1 [INFO] [stderr] Checking wayland-window v0.8.0 [INFO] [stderr] Checking winit v0.8.3 [INFO] [stderr] Checking pistoncore-glutin_window v0.43.0 [INFO] [stderr] Checking piston_window v0.75.0 [INFO] [stderr] Checking neural_snake v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:106:24 [INFO] [stderr] | [INFO] [stderr] 106 | return Point { x: x, y: y }; [INFO] [stderr] | ^^^^ help: replace it with: `x` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:106:30 [INFO] [stderr] | [INFO] [stderr] 106 | return Point { x: x, y: y }; [INFO] [stderr] | ^^^^ help: replace it with: `y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:135:13 [INFO] [stderr] | [INFO] [stderr] 135 | parts: parts, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `parts` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:136:13 [INFO] [stderr] | [INFO] [stderr] 136 | board: board, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `board` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:306:13 [INFO] [stderr] | [INFO] [stderr] 306 | width: width, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `width` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:307:13 [INFO] [stderr] | [INFO] [stderr] 307 | height: height, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `height` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:346:13 [INFO] [stderr] | [INFO] [stderr] 346 | pool: pool, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `pool` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:348:13 [INFO] [stderr] | [INFO] [stderr] 348 | pool_size: pool_size, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `pool_size` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:441:13 [INFO] [stderr] | [INFO] [stderr] 441 | genomes: genomes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `genomes` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:459:13 [INFO] [stderr] | [INFO] [stderr] 459 | genomes: genomes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `genomes` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:509:13 [INFO] [stderr] | [INFO] [stderr] 509 | weight_count: weight_count, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `weight_count` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:106:24 [INFO] [stderr] | [INFO] [stderr] 106 | return Point { x: x, y: y }; [INFO] [stderr] | ^^^^ help: replace it with: `x` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:106:30 [INFO] [stderr] | [INFO] [stderr] 106 | return Point { x: x, y: y }; [INFO] [stderr] | ^^^^ help: replace it with: `y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:135:13 [INFO] [stderr] | [INFO] [stderr] 135 | parts: parts, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `parts` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:136:13 [INFO] [stderr] | [INFO] [stderr] 136 | board: board, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `board` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:306:13 [INFO] [stderr] | [INFO] [stderr] 306 | width: width, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `width` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:307:13 [INFO] [stderr] | [INFO] [stderr] 307 | height: height, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `height` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:346:13 [INFO] [stderr] | [INFO] [stderr] 346 | pool: pool, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `pool` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:348:13 [INFO] [stderr] | [INFO] [stderr] 348 | pool_size: pool_size, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `pool_size` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:441:13 [INFO] [stderr] | [INFO] [stderr] 441 | genomes: genomes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `genomes` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:459:13 [INFO] [stderr] | [INFO] [stderr] 459 | genomes: genomes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `genomes` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:509:13 [INFO] [stderr] | [INFO] [stderr] 509 | weight_count: weight_count, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `weight_count` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:100:9 [INFO] [stderr] | [INFO] [stderr] 100 | return self.x == point.x && self.y == point.y; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.x == point.x && self.y == point.y` [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:106:9 [INFO] [stderr] | [INFO] [stderr] 106 | return Point { x: x, y: y }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Point { x: x, y: y }` [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:113:9 [INFO] [stderr] | [INFO] [stderr] 113 | / return Point::new( [INFO] [stderr] 114 | | rangeX.ind_sample(&mut rng) as isize, [INFO] [stderr] 115 | | rangeY.ind_sample(&mut rng) as isize, [INFO] [stderr] 116 | | ); [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 113 | Point::new( [INFO] [stderr] 114 | rangeX.ind_sample(&mut rng) as isize, [INFO] [stderr] 115 | rangeY.ind_sample(&mut rng) as isize, [INFO] [stderr] 116 | ) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:133:9 [INFO] [stderr] | [INFO] [stderr] 133 | / return Snake { [INFO] [stderr] 134 | | direction: 0, [INFO] [stderr] 135 | | parts: parts, [INFO] [stderr] 136 | | board: board, [INFO] [stderr] 137 | | alive: true, [INFO] [stderr] 138 | | steps_without_food: 0, [INFO] [stderr] 139 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 133 | Snake { [INFO] [stderr] 134 | direction: 0, [INFO] [stderr] 135 | parts: parts, [INFO] [stderr] 136 | board: board, [INFO] [stderr] 137 | alive: true, [INFO] [stderr] 138 | steps_without_food: 0, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:144:9 [INFO] [stderr] | [INFO] [stderr] 144 | / return head.x >= 0 && head.y >= 0 && head.x < self.board.width as isize [INFO] [stderr] 145 | | && head.y < self.board.height as isize; [INFO] [stderr] | |___________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 144 | head.x >= 0 && head.y >= 0 && head.x < self.board.width as isize [INFO] [stderr] 145 | && head.y < self.board.height as isize [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:157:9 [INFO] [stderr] | [INFO] [stderr] 157 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [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:166:9 [INFO] [stderr] | [INFO] [stderr] 166 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [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:199:9 [INFO] [stderr] | [INFO] [stderr] 199 | return sum / f32::consts::PI; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `sum / f32::consts::PI` [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:231:9 [INFO] [stderr] | [INFO] [stderr] 231 | return inputs; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `inputs` [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:9 [INFO] [stderr] | [INFO] [stderr] 305 | / return Board { [INFO] [stderr] 306 | | width: width, [INFO] [stderr] 307 | | height: height, [INFO] [stderr] 308 | | food: Point::random(width, height), [INFO] [stderr] 309 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 305 | Board { [INFO] [stderr] 306 | width: width, [INFO] [stderr] 307 | height: height, [INFO] [stderr] 308 | food: Point::random(width, height), [INFO] [stderr] 309 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:313:9 [INFO] [stderr] | [INFO] [stderr] 313 | return x >= 0 && y >= 0 && x < self.width as isize && y < self.height as isize; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `x >= 0 && y >= 0 && x < self.width as isize && y < self.height as isize` [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:345:9 [INFO] [stderr] | [INFO] [stderr] 345 | / return DnaPool { [INFO] [stderr] 346 | | pool: pool, [INFO] [stderr] 347 | | index: 0, [INFO] [stderr] 348 | | pool_size: pool_size, [INFO] [stderr] 349 | | best: Dna::new(dna_size), [INFO] [stderr] 350 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 345 | DnaPool { [INFO] [stderr] 346 | pool: pool, [INFO] [stderr] 347 | index: 0, [INFO] [stderr] 348 | pool_size: pool_size, [INFO] [stderr] 349 | best: Dna::new(dna_size), [INFO] [stderr] 350 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:355:9 [INFO] [stderr] | [INFO] [stderr] 355 | return &dna.genomes; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&dna.genomes` [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:440:9 [INFO] [stderr] | [INFO] [stderr] 440 | / return Dna { [INFO] [stderr] 441 | | genomes: genomes, [INFO] [stderr] 442 | | fitness: 0f32, [INFO] [stderr] 443 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 440 | Dna { [INFO] [stderr] 441 | genomes: genomes, [INFO] [stderr] 442 | fitness: 0f32, [INFO] [stderr] 443 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:458:9 [INFO] [stderr] | [INFO] [stderr] 458 | / return Dna { [INFO] [stderr] 459 | | genomes: genomes, [INFO] [stderr] 460 | | fitness: 0f32, [INFO] [stderr] 461 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 458 | Dna { [INFO] [stderr] 459 | genomes: genomes, [INFO] [stderr] 460 | fitness: 0f32, [INFO] [stderr] 461 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:507:9 [INFO] [stderr] | [INFO] [stderr] 507 | / return Network { [INFO] [stderr] 508 | | weights: layers, [INFO] [stderr] 509 | | weight_count: weight_count, [INFO] [stderr] 510 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 507 | Network { [INFO] [stderr] 508 | weights: layers, [INFO] [stderr] 509 | weight_count: weight_count, [INFO] [stderr] 510 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:539:9 [INFO] [stderr] | [INFO] [stderr] 539 | return result; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `result` [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:561:5 [INFO] [stderr] | [INFO] [stderr] 561 | return (a - 1f32) / (a + 1f32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(a - 1f32) / (a + 1f32)` [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: unused variable: `left` [INFO] [stderr] --> src/main.rs:219:13 [INFO] [stderr] | [INFO] [stderr] 219 | let left = self.peek_at((self.direction + 3) % 4); [INFO] [stderr] | ^^^^ help: consider using `_left` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `right` [INFO] [stderr] --> src/main.rs:220:13 [INFO] [stderr] | [INFO] [stderr] 220 | let right = self.peek_at((self.direction + 1) % 4); [INFO] [stderr] | ^^^^^ help: consider using `_right` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `sum` [INFO] [stderr] --> src/main.rs:372:27 [INFO] [stderr] | [INFO] [stderr] 372 | fn pick_random(&self, sum: f32, rnd: f32) -> &Dna { [INFO] [stderr] | ^^^ help: consider using `_sum` instead [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:100:9 [INFO] [stderr] | [INFO] [stderr] 100 | return self.x == point.x && self.y == point.y; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.x == point.x && self.y == point.y` [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:106:9 [INFO] [stderr] | [INFO] [stderr] 106 | return Point { x: x, y: y }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Point { x: x, y: y }` [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:113:9 [INFO] [stderr] | [INFO] [stderr] 113 | / return Point::new( [INFO] [stderr] 114 | | rangeX.ind_sample(&mut rng) as isize, [INFO] [stderr] 115 | | rangeY.ind_sample(&mut rng) as isize, [INFO] [stderr] 116 | | ); [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 113 | Point::new( [INFO] [stderr] 114 | rangeX.ind_sample(&mut rng) as isize, [INFO] [stderr] 115 | rangeY.ind_sample(&mut rng) as isize, [INFO] [stderr] 116 | ) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:133:9 [INFO] [stderr] | [INFO] [stderr] 133 | / return Snake { [INFO] [stderr] 134 | | direction: 0, [INFO] [stderr] 135 | | parts: parts, [INFO] [stderr] 136 | | board: board, [INFO] [stderr] 137 | | alive: true, [INFO] [stderr] 138 | | steps_without_food: 0, [INFO] [stderr] 139 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 133 | Snake { [INFO] [stderr] 134 | direction: 0, [INFO] [stderr] 135 | parts: parts, [INFO] [stderr] 136 | board: board, [INFO] [stderr] 137 | alive: true, [INFO] [stderr] 138 | steps_without_food: 0, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:144:9 [INFO] [stderr] | [INFO] [stderr] 144 | / return head.x >= 0 && head.y >= 0 && head.x < self.board.width as isize [INFO] [stderr] 145 | | && head.y < self.board.height as isize; [INFO] [stderr] | |___________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 144 | head.x >= 0 && head.y >= 0 && head.x < self.board.width as isize [INFO] [stderr] 145 | && head.y < self.board.height as isize [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:157:9 [INFO] [stderr] | [INFO] [stderr] 157 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [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:166:9 [INFO] [stderr] | [INFO] [stderr] 166 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [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:199:9 [INFO] [stderr] | [INFO] [stderr] 199 | return sum / f32::consts::PI; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `sum / f32::consts::PI` [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:231:9 [INFO] [stderr] | [INFO] [stderr] 231 | return inputs; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `inputs` [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:9 [INFO] [stderr] | [INFO] [stderr] 305 | / return Board { [INFO] [stderr] 306 | | width: width, [INFO] [stderr] 307 | | height: height, [INFO] [stderr] 308 | | food: Point::random(width, height), [INFO] [stderr] 309 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 305 | Board { [INFO] [stderr] 306 | width: width, [INFO] [stderr] 307 | height: height, [INFO] [stderr] 308 | food: Point::random(width, height), [INFO] [stderr] 309 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:313:9 [INFO] [stderr] | [INFO] [stderr] 313 | return x >= 0 && y >= 0 && x < self.width as isize && y < self.height as isize; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `x >= 0 && y >= 0 && x < self.width as isize && y < self.height as isize` [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:345:9 [INFO] [stderr] | [INFO] [stderr] 345 | / return DnaPool { [INFO] [stderr] 346 | | pool: pool, [INFO] [stderr] 347 | | index: 0, [INFO] [stderr] 348 | | pool_size: pool_size, [INFO] [stderr] 349 | | best: Dna::new(dna_size), [INFO] [stderr] 350 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 345 | DnaPool { [INFO] [stderr] 346 | pool: pool, [INFO] [stderr] 347 | index: 0, [INFO] [stderr] 348 | pool_size: pool_size, [INFO] [stderr] 349 | best: Dna::new(dna_size), [INFO] [stderr] 350 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:355:9 [INFO] [stderr] | [INFO] [stderr] 355 | return &dna.genomes; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&dna.genomes` [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:440:9 [INFO] [stderr] | [INFO] [stderr] 440 | / return Dna { [INFO] [stderr] 441 | | genomes: genomes, [INFO] [stderr] 442 | | fitness: 0f32, [INFO] [stderr] 443 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 440 | Dna { [INFO] [stderr] 441 | genomes: genomes, [INFO] [stderr] 442 | fitness: 0f32, [INFO] [stderr] 443 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:458:9 [INFO] [stderr] | [INFO] [stderr] 458 | / return Dna { [INFO] [stderr] 459 | | genomes: genomes, [INFO] [stderr] 460 | | fitness: 0f32, [INFO] [stderr] 461 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 458 | Dna { [INFO] [stderr] 459 | genomes: genomes, [INFO] [stderr] 460 | fitness: 0f32, [INFO] [stderr] 461 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:507:9 [INFO] [stderr] | [INFO] [stderr] 507 | / return Network { [INFO] [stderr] 508 | | weights: layers, [INFO] [stderr] 509 | | weight_count: weight_count, [INFO] [stderr] 510 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 507 | Network { [INFO] [stderr] 508 | weights: layers, [INFO] [stderr] 509 | weight_count: weight_count, [INFO] [stderr] 510 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:539:9 [INFO] [stderr] | [INFO] [stderr] 539 | return result; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `result` [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:561:5 [INFO] [stderr] | [INFO] [stderr] 561 | return (a - 1f32) / (a + 1f32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(a - 1f32) / (a + 1f32)` [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: method is never used: `normalize_weights` [INFO] [stderr] --> src/main.rs:383:5 [INFO] [stderr] | [INFO] [stderr] 383 | fn normalize_weights(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `sigmoid` [INFO] [stderr] --> src/main.rs:555:1 [INFO] [stderr] | [INFO] [stderr] 555 | fn sigmoid(y: f32) -> f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:38:16 [INFO] [stderr] | [INFO] [stderr] 38 | if let Some(_) = e.update_args() { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 39 | | for _ in 0..speed { [INFO] [stderr] 40 | | //println!("{}", snake.direction); [INFO] [stderr] 41 | | let inputs = snake.get_inputs(); [INFO] [stderr] ... | [INFO] [stderr] 52 | | } [INFO] [stderr] 53 | | } [INFO] [stderr] | |_________- help: try this: `if e.update_args().is_some()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:55:16 [INFO] [stderr] | [INFO] [stderr] 55 | if let Some(_) = e.render_args() { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 56 | | for x in 0..snake.board.width { [INFO] [stderr] 57 | | for y in 0..snake.board.height { [INFO] [stderr] 58 | | canvas.put_pixel(x as u32, y as u32, Rgba([255, 255, 255, 255])); [INFO] [stderr] ... | [INFO] [stderr] 77 | | }); [INFO] [stderr] 78 | | } [INFO] [stderr] | |_________- help: try this: `if e.render_args().is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: variable `rangeX` should have a snake case name such as `range_x` [INFO] [stderr] --> src/main.rs:110:13 [INFO] [stderr] | [INFO] [stderr] 110 | let rangeX = Range::new(0, max_x); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable `rangeY` should have a snake case name such as `range_y` [INFO] [stderr] --> src/main.rs:111:13 [INFO] [stderr] | [INFO] [stderr] 111 | let rangeY = Range::new(0, max_y); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/main.rs:317:9 [INFO] [stderr] | [INFO] [stderr] 317 | / loop { [INFO] [stderr] 318 | | let point = Point::random(self.width, self.height); [INFO] [stderr] 319 | | for part in snake_parts { [INFO] [stderr] 320 | | if point == *part { [INFO] [stderr] ... | [INFO] [stderr] 325 | | return; [INFO] [stderr] 326 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::never_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:542:47 [INFO] [stderr] | [INFO] [stderr] 542 | pub fn update_weights(&mut self, weights: &Vec) { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[f32]` [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] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `neural_snake`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: unused variable: `left` [INFO] [stderr] --> src/main.rs:219:13 [INFO] [stderr] | [INFO] [stderr] 219 | let left = self.peek_at((self.direction + 3) % 4); [INFO] [stderr] | ^^^^ help: consider using `_left` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `right` [INFO] [stderr] --> src/main.rs:220:13 [INFO] [stderr] | [INFO] [stderr] 220 | let right = self.peek_at((self.direction + 1) % 4); [INFO] [stderr] | ^^^^^ help: consider using `_right` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `sum` [INFO] [stderr] --> src/main.rs:372:27 [INFO] [stderr] | [INFO] [stderr] 372 | fn pick_random(&self, sum: f32, rnd: f32) -> &Dna { [INFO] [stderr] | ^^^ help: consider using `_sum` instead [INFO] [stderr] [INFO] [stderr] warning: method is never used: `normalize_weights` [INFO] [stderr] --> src/main.rs:383:5 [INFO] [stderr] | [INFO] [stderr] 383 | fn normalize_weights(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `sigmoid` [INFO] [stderr] --> src/main.rs:555:1 [INFO] [stderr] | [INFO] [stderr] 555 | fn sigmoid(y: f32) -> f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:38:16 [INFO] [stderr] | [INFO] [stderr] 38 | if let Some(_) = e.update_args() { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 39 | | for _ in 0..speed { [INFO] [stderr] 40 | | //println!("{}", snake.direction); [INFO] [stderr] 41 | | let inputs = snake.get_inputs(); [INFO] [stderr] ... | [INFO] [stderr] 52 | | } [INFO] [stderr] 53 | | } [INFO] [stderr] | |_________- help: try this: `if e.update_args().is_some()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:55:16 [INFO] [stderr] | [INFO] [stderr] 55 | if let Some(_) = e.render_args() { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 56 | | for x in 0..snake.board.width { [INFO] [stderr] 57 | | for y in 0..snake.board.height { [INFO] [stderr] 58 | | canvas.put_pixel(x as u32, y as u32, Rgba([255, 255, 255, 255])); [INFO] [stderr] ... | [INFO] [stderr] 77 | | }); [INFO] [stderr] 78 | | } [INFO] [stderr] | |_________- help: try this: `if e.render_args().is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: variable `rangeX` should have a snake case name such as `range_x` [INFO] [stderr] --> src/main.rs:110:13 [INFO] [stderr] | [INFO] [stderr] 110 | let rangeX = Range::new(0, max_x); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable `rangeY` should have a snake case name such as `range_y` [INFO] [stderr] --> src/main.rs:111:13 [INFO] [stderr] | [INFO] [stderr] 111 | let rangeY = Range::new(0, max_y); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/main.rs:317:9 [INFO] [stderr] | [INFO] [stderr] 317 | / loop { [INFO] [stderr] 318 | | let point = Point::random(self.width, self.height); [INFO] [stderr] 319 | | for part in snake_parts { [INFO] [stderr] 320 | | if point == *part { [INFO] [stderr] ... | [INFO] [stderr] 325 | | return; [INFO] [stderr] 326 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::never_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:542:47 [INFO] [stderr] | [INFO] [stderr] 542 | pub fn update_weights(&mut self, weights: &Vec) { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[f32]` [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] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `neural_snake`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "79742bcc65e97b3a403defe9b13d264851ae207e12225032ee5a1d09d11f7d4e"` [INFO] running `"docker" "rm" "-f" "79742bcc65e97b3a403defe9b13d264851ae207e12225032ee5a1d09d11f7d4e"` [INFO] [stdout] 79742bcc65e97b3a403defe9b13d264851ae207e12225032ee5a1d09d11f7d4e