[INFO] updating cached repository tomc1998/specs_test [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/tomc1998/specs_test [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/tomc1998/specs_test" "work/ex/clippy-test-run/sources/stable/gh/tomc1998/specs_test"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/tomc1998/specs_test'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/tomc1998/specs_test" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/tomc1998/specs_test"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/tomc1998/specs_test'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 7c82dd36d319a3f4e0bf57a787663baa067001c5 [INFO] sha for GitHub repo tomc1998/specs_test: 7c82dd36d319a3f4e0bf57a787663baa067001c5 [INFO] validating manifest of tomc1998/specs_test 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 tomc1998/specs_test 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 tomc1998/specs_test [INFO] finished frobbing tomc1998/specs_test [INFO] frobbed toml for tomc1998/specs_test written to work/ex/clippy-test-run/sources/stable/gh/tomc1998/specs_test/Cargo.toml [INFO] started frobbing tomc1998/specs_test [INFO] finished frobbing tomc1998/specs_test [INFO] frobbed toml for tomc1998/specs_test written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/tomc1998/specs_test/Cargo.toml [INFO] crate tomc1998/specs_test 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 tomc1998/specs_test against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/tomc1998/specs_test:/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] 1e87d13a2dbb19ebc78323d896316475d214e4475d615b0e2874a5fb37f7c42b [INFO] running `"docker" "start" "-a" "1e87d13a2dbb19ebc78323d896316475d214e4475d615b0e2874a5fb37f7c42b"` [INFO] [stderr] Compiling gcc v0.3.45 [INFO] [stderr] Checking rustc-demangle v0.1.4 [INFO] [stderr] Checking smallvec v0.1.8 [INFO] [stderr] Checking threadpool v1.3.2 [INFO] [stderr] Checking time v0.1.37 [INFO] [stderr] Checking ticketed_lock v0.1.0 [INFO] [stderr] Checking cgmath v0.14.1 [INFO] [stderr] Compiling glium v0.16.0 [INFO] [stderr] Checking pulse v0.5.3 [INFO] [stderr] Compiling backtrace-sys v0.1.10 [INFO] [stderr] Checking specs v0.8.1 [INFO] [stderr] Checking backtrace v0.2.3 [INFO] [stderr] Checking specs_test v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/renderer/controller.rs:18:26 [INFO] [stderr] | [INFO] [stderr] 18 | RendererController { sender: sender, } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `sender` [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/terrain/voronoi.rs:87:30 [INFO] [stderr] | [INFO] [stderr] 87 | arc_list.push(Arc{ p: p, l_vert: None, r_vert: None, id: curr_arc_id }); [INFO] [stderr] | ^^^^ help: replace it with: `p` [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/terrain/voronoi.rs:114:29 [INFO] [stderr] | [INFO] [stderr] 114 | let new_arc = Arc { p: p, l_vert: None, r_vert: None, id: curr_arc_id }; [INFO] [stderr] | ^^^^ help: replace it with: `p` [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/renderer/controller.rs:18:26 [INFO] [stderr] | [INFO] [stderr] 18 | RendererController { sender: sender, } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `sender` [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/terrain/voronoi.rs:87:30 [INFO] [stderr] | [INFO] [stderr] 87 | arc_list.push(Arc{ p: p, l_vert: None, r_vert: None, id: curr_arc_id }); [INFO] [stderr] | ^^^^ help: replace it with: `p` [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/terrain/voronoi.rs:114:29 [INFO] [stderr] | [INFO] [stderr] 114 | let new_arc = Arc { p: p, l_vert: None, r_vert: None, id: curr_arc_id }; [INFO] [stderr] | ^^^^ help: replace it with: `p` [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/renderer/mod.rs:130:5 [INFO] [stderr] | [INFO] [stderr] 130 | return RendererController::new(self.v_channel_pair.0.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RendererController::new(self.v_channel_pair.0.clone())` [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/state.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | return self.delta as f32 / 1000000000.0f32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.delta as f32 / 1000000000.0f32` [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: long literal lacking separators [INFO] [stderr] --> src/state.rs:13:32 [INFO] [stderr] | [INFO] [stderr] 13 | return self.delta as f32 / 1000000000.0f32; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider: `1_000_000_000.0f32` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/terrain/voronoi.rs:148:11 [INFO] [stderr] | [INFO] [stderr] 148 | / return [INFO] [stderr] 149 | | if center_y + r > scanline { [INFO] [stderr] 150 | | Some(Event::Circle([center_x, center_y], r, arc_list[p_ix].id )) [INFO] [stderr] 151 | | } [INFO] [stderr] 152 | | else { None } [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] 148 | if center_y + r > scanline { [INFO] [stderr] 149 | Some(Event::Circle([center_x, center_y], r, arc_list[p_ix].id )) [INFO] [stderr] 150 | } [INFO] [stderr] 151 | else { None } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused import: `Rng` [INFO] [stderr] --> src/main.rs:18:12 [INFO] [stderr] | [INFO] [stderr] 18 | use rand::{Rng, StdRng}; [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/renderer/mod.rs:130:5 [INFO] [stderr] | [INFO] [stderr] 130 | return RendererController::new(self.v_channel_pair.0.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RendererController::new(self.v_channel_pair.0.clone())` [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/state.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | return self.delta as f32 / 1000000000.0f32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.delta as f32 / 1000000000.0f32` [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: long literal lacking separators [INFO] [stderr] --> src/state.rs:13:32 [INFO] [stderr] | [INFO] [stderr] 13 | return self.delta as f32 / 1000000000.0f32; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider: `1_000_000_000.0f32` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/terrain/voronoi.rs:148:11 [INFO] [stderr] | [INFO] [stderr] 148 | / return [INFO] [stderr] 149 | | if center_y + r > scanline { [INFO] [stderr] 150 | | Some(Event::Circle([center_x, center_y], r, arc_list[p_ix].id )) [INFO] [stderr] 151 | | } [INFO] [stderr] 152 | | else { None } [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] 148 | if center_y + r > scanline { [INFO] [stderr] 149 | Some(Event::Circle([center_x, center_y], r, arc_list[p_ix].id )) [INFO] [stderr] 150 | } [INFO] [stderr] 151 | else { None } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused import: `Rng` [INFO] [stderr] --> src/main.rs:18:12 [INFO] [stderr] | [INFO] [stderr] 18 | use rand::{Rng, StdRng}; [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rng` [INFO] [stderr] --> src/main.rs:52:11 [INFO] [stderr] | [INFO] [stderr] 52 | let mut rng = StdRng::new().unwrap(); [INFO] [stderr] | ^^^ help: consider using `_rng` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rng` [INFO] [stderr] --> src/main.rs:52:11 [INFO] [stderr] | [INFO] [stderr] 52 | let mut rng = StdRng::new().unwrap(); [INFO] [stderr] | ^^^ help: consider using `_rng` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:52:7 [INFO] [stderr] | [INFO] [stderr] 52 | let mut rng = StdRng::new().unwrap(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:52:7 [INFO] [stderr] | [INFO] [stderr] 52 | let mut rng = StdRng::new().unwrap(); [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/renderer/controller.rs:40:59 [INFO] [stderr] | [INFO] [stderr] 40 | data.push(Vertex{ pos: [perp_l_1.x, perp_l_1.y], col: col.clone()}); [INFO] [stderr] | ^^^^^^^^^^^ help: try removing the `clone` call: `col` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/renderer/controller.rs:41:59 [INFO] [stderr] | [INFO] [stderr] 41 | data.push(Vertex{ pos: [perp_r_1.x, perp_r_1.y], col: col.clone()}); [INFO] [stderr] | ^^^^^^^^^^^ help: try removing the `clone` call: `col` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/renderer/controller.rs:42:59 [INFO] [stderr] | [INFO] [stderr] 42 | data.push(Vertex{ pos: [perp_l_2.x, perp_l_2.y], col: col.clone()}); [INFO] [stderr] | ^^^^^^^^^^^ help: try removing the `clone` call: `col` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/renderer/controller.rs:45:59 [INFO] [stderr] | [INFO] [stderr] 45 | data.push(Vertex{ pos: [perp_l_2.x, perp_l_2.y], col: col.clone()}); [INFO] [stderr] | ^^^^^^^^^^^ help: try removing the `clone` call: `col` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/renderer/controller.rs:46:59 [INFO] [stderr] | [INFO] [stderr] 46 | data.push(Vertex{ pos: [perp_r_2.x, perp_r_2.y], col: col.clone()}); [INFO] [stderr] | ^^^^^^^^^^^ help: try removing the `clone` call: `col` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/renderer/controller.rs:47:59 [INFO] [stderr] | [INFO] [stderr] 47 | data.push(Vertex{ pos: [perp_r_1.x, perp_r_1.y], col: col.clone()}); [INFO] [stderr] | ^^^^^^^^^^^ help: try removing the `clone` call: `col` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/renderer/controller.rs:62:55 [INFO] [stderr] | [INFO] [stderr] 62 | data.push( Vertex { pos: [aabb[0], aabb[1]], col: col.clone() }); [INFO] [stderr] | ^^^^^^^^^^^ help: try dereferencing it: `*col` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/renderer/controller.rs:63:65 [INFO] [stderr] | [INFO] [stderr] 63 | data.push( Vertex { pos: [aabb[0] + aabb[2], aabb[1]], col: col.clone() }); [INFO] [stderr] | ^^^^^^^^^^^ help: try dereferencing it: `*col` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/renderer/controller.rs:64:75 [INFO] [stderr] | [INFO] [stderr] 64 | data.push( Vertex { pos: [aabb[0] + aabb[2], aabb[1] + aabb[3]], col: col.clone() }); [INFO] [stderr] | ^^^^^^^^^^^ help: try dereferencing it: `*col` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/renderer/controller.rs:67:55 [INFO] [stderr] | [INFO] [stderr] 67 | data.push( Vertex { pos: [aabb[0], aabb[1]], col: col.clone() }); [INFO] [stderr] | ^^^^^^^^^^^ help: try dereferencing it: `*col` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/renderer/controller.rs:68:65 [INFO] [stderr] | [INFO] [stderr] 68 | data.push( Vertex { pos: [aabb[0], aabb[1] + aabb[3]], col: col.clone() }); [INFO] [stderr] | ^^^^^^^^^^^ help: try dereferencing it: `*col` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/renderer/controller.rs:69:75 [INFO] [stderr] | [INFO] [stderr] 69 | data.push( Vertex { pos: [aabb[0] + aabb[2], aabb[1] + aabb[3]], col: col.clone() }); [INFO] [stderr] | ^^^^^^^^^^^ help: try dereferencing it: `*col` [INFO] [stderr] | [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/terrain/voronoi.rs:45:24 [INFO] [stderr] | [INFO] [stderr] 45 | pub fn voronoi(points: &Vec<[f32; 2]>, r: RendererController) { [INFO] [stderr] | ^^^^^^^^^^^^^^ [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] help: change this to [INFO] [stderr] | [INFO] [stderr] 45 | pub fn voronoi(points: &[[f32; 2]], r: RendererController) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] help: change `points.clone()` to [INFO] [stderr] | [INFO] [stderr] 54 | let mut points_clone = points.to_owned(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/terrain/voronoi.rs:68:38 [INFO] [stderr] | [INFO] [stderr] 68 | ev_queue.push_back(Event::Site(points_clone[highest_ix].clone())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `points_clone[highest_ix]` [INFO] [stderr] | [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: length comparison to zero [INFO] [stderr] --> src/terrain/voronoi.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | while ev_queue.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!ev_queue.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: the loop variable `ii` is used to index `arc_list` [INFO] [stderr] --> src/terrain/voronoi.rs:101:19 [INFO] [stderr] | [INFO] [stderr] 101 | for ii in 0..arc_list.len() { [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] 101 | for (ii, ) in arc_list.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [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/terrain/voronoi.rs:129:41 [INFO] [stderr] | [INFO] [stderr] 129 | fn check_circle_event(arc_list: &Vec, p_ix: usize, scanline: f32) -> Option{ [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[Arc]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [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/terrain/voronoi.rs:157:11 [INFO] [stderr] | [INFO] [stderr] 157 | / match circle { [INFO] [stderr] 158 | | Event::Circle(cp, cr, _) => { [INFO] [stderr] 159 | | for ii in 0..ev_queue.len() { [INFO] [stderr] 160 | | match ev_queue[ii] { [INFO] [stderr] ... | [INFO] [stderr] 177 | | _ => () [INFO] [stderr] 178 | | } [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] 157 | if let Event::Circle(cp, cr, _) = circle { [INFO] [stderr] 158 | for ii in 0..ev_queue.len() { [INFO] [stderr] 159 | match ev_queue[ii] { [INFO] [stderr] 160 | Event::Circle(p, r, _) => { [INFO] [stderr] 161 | if p[1] + r > cp[1] + cr { [INFO] [stderr] 162 | ev_queue.insert(ii, circle); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/terrain/voronoi.rs:202:64 [INFO] [stderr] | [INFO] [stderr] 202 | let new_node = Node { neighbour_list: Vec::new(), pos: p.clone() }; [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `p` [INFO] [stderr] | [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:63:7 [INFO] [stderr] | [INFO] [stderr] 63 | / match ev { [INFO] [stderr] 64 | | Event::Closed => return, [INFO] [stderr] 65 | | _ => () [INFO] [stderr] 66 | | } [INFO] [stderr] | |_______^ help: try this: `if let Event::Closed = ev { return }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/renderer/controller.rs:40:59 [INFO] [stderr] | [INFO] [stderr] 40 | data.push(Vertex{ pos: [perp_l_1.x, perp_l_1.y], col: col.clone()}); [INFO] [stderr] | ^^^^^^^^^^^ help: try removing the `clone` call: `col` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/renderer/controller.rs:41:59 [INFO] [stderr] | [INFO] [stderr] 41 | data.push(Vertex{ pos: [perp_r_1.x, perp_r_1.y], col: col.clone()}); [INFO] [stderr] | ^^^^^^^^^^^ help: try removing the `clone` call: `col` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/renderer/controller.rs:42:59 [INFO] [stderr] | [INFO] [stderr] 42 | data.push(Vertex{ pos: [perp_l_2.x, perp_l_2.y], col: col.clone()}); [INFO] [stderr] | ^^^^^^^^^^^ help: try removing the `clone` call: `col` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/renderer/controller.rs:45:59 [INFO] [stderr] | [INFO] [stderr] 45 | data.push(Vertex{ pos: [perp_l_2.x, perp_l_2.y], col: col.clone()}); [INFO] [stderr] | ^^^^^^^^^^^ help: try removing the `clone` call: `col` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/renderer/controller.rs:46:59 [INFO] [stderr] | [INFO] [stderr] 46 | data.push(Vertex{ pos: [perp_r_2.x, perp_r_2.y], col: col.clone()}); [INFO] [stderr] | ^^^^^^^^^^^ help: try removing the `clone` call: `col` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/renderer/controller.rs:47:59 [INFO] [stderr] | [INFO] [stderr] 47 | data.push(Vertex{ pos: [perp_r_1.x, perp_r_1.y], col: col.clone()}); [INFO] [stderr] | ^^^^^^^^^^^ help: try removing the `clone` call: `col` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/renderer/controller.rs:62:55 [INFO] [stderr] | [INFO] [stderr] 62 | data.push( Vertex { pos: [aabb[0], aabb[1]], col: col.clone() }); [INFO] [stderr] | ^^^^^^^^^^^ help: try dereferencing it: `*col` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/renderer/controller.rs:63:65 [INFO] [stderr] | [INFO] [stderr] 63 | data.push( Vertex { pos: [aabb[0] + aabb[2], aabb[1]], col: col.clone() }); [INFO] [stderr] | ^^^^^^^^^^^ help: try dereferencing it: `*col` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/renderer/controller.rs:64:75 [INFO] [stderr] | [INFO] [stderr] 64 | data.push( Vertex { pos: [aabb[0] + aabb[2], aabb[1] + aabb[3]], col: col.clone() }); [INFO] [stderr] | ^^^^^^^^^^^ help: try dereferencing it: `*col` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/renderer/controller.rs:67:55 [INFO] [stderr] | [INFO] [stderr] 67 | data.push( Vertex { pos: [aabb[0], aabb[1]], col: col.clone() }); [INFO] [stderr] | ^^^^^^^^^^^ help: try dereferencing it: `*col` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/renderer/controller.rs:68:65 [INFO] [stderr] | [INFO] [stderr] 68 | data.push( Vertex { pos: [aabb[0], aabb[1] + aabb[3]], col: col.clone() }); [INFO] [stderr] | ^^^^^^^^^^^ help: try dereferencing it: `*col` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/renderer/controller.rs:69:75 [INFO] [stderr] | [INFO] [stderr] 69 | data.push( Vertex { pos: [aabb[0] + aabb[2], aabb[1] + aabb[3]], col: col.clone() }); [INFO] [stderr] | ^^^^^^^^^^^ help: try dereferencing it: `*col` [INFO] [stderr] | [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/terrain/voronoi.rs:45:24 [INFO] [stderr] | [INFO] [stderr] 45 | pub fn voronoi(points: &Vec<[f32; 2]>, r: RendererController) { [INFO] [stderr] | ^^^^^^^^^^^^^^ [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] help: change this to [INFO] [stderr] | [INFO] [stderr] 45 | pub fn voronoi(points: &[[f32; 2]], r: RendererController) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] help: change `points.clone()` to [INFO] [stderr] | [INFO] [stderr] 54 | let mut points_clone = points.to_owned(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/terrain/voronoi.rs:68:38 [INFO] [stderr] | [INFO] [stderr] 68 | ev_queue.push_back(Event::Site(points_clone[highest_ix].clone())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `points_clone[highest_ix]` [INFO] [stderr] | [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: length comparison to zero [INFO] [stderr] --> src/terrain/voronoi.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | while ev_queue.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!ev_queue.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: the loop variable `ii` is used to index `arc_list` [INFO] [stderr] --> src/terrain/voronoi.rs:101:19 [INFO] [stderr] | [INFO] [stderr] 101 | for ii in 0..arc_list.len() { [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] 101 | for (ii, ) in arc_list.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [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/terrain/voronoi.rs:129:41 [INFO] [stderr] | [INFO] [stderr] 129 | fn check_circle_event(arc_list: &Vec, p_ix: usize, scanline: f32) -> Option{ [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[Arc]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [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/terrain/voronoi.rs:157:11 [INFO] [stderr] | [INFO] [stderr] 157 | / match circle { [INFO] [stderr] 158 | | Event::Circle(cp, cr, _) => { [INFO] [stderr] 159 | | for ii in 0..ev_queue.len() { [INFO] [stderr] 160 | | match ev_queue[ii] { [INFO] [stderr] ... | [INFO] [stderr] 177 | | _ => () [INFO] [stderr] 178 | | } [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] 157 | if let Event::Circle(cp, cr, _) = circle { [INFO] [stderr] 158 | for ii in 0..ev_queue.len() { [INFO] [stderr] 159 | match ev_queue[ii] { [INFO] [stderr] 160 | Event::Circle(p, r, _) => { [INFO] [stderr] 161 | if p[1] + r > cp[1] + cr { [INFO] [stderr] 162 | ev_queue.insert(ii, circle); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/terrain/voronoi.rs:202:64 [INFO] [stderr] | [INFO] [stderr] 202 | let new_node = Node { neighbour_list: Vec::new(), pos: p.clone() }; [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `p` [INFO] [stderr] | [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:63:7 [INFO] [stderr] | [INFO] [stderr] 63 | / match ev { [INFO] [stderr] 64 | | Event::Closed => return, [INFO] [stderr] 65 | | _ => () [INFO] [stderr] 66 | | } [INFO] [stderr] | |_______^ help: try this: `if let Event::Closed = ev { return }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 50.70s [INFO] running `"docker" "inspect" "1e87d13a2dbb19ebc78323d896316475d214e4475d615b0e2874a5fb37f7c42b"` [INFO] running `"docker" "rm" "-f" "1e87d13a2dbb19ebc78323d896316475d214e4475d615b0e2874a5fb37f7c42b"` [INFO] [stdout] 1e87d13a2dbb19ebc78323d896316475d214e4475d615b0e2874a5fb37f7c42b