[INFO] crate edge-detection 0.2.1 is already in cache [INFO] extracting crate edge-detection 0.2.1 into work/ex/clippy-test-run/sources/stable/reg/edge-detection/0.2.1 [INFO] extracting crate edge-detection 0.2.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/edge-detection/0.2.1 [INFO] validating manifest of edge-detection-0.2.1 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 edge-detection-0.2.1 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 edge-detection-0.2.1 [INFO] finished frobbing edge-detection-0.2.1 [INFO] frobbed toml for edge-detection-0.2.1 written to work/ex/clippy-test-run/sources/stable/reg/edge-detection/0.2.1/Cargo.toml [INFO] started frobbing edge-detection-0.2.1 [INFO] finished frobbing edge-detection-0.2.1 [INFO] frobbed toml for edge-detection-0.2.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/edge-detection/0.2.1/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [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 edge-detection-0.2.1 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/edge-detection/0.2.1:/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] e7a68641f377b6f90200b425940cfda8cb0087a3d190ddcf6761b087285c09e0 [INFO] running `"docker" "start" "-a" "e7a68641f377b6f90200b425940cfda8cb0087a3d190ddcf6761b087285c09e0"` [INFO] [stderr] Compiling num-iter v0.1.37 [INFO] [stderr] Checking adler32 v1.0.3 [INFO] [stderr] Checking color_quant v1.0.1 [INFO] [stderr] Checking lzw v0.10.0 [INFO] [stderr] Checking scoped_threadpool v0.1.9 [INFO] [stderr] Checking num-rational v0.1.42 [INFO] [stderr] Checking rayon v0.9.0 [INFO] [stderr] Checking jpeg-decoder v0.1.15 [INFO] [stderr] Checking deflate v0.7.19 [INFO] [stderr] Checking inflate v0.3.4 [INFO] [stderr] Checking gif v0.9.2 [INFO] [stderr] Checking png v0.11.0 [INFO] [stderr] Checking image v0.18.0 [INFO] [stderr] Checking edge-detection v0.2.1 (/opt/crater/workdir) [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/edge.rs:85:21 [INFO] [stderr] | [INFO] [stderr] 85 | let x = c * (1.0 - ((h / FRAC_PI_3) % 2.0 - 1.0).abs()); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/edge.rs:86:21 [INFO] [stderr] | [INFO] [stderr] 86 | let m = v - c; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 7th binding whose name is just one char [INFO] [stderr] --> src/edge.rs:87:22 [INFO] [stderr] | [INFO] [stderr] 87 | let (r, g, b) = match h { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 8th binding whose name is just one char [INFO] [stderr] --> src/edge.rs:87:25 [INFO] [stderr] | [INFO] [stderr] 87 | let (r, g, b) = match h { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 9th binding whose name is just one char [INFO] [stderr] --> src/edge.rs:87:28 [INFO] [stderr] | [INFO] [stderr] 87 | let (r, g, b) = match h { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/edge.rs:82:21 [INFO] [stderr] | [INFO] [stderr] 82 | let (r, g, b) = { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/edge.rs:82:24 [INFO] [stderr] | [INFO] [stderr] 82 | let (r, g, b) = { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/edge.rs:85:21 [INFO] [stderr] | [INFO] [stderr] 85 | let x = c * (1.0 - ((h / FRAC_PI_3) % 2.0 - 1.0).abs()); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/edge.rs:86:21 [INFO] [stderr] | [INFO] [stderr] 86 | let m = v - c; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 7th binding whose name is just one char [INFO] [stderr] --> src/edge.rs:87:22 [INFO] [stderr] | [INFO] [stderr] 87 | let (r, g, b) = match h { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 8th binding whose name is just one char [INFO] [stderr] --> src/edge.rs:87:25 [INFO] [stderr] | [INFO] [stderr] 87 | let (r, g, b) = match h { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 9th binding whose name is just one char [INFO] [stderr] --> src/edge.rs:87:28 [INFO] [stderr] | [INFO] [stderr] 87 | let (r, g, b) = match h { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/edge.rs:82:21 [INFO] [stderr] | [INFO] [stderr] 82 | let (r, g, b) = { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/edge.rs:82:24 [INFO] [stderr] | [INFO] [stderr] 82 | let (r, g, b) = { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/edge.rs:268:25 [INFO] [stderr] | [INFO] [stderr] 268 | image.unsafe_get_pixel(x as u32, y as u32).data[0] as f32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(image.unsafe_get_pixel(x as u32, y as u32).data[0])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/edge.rs:360:22 [INFO] [stderr] | [INFO] [stderr] 360 | fn hysteresis(edges: &Vec>, strong_threshold: f32, weak_threshold: f32) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [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: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> src/edge.rs:375:35 [INFO] [stderr] | [INFO] [stderr] 375 | for side in [0.0, PI].into_iter() { [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::into_iter_on_array)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [INFO] [stderr] [INFO] [stderr] error: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> src/edge.rs:381:79 [INFO] [stderr] | [INFO] [stderr] 381 | let (nb_pos, nb_magnitude) = [FRAC_PI_4, 0.0, -FRAC_PI_4].into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `edge-detection`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/edge.rs:268:25 [INFO] [stderr] | [INFO] [stderr] 268 | image.unsafe_get_pixel(x as u32, y as u32).data[0] as f32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(image.unsafe_get_pixel(x as u32, y as u32).data[0])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/edge.rs:360:22 [INFO] [stderr] | [INFO] [stderr] 360 | fn hysteresis(edges: &Vec>, strong_threshold: f32, weak_threshold: f32) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [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: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> src/edge.rs:375:35 [INFO] [stderr] | [INFO] [stderr] 375 | for side in [0.0, PI].into_iter() { [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::into_iter_on_array)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [INFO] [stderr] [INFO] [stderr] error: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> src/edge.rs:381:79 [INFO] [stderr] | [INFO] [stderr] 381 | let (nb_pos, nb_magnitude) = [FRAC_PI_4, 0.0, -FRAC_PI_4].into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [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/edge.rs:421:30 [INFO] [stderr] | [INFO] [stderr] 421 | fn edges_to_image(edges: &Vec>) -> image::GrayImage { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [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: the loop variable `x` is used to index `edges` [INFO] [stderr] --> src/edge.rs:424:18 [INFO] [stderr] | [INFO] [stderr] 424 | for x in 0..width { [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] 424 | for (x, ) in edges.iter().enumerate().take(width) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `edge-detection`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "e7a68641f377b6f90200b425940cfda8cb0087a3d190ddcf6761b087285c09e0"` [INFO] running `"docker" "rm" "-f" "e7a68641f377b6f90200b425940cfda8cb0087a3d190ddcf6761b087285c09e0"` [INFO] [stdout] e7a68641f377b6f90200b425940cfda8cb0087a3d190ddcf6761b087285c09e0