[INFO] crate aflak_plot 0.0.3 is already in cache [INFO] extracting crate aflak_plot 0.0.3 into work/ex/clippy-test-run/sources/stable/reg/aflak_plot/0.0.3 [INFO] extracting crate aflak_plot 0.0.3 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/aflak_plot/0.0.3 [INFO] validating manifest of aflak_plot-0.0.3 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 aflak_plot-0.0.3 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 aflak_plot-0.0.3 [INFO] finished frobbing aflak_plot-0.0.3 [INFO] frobbed toml for aflak_plot-0.0.3 written to work/ex/clippy-test-run/sources/stable/reg/aflak_plot/0.0.3/Cargo.toml [INFO] started frobbing aflak_plot-0.0.3 [INFO] finished frobbing aflak_plot-0.0.3 [INFO] frobbed toml for aflak_plot-0.0.3 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/aflak_plot/0.0.3/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 aflak_plot-0.0.3 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/aflak_plot/0.0.3:/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] 405952d67bcf11925f192055a5350a4de138f546bb3c4faaaa2761a55fd2ec66 [INFO] running `"docker" "start" "-a" "405952d67bcf11925f192055a5350a4de138f546bb3c4faaaa2761a55fd2ec66"` [INFO] [stderr] Compiling imgui-sys v0.0.21 [INFO] [stderr] Checking imgui v0.0.21 [INFO] [stderr] Checking imgui-glium-renderer v0.0.21 [INFO] [stderr] Checking aflak_imgui_glium_support v0.0.3 [INFO] [stderr] Checking aflak_plot v0.0.3 (/opt/crater/workdir) [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/imshow/state.rs:64:9 [INFO] [stderr] | [INFO] [stderr] 64 | / if ui.is_item_hovered() { [INFO] [stderr] 65 | | if ui.imgui().is_mouse_clicked(ImMouseButton::Right) { [INFO] [stderr] 66 | | ui.open_popup(im_str!("swap-lut")) [INFO] [stderr] 67 | | } [INFO] [stderr] 68 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 64 | if ui.is_item_hovered() && ui.imgui().is_mouse_clicked(ImMouseButton::Right) { [INFO] [stderr] 65 | ui.open_popup(im_str!("swap-lut")) [INFO] [stderr] 66 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/imshow/state.rs:198:28 [INFO] [stderr] | [INFO] [stderr] 198 | const COLOR: u32 = 0xFFFFFFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [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: long literal lacking separators [INFO] [stderr] --> src/imshow/state.rs:302:37 [INFO] [stderr] | [INFO] [stderr] 302 | const LINE_COLOR: u32 = 0xFFFFFFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/imshow/state.rs:405:33 [INFO] [stderr] | [INFO] [stderr] 405 | const FILL_COLOR: u32 = 0xFF999999; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFF99_9999` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/imshow/state.rs:406:35 [INFO] [stderr] | [INFO] [stderr] 406 | const BORDER_COLOR: u32 = 0xFF000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFF00_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/plot/state.rs:91:31 [INFO] [stderr] | [INFO] [stderr] 91 | const BG_COLOR: u32 = 0xA0333333; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xA033_3333` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/plot/state.rs:92:33 [INFO] [stderr] | [INFO] [stderr] 92 | const LINE_COLOR: u32 = 0xFFFFFFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/plot/state.rs:160:45 [INFO] [stderr] | [INFO] [stderr] 160 | const LINE_COLOR: u32 = 0xFFFFFFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ticks.rs:5:20 [INFO] [stderr] | [INFO] [stderr] 5 | const COLOR: u32 = 0xFFFFFFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/util.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | 0xFFFFFFFF - c + 0xFF000000 [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/util.rs:29:22 [INFO] [stderr] | [INFO] [stderr] 29 | 0xFFFFFFFF - c + 0xFF000000 [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFF00_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] error: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> src/imshow/lut.rs:38:16 [INFO] [stderr] | [INFO] [stderr] 38 | VALUES.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] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/imshow/lut.rs:41:17 [INFO] [stderr] | [INFO] [stderr] 41 | pub fn name(&self) -> &'static ImStr { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/imshow/lut.rs:51:16 [INFO] [stderr] | [INFO] [stderr] 51 | pub fn lut(&self) -> ColorLUT { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/imshow/lut.rs:125:30 [INFO] [stderr] | [INFO] [stderr] 125 | let r1 = r1 as f32; [INFO] [stderr] | ^^^^^^^^^ help: try: `f32::from(r1)` [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: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/imshow/lut.rs:126:30 [INFO] [stderr] | [INFO] [stderr] 126 | let r2 = r2 as f32; [INFO] [stderr] | ^^^^^^^^^ help: try: `f32::from(r2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/imshow/lut.rs:127:30 [INFO] [stderr] | [INFO] [stderr] 127 | let g1 = g1 as f32; [INFO] [stderr] | ^^^^^^^^^ help: try: `f32::from(g1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/imshow/lut.rs:128:30 [INFO] [stderr] | [INFO] [stderr] 128 | let g2 = g2 as f32; [INFO] [stderr] | ^^^^^^^^^ help: try: `f32::from(g2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/imshow/lut.rs:129:30 [INFO] [stderr] | [INFO] [stderr] 129 | let b1 = b1 as f32; [INFO] [stderr] | ^^^^^^^^^ help: try: `f32::from(b1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/imshow/lut.rs:130:30 [INFO] [stderr] | [INFO] [stderr] 130 | let b2 = b2 as f32; [INFO] [stderr] | ^^^^^^^^^ help: try: `f32::from(b2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/imshow/lut.rs:152:26 [INFO] [stderr] | [INFO] [stderr] 152 | let next_color = first_color.clone().skip(1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `first_color` [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: length comparison to zero [INFO] [stderr] --> src/imshow/lut.rs:206:28 [INFO] [stderr] | [INFO] [stderr] 206 | if self.i == -1 && grad.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!grad.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: length comparison to zero [INFO] [stderr] --> src/imshow/lut.rs:209:52 [INFO] [stderr] | [INFO] [stderr] 209 | } else if self.i == grad.len() as isize && grad.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!grad.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/imshow/state.rs:153:16 [INFO] [stderr] | [INFO] [stderr] 153 | if lims.1 != 1.0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider comparing them within some error: `(lims.1 - 1.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/imshow/state.rs:153:16 [INFO] [stderr] | [INFO] [stderr] 153 | if lims.1 != 1.0 { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/interactions.rs:93:41 [INFO] [stderr] | [INFO] [stderr] 93 | pub(crate) fn remove(&mut self, id: &InteractionId) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider passing by value instead: `InteractionId` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/interactions.rs:140:15 [INFO] [stderr] | [INFO] [stderr] 140 | pub fn id(&self) -> i32 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lims.rs:37:30 [INFO] [stderr] | [INFO] [stderr] 37 | fn float_compare_nan_min(f1: &f32, f2: &f32) -> Ordering { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `f32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lims.rs:37:40 [INFO] [stderr] | [INFO] [stderr] 37 | fn float_compare_nan_min(f1: &f32, f2: &f32) -> Ordering { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `f32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lims.rs:46:30 [INFO] [stderr] | [INFO] [stderr] 46 | fn float_compare_nan_max(f1: &f32, f2: &f32) -> Ordering { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `f32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lims.rs:46:40 [INFO] [stderr] | [INFO] [stderr] 46 | fn float_compare_nan_max(f1: &f32, f2: &f32) -> Ordering { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `f32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/util.rs:24:24 [INFO] [stderr] | [INFO] [stderr] 24 | pub fn to_u32_color(c: &[u8; 3]) -> u32 { [INFO] [stderr] | ^^^^^^^^ help: consider passing by value instead: `[u8; 3]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `(c[0] as u32)` [INFO] [stderr] --> src/util.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | (c[0] as u32) << 0 | (c[1] as u32) << 8 | (c[2] as u32) << 16 | 0xFF << 24 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/util.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | (c[0] as u32) << 0 | (c[1] as u32) << 8 | (c[2] as u32) << 16 | 0xFF << 24 [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(c[0])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/util.rs:25:26 [INFO] [stderr] | [INFO] [stderr] 25 | (c[0] as u32) << 0 | (c[1] as u32) << 8 | (c[2] as u32) << 16 | 0xFF << 24 [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(c[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/util.rs:25:47 [INFO] [stderr] | [INFO] [stderr] 25 | (c[0] as u32) << 0 | (c[1] as u32) << 8 | (c[2] as u32) << 16 | 0xFF << 24 [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(c[2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `aflak_plot`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/imshow/state.rs:64:9 [INFO] [stderr] | [INFO] [stderr] 64 | / if ui.is_item_hovered() { [INFO] [stderr] 65 | | if ui.imgui().is_mouse_clicked(ImMouseButton::Right) { [INFO] [stderr] 66 | | ui.open_popup(im_str!("swap-lut")) [INFO] [stderr] 67 | | } [INFO] [stderr] 68 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 64 | if ui.is_item_hovered() && ui.imgui().is_mouse_clicked(ImMouseButton::Right) { [INFO] [stderr] 65 | ui.open_popup(im_str!("swap-lut")) [INFO] [stderr] 66 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/imshow/state.rs:198:28 [INFO] [stderr] | [INFO] [stderr] 198 | const COLOR: u32 = 0xFFFFFFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [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: long literal lacking separators [INFO] [stderr] --> src/imshow/state.rs:302:37 [INFO] [stderr] | [INFO] [stderr] 302 | const LINE_COLOR: u32 = 0xFFFFFFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/imshow/state.rs:405:33 [INFO] [stderr] | [INFO] [stderr] 405 | const FILL_COLOR: u32 = 0xFF999999; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFF99_9999` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/imshow/state.rs:406:35 [INFO] [stderr] | [INFO] [stderr] 406 | const BORDER_COLOR: u32 = 0xFF000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFF00_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/plot/state.rs:91:31 [INFO] [stderr] | [INFO] [stderr] 91 | const BG_COLOR: u32 = 0xA0333333; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xA033_3333` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/plot/state.rs:92:33 [INFO] [stderr] | [INFO] [stderr] 92 | const LINE_COLOR: u32 = 0xFFFFFFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/plot/state.rs:160:45 [INFO] [stderr] | [INFO] [stderr] 160 | const LINE_COLOR: u32 = 0xFFFFFFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ticks.rs:5:20 [INFO] [stderr] | [INFO] [stderr] 5 | const COLOR: u32 = 0xFFFFFFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/util.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | 0xFFFFFFFF - c + 0xFF000000 [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/util.rs:29:22 [INFO] [stderr] | [INFO] [stderr] 29 | 0xFFFFFFFF - c + 0xFF000000 [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFF00_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] error: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> src/imshow/lut.rs:38:16 [INFO] [stderr] | [INFO] [stderr] 38 | VALUES.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] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/imshow/lut.rs:41:17 [INFO] [stderr] | [INFO] [stderr] 41 | pub fn name(&self) -> &'static ImStr { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/imshow/lut.rs:51:16 [INFO] [stderr] | [INFO] [stderr] 51 | pub fn lut(&self) -> ColorLUT { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/imshow/lut.rs:125:30 [INFO] [stderr] | [INFO] [stderr] 125 | let r1 = r1 as f32; [INFO] [stderr] | ^^^^^^^^^ help: try: `f32::from(r1)` [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: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/imshow/lut.rs:126:30 [INFO] [stderr] | [INFO] [stderr] 126 | let r2 = r2 as f32; [INFO] [stderr] | ^^^^^^^^^ help: try: `f32::from(r2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/imshow/lut.rs:127:30 [INFO] [stderr] | [INFO] [stderr] 127 | let g1 = g1 as f32; [INFO] [stderr] | ^^^^^^^^^ help: try: `f32::from(g1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/imshow/lut.rs:128:30 [INFO] [stderr] | [INFO] [stderr] 128 | let g2 = g2 as f32; [INFO] [stderr] | ^^^^^^^^^ help: try: `f32::from(g2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/imshow/lut.rs:129:30 [INFO] [stderr] | [INFO] [stderr] 129 | let b1 = b1 as f32; [INFO] [stderr] | ^^^^^^^^^ help: try: `f32::from(b1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/imshow/lut.rs:130:30 [INFO] [stderr] | [INFO] [stderr] 130 | let b2 = b2 as f32; [INFO] [stderr] | ^^^^^^^^^ help: try: `f32::from(b2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/imshow/lut.rs:152:26 [INFO] [stderr] | [INFO] [stderr] 152 | let next_color = first_color.clone().skip(1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `first_color` [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: length comparison to zero [INFO] [stderr] --> src/imshow/lut.rs:206:28 [INFO] [stderr] | [INFO] [stderr] 206 | if self.i == -1 && grad.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!grad.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: length comparison to zero [INFO] [stderr] --> src/imshow/lut.rs:209:52 [INFO] [stderr] | [INFO] [stderr] 209 | } else if self.i == grad.len() as isize && grad.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!grad.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/imshow/state.rs:153:16 [INFO] [stderr] | [INFO] [stderr] 153 | if lims.1 != 1.0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider comparing them within some error: `(lims.1 - 1.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/imshow/state.rs:153:16 [INFO] [stderr] | [INFO] [stderr] 153 | if lims.1 != 1.0 { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/interactions.rs:93:41 [INFO] [stderr] | [INFO] [stderr] 93 | pub(crate) fn remove(&mut self, id: &InteractionId) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider passing by value instead: `InteractionId` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/interactions.rs:140:15 [INFO] [stderr] | [INFO] [stderr] 140 | pub fn id(&self) -> i32 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lims.rs:37:30 [INFO] [stderr] | [INFO] [stderr] 37 | fn float_compare_nan_min(f1: &f32, f2: &f32) -> Ordering { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `f32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lims.rs:37:40 [INFO] [stderr] | [INFO] [stderr] 37 | fn float_compare_nan_min(f1: &f32, f2: &f32) -> Ordering { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `f32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lims.rs:46:30 [INFO] [stderr] | [INFO] [stderr] 46 | fn float_compare_nan_max(f1: &f32, f2: &f32) -> Ordering { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `f32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lims.rs:46:40 [INFO] [stderr] | [INFO] [stderr] 46 | fn float_compare_nan_max(f1: &f32, f2: &f32) -> Ordering { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `f32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/util.rs:24:24 [INFO] [stderr] | [INFO] [stderr] 24 | pub fn to_u32_color(c: &[u8; 3]) -> u32 { [INFO] [stderr] | ^^^^^^^^ help: consider passing by value instead: `[u8; 3]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `(c[0] as u32)` [INFO] [stderr] --> src/util.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | (c[0] as u32) << 0 | (c[1] as u32) << 8 | (c[2] as u32) << 16 | 0xFF << 24 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/util.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | (c[0] as u32) << 0 | (c[1] as u32) << 8 | (c[2] as u32) << 16 | 0xFF << 24 [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(c[0])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/util.rs:25:26 [INFO] [stderr] | [INFO] [stderr] 25 | (c[0] as u32) << 0 | (c[1] as u32) << 8 | (c[2] as u32) << 16 | 0xFF << 24 [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(c[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/util.rs:25:47 [INFO] [stderr] | [INFO] [stderr] 25 | (c[0] as u32) << 0 | (c[1] as u32) << 8 | (c[2] as u32) << 16 | 0xFF << 24 [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(c[2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `aflak_plot`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "405952d67bcf11925f192055a5350a4de138f546bb3c4faaaa2761a55fd2ec66"` [INFO] running `"docker" "rm" "-f" "405952d67bcf11925f192055a5350a4de138f546bb3c4faaaa2761a55fd2ec66"` [INFO] [stdout] 405952d67bcf11925f192055a5350a4de138f546bb3c4faaaa2761a55fd2ec66