[INFO] updating cached repository mu-is-a-letter/glitch [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/mu-is-a-letter/glitch [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/mu-is-a-letter/glitch" "work/ex/clippy-test-run/sources/stable/gh/mu-is-a-letter/glitch"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/mu-is-a-letter/glitch'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/mu-is-a-letter/glitch" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mu-is-a-letter/glitch"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mu-is-a-letter/glitch'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 4d0f976eb86579c8e99fa2990d2291c87539ef82 [INFO] sha for GitHub repo mu-is-a-letter/glitch: 4d0f976eb86579c8e99fa2990d2291c87539ef82 [INFO] validating manifest of mu-is-a-letter/glitch 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 mu-is-a-letter/glitch 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 mu-is-a-letter/glitch [INFO] finished frobbing mu-is-a-letter/glitch [INFO] frobbed toml for mu-is-a-letter/glitch written to work/ex/clippy-test-run/sources/stable/gh/mu-is-a-letter/glitch/Cargo.toml [INFO] started frobbing mu-is-a-letter/glitch [INFO] finished frobbing mu-is-a-letter/glitch [INFO] frobbed toml for mu-is-a-letter/glitch written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mu-is-a-letter/glitch/Cargo.toml [INFO] crate mu-is-a-letter/glitch 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 mu-is-a-letter/glitch against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/mu-is-a-letter/glitch:/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] 28d7ff600a3551775898be61a9757acc96cedbdc7bee6c42c39654a1d84d20be [INFO] running `"docker" "start" "-a" "28d7ff600a3551775898be61a9757acc96cedbdc7bee6c42c39654a1d84d20be"` [INFO] [stderr] Checking noise v0.4.1 [INFO] [stderr] Checking num-rational v0.1.41 [INFO] [stderr] Checking image v0.18.0 [INFO] [stderr] Checking glitch v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/main.rs:632:27 [INFO] [stderr] | [INFO] [stderr] 632 | let (r, g, b, a) = img[(x, y)].channels4(); [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: 5th binding whose name is just one char [INFO] [stderr] --> src/main.rs:632:27 [INFO] [stderr] | [INFO] [stderr] 632 | let (r, g, b, a) = img[(x, y)].channels4(); [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: unneeded return statement [INFO] [stderr] --> src/main.rs:207:9 [INFO] [stderr] | [INFO] [stderr] 207 | / return BlockShiftOptions { [INFO] [stderr] 208 | | blocks: self.blocks.iter().map(|&Block { min_y, height, shift }| Block { min_y: min_y + 3, height, shift }).collect::>() [INFO] [stderr] 209 | | }; [INFO] [stderr] | |__________^ [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] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 207 | BlockShiftOptions { [INFO] [stderr] 208 | blocks: self.blocks.iter().map(|&Block { min_y, height, shift }| Block { min_y: min_y + 3, height, shift }).collect::>() [INFO] [stderr] 209 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:480:5 [INFO] [stderr] | [INFO] [stderr] 480 | img [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:479:15 [INFO] [stderr] | [INFO] [stderr] 479 | let img = offset_blocks(&img, &config.blocks); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unused variable: `val` [INFO] [stderr] --> src/main.rs:364:15 [INFO] [stderr] | [INFO] [stderr] 364 | if let Ok(val) = input.parse::() { [INFO] [stderr] | ^^^ help: consider using `_val` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `max` [INFO] [stderr] --> src/main.rs:580:9 [INFO] [stderr] | [INFO] [stderr] 580 | let max = 0.0; [INFO] [stderr] | ^^^ help: consider using `_max` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/main.rs:185:13 [INFO] [stderr] | [INFO] [stderr] 185 | for i in 0..num_blocks { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: field is never used: `r` [INFO] [stderr] --> src/main.rs:48:5 [INFO] [stderr] | [INFO] [stderr] 48 | r: ChannelShiftOptions, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: field is never used: `g` [INFO] [stderr] --> src/main.rs:49:5 [INFO] [stderr] | [INFO] [stderr] 49 | g: ChannelShiftOptions, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `b` [INFO] [stderr] --> src/main.rs:50:5 [INFO] [stderr] | [INFO] [stderr] 50 | b: ChannelShiftOptions, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `base_shift_x` [INFO] [stderr] --> src/main.rs:55:5 [INFO] [stderr] | [INFO] [stderr] 55 | base_shift_x: f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `base_shift_y` [INFO] [stderr] --> src/main.rs:56:5 [INFO] [stderr] | [INFO] [stderr] 56 | base_shift_y: f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `current_shift_x` [INFO] [stderr] --> src/main.rs:57:5 [INFO] [stderr] | [INFO] [stderr] 57 | current_shift_x: f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `current_shift_y` [INFO] [stderr] --> src/main.rs:58:5 [INFO] [stderr] | [INFO] [stderr] 58 | current_shift_y: f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `radius` [INFO] [stderr] --> src/main.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | radius: f64, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `max_move` [INFO] [stderr] --> src/main.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | max_move: f64, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `random` [INFO] [stderr] --> src/main.rs:64:5 [INFO] [stderr] | [INFO] [stderr] 64 | fn random(offset: f64, radius: f64, max_move: f64) -> ShiftOptions { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `step` [INFO] [stderr] --> src/main.rs:72:5 [INFO] [stderr] | [INFO] [stderr] 72 | fn step(&self) -> ShiftOptions { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `random` [INFO] [stderr] --> src/main.rs:82:5 [INFO] [stderr] | [INFO] [stderr] 82 | fn random(offset: f64, radius: f64, max_move: f64) -> ChannelShiftOptions { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `step` [INFO] [stderr] --> src/main.rs:100:5 [INFO] [stderr] | [INFO] [stderr] 100 | fn step(&self) -> ChannelShiftOptions { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `blend_alpha_one_minus_alpha` [INFO] [stderr] --> src/main.rs:467:1 [INFO] [stderr] | [INFO] [stderr] 467 | fn blend_alpha_one_minus_alpha(a: f64, col1: u8, col2: u8) -> u8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `offset_channels` [INFO] [stderr] --> src/main.rs:535:1 [INFO] [stderr] | [INFO] [stderr] 535 | fn offset_channels(img: &T, config: &ShiftOptions) -> RgbaBuf { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `noise` [INFO] [stderr] --> src/main.rs:570:1 [INFO] [stderr] | [INFO] [stderr] 570 | fn noise(img: &T) -> RgbaBuf { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:441:21 [INFO] [stderr] | [INFO] [stderr] 441 | let max_alpha = (max_alpha as f64) / (u8::max_value() as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(max_alpha)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:441:42 [INFO] [stderr] | [INFO] [stderr] 441 | let max_alpha = (max_alpha as f64) / (u8::max_value() as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(u8::max_value())` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:453:17 [INFO] [stderr] | [INFO] [stderr] 453 | let a = (a as f64) / (u8::max_value() as f64); [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(a)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:453:30 [INFO] [stderr] | [INFO] [stderr] 453 | let a = (a as f64) / (u8::max_value() as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(u8::max_value())` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:454:17 [INFO] [stderr] | [INFO] [stderr] 454 | let r = (r as f64) * a / max_alpha; [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(r)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:455:17 [INFO] [stderr] | [INFO] [stderr] 455 | let g = (g as f64) * a / max_alpha; [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(g)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:456:17 [INFO] [stderr] | [INFO] [stderr] 456 | let b = (b as f64) * a / max_alpha; [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(b)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:468:16 [INFO] [stderr] | [INFO] [stderr] 468 | let col1 = col1 as f64; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(col1)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:469:16 [INFO] [stderr] | [INFO] [stderr] 469 | let col2 = col2 as f64; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(col2)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:471:14 [INFO] [stderr] | [INFO] [stderr] 471 | f64::min(u8::max_value() as f64, a * col1 + (1.0 - a) * col2) as u8 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(u8::max_value())` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:510:20 [INFO] [stderr] | [INFO] [stderr] 510 | let line = line as f64 + config.desync_phase_shift; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(line)` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/main.rs:519:51 [INFO] [stderr] | [INFO] [stderr] 519 | fn offset_red_cyan(img: &T, config: &LimitedShiftOptions) -> RgbaBuf { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider passing by value instead: `LimitedShiftOptions` [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: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:583:19 [INFO] [stderr] | [INFO] [stderr] 583 | let pt = [x as f64 / img.width() as f64, y as f64 / img.height() as f64]; [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:583:30 [INFO] [stderr] | [INFO] [stderr] 583 | let pt = [x as f64 / img.width() as f64, y as f64 / img.height() as f64]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(img.width())` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:583:50 [INFO] [stderr] | [INFO] [stderr] 583 | let pt = [x as f64 / img.width() as f64, y as f64 / img.height() as f64]; [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(y)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:583:61 [INFO] [stderr] | [INFO] [stderr] 583 | let pt = [x as f64 / img.width() as f64, y as f64 / img.height() as f64]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(img.height())` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:593:40 [INFO] [stderr] | [INFO] [stderr] 593 | let val = (val * noise_alpha * (u8::max_value() as f64)) as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(u8::max_value())` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:601:22 [INFO] [stderr] | [INFO] [stderr] 601 | let af = a as f64; [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(a)` [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/main.rs:612:34 [INFO] [stderr] | [INFO] [stderr] 612 | let r = clamping_add(r as u32, val as i32, u8::max_value() as u32) as u8; [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(r)` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:612:44 [INFO] [stderr] | [INFO] [stderr] 612 | let r = clamping_add(r as u32, val as i32, u8::max_value() as u32) as u8; [INFO] [stderr] | ^^^^^^^^^^ help: try: `i32::from(val)` [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/main.rs:612:56 [INFO] [stderr] | [INFO] [stderr] 612 | let r = clamping_add(r as u32, val as i32, u8::max_value() as u32) as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(u8::max_value())` [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/main.rs:613:34 [INFO] [stderr] | [INFO] [stderr] 613 | let g = clamping_add(g as u32, val as i32, u8::max_value() as u32) as u8; [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(g)` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:613:44 [INFO] [stderr] | [INFO] [stderr] 613 | let g = clamping_add(g as u32, val as i32, u8::max_value() as u32) as u8; [INFO] [stderr] | ^^^^^^^^^^ help: try: `i32::from(val)` [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/main.rs:613:56 [INFO] [stderr] | [INFO] [stderr] 613 | let g = clamping_add(g as u32, val as i32, u8::max_value() as u32) as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(u8::max_value())` [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/main.rs:614:34 [INFO] [stderr] | [INFO] [stderr] 614 | let b = clamping_add(b as u32, val as i32, u8::max_value() as u32) as u8; [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(b)` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:614:44 [INFO] [stderr] | [INFO] [stderr] 614 | let b = clamping_add(b as u32, val as i32, u8::max_value() as u32) as u8; [INFO] [stderr] | ^^^^^^^^^^ help: try: `i32::from(val)` [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/main.rs:614:56 [INFO] [stderr] | [INFO] [stderr] 614 | let b = clamping_add(b as u32, val as i32, u8::max_value() as u32) as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(u8::max_value())` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/main.rs:623:40 [INFO] [stderr] | [INFO] [stderr] 623 | fn wind(img: &T, config: &WindOptions) -> RgbaBuf { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `WindOptions` [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: unneeded return statement [INFO] [stderr] --> src/main.rs:207:9 [INFO] [stderr] | [INFO] [stderr] 207 | / return BlockShiftOptions { [INFO] [stderr] 208 | | blocks: self.blocks.iter().map(|&Block { min_y, height, shift }| Block { min_y: min_y + 3, height, shift }).collect::>() [INFO] [stderr] 209 | | }; [INFO] [stderr] | |__________^ [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] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 207 | BlockShiftOptions { [INFO] [stderr] 208 | blocks: self.blocks.iter().map(|&Block { min_y, height, shift }| Block { min_y: min_y + 3, height, shift }).collect::>() [INFO] [stderr] 209 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:480:5 [INFO] [stderr] | [INFO] [stderr] 480 | img [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:479:15 [INFO] [stderr] | [INFO] [stderr] 479 | let img = offset_blocks(&img, &config.blocks); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unused variable: `val` [INFO] [stderr] --> src/main.rs:364:15 [INFO] [stderr] | [INFO] [stderr] 364 | if let Ok(val) = input.parse::() { [INFO] [stderr] | ^^^ help: consider using `_val` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `max` [INFO] [stderr] --> src/main.rs:580:9 [INFO] [stderr] | [INFO] [stderr] 580 | let max = 0.0; [INFO] [stderr] | ^^^ help: consider using `_max` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/main.rs:185:13 [INFO] [stderr] | [INFO] [stderr] 185 | for i in 0..num_blocks { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: field is never used: `r` [INFO] [stderr] --> src/main.rs:48:5 [INFO] [stderr] | [INFO] [stderr] 48 | r: ChannelShiftOptions, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: field is never used: `g` [INFO] [stderr] --> src/main.rs:49:5 [INFO] [stderr] | [INFO] [stderr] 49 | g: ChannelShiftOptions, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `b` [INFO] [stderr] --> src/main.rs:50:5 [INFO] [stderr] | [INFO] [stderr] 50 | b: ChannelShiftOptions, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `base_shift_x` [INFO] [stderr] --> src/main.rs:55:5 [INFO] [stderr] | [INFO] [stderr] 55 | base_shift_x: f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `base_shift_y` [INFO] [stderr] --> src/main.rs:56:5 [INFO] [stderr] | [INFO] [stderr] 56 | base_shift_y: f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `current_shift_x` [INFO] [stderr] --> src/main.rs:57:5 [INFO] [stderr] | [INFO] [stderr] 57 | current_shift_x: f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `current_shift_y` [INFO] [stderr] --> src/main.rs:58:5 [INFO] [stderr] | [INFO] [stderr] 58 | current_shift_y: f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `radius` [INFO] [stderr] --> src/main.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | radius: f64, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `max_move` [INFO] [stderr] --> src/main.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | max_move: f64, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `random` [INFO] [stderr] --> src/main.rs:64:5 [INFO] [stderr] | [INFO] [stderr] 64 | fn random(offset: f64, radius: f64, max_move: f64) -> ShiftOptions { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `step` [INFO] [stderr] --> src/main.rs:72:5 [INFO] [stderr] | [INFO] [stderr] 72 | fn step(&self) -> ShiftOptions { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `random` [INFO] [stderr] --> src/main.rs:82:5 [INFO] [stderr] | [INFO] [stderr] 82 | fn random(offset: f64, radius: f64, max_move: f64) -> ChannelShiftOptions { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `step` [INFO] [stderr] --> src/main.rs:100:5 [INFO] [stderr] | [INFO] [stderr] 100 | fn step(&self) -> ChannelShiftOptions { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `blend_alpha_one_minus_alpha` [INFO] [stderr] --> src/main.rs:467:1 [INFO] [stderr] | [INFO] [stderr] 467 | fn blend_alpha_one_minus_alpha(a: f64, col1: u8, col2: u8) -> u8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `offset_channels` [INFO] [stderr] --> src/main.rs:535:1 [INFO] [stderr] | [INFO] [stderr] 535 | fn offset_channels(img: &T, config: &ShiftOptions) -> RgbaBuf { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `noise` [INFO] [stderr] --> src/main.rs:570:1 [INFO] [stderr] | [INFO] [stderr] 570 | fn noise(img: &T) -> RgbaBuf { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:441:21 [INFO] [stderr] | [INFO] [stderr] 441 | let max_alpha = (max_alpha as f64) / (u8::max_value() as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(max_alpha)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:441:42 [INFO] [stderr] | [INFO] [stderr] 441 | let max_alpha = (max_alpha as f64) / (u8::max_value() as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(u8::max_value())` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:453:17 [INFO] [stderr] | [INFO] [stderr] 453 | let a = (a as f64) / (u8::max_value() as f64); [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(a)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:453:30 [INFO] [stderr] | [INFO] [stderr] 453 | let a = (a as f64) / (u8::max_value() as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(u8::max_value())` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:454:17 [INFO] [stderr] | [INFO] [stderr] 454 | let r = (r as f64) * a / max_alpha; [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(r)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:455:17 [INFO] [stderr] | [INFO] [stderr] 455 | let g = (g as f64) * a / max_alpha; [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(g)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:456:17 [INFO] [stderr] | [INFO] [stderr] 456 | let b = (b as f64) * a / max_alpha; [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(b)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:468:16 [INFO] [stderr] | [INFO] [stderr] 468 | let col1 = col1 as f64; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(col1)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:469:16 [INFO] [stderr] | [INFO] [stderr] 469 | let col2 = col2 as f64; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(col2)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:471:14 [INFO] [stderr] | [INFO] [stderr] 471 | f64::min(u8::max_value() as f64, a * col1 + (1.0 - a) * col2) as u8 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(u8::max_value())` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:510:20 [INFO] [stderr] | [INFO] [stderr] 510 | let line = line as f64 + config.desync_phase_shift; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(line)` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/main.rs:519:51 [INFO] [stderr] | [INFO] [stderr] 519 | fn offset_red_cyan(img: &T, config: &LimitedShiftOptions) -> RgbaBuf { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider passing by value instead: `LimitedShiftOptions` [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: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:583:19 [INFO] [stderr] | [INFO] [stderr] 583 | let pt = [x as f64 / img.width() as f64, y as f64 / img.height() as f64]; [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:583:30 [INFO] [stderr] | [INFO] [stderr] 583 | let pt = [x as f64 / img.width() as f64, y as f64 / img.height() as f64]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(img.width())` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:583:50 [INFO] [stderr] | [INFO] [stderr] 583 | let pt = [x as f64 / img.width() as f64, y as f64 / img.height() as f64]; [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(y)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:583:61 [INFO] [stderr] | [INFO] [stderr] 583 | let pt = [x as f64 / img.width() as f64, y as f64 / img.height() as f64]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(img.height())` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:593:40 [INFO] [stderr] | [INFO] [stderr] 593 | let val = (val * noise_alpha * (u8::max_value() as f64)) as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(u8::max_value())` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:601:22 [INFO] [stderr] | [INFO] [stderr] 601 | let af = a as f64; [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(a)` [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/main.rs:612:34 [INFO] [stderr] | [INFO] [stderr] 612 | let r = clamping_add(r as u32, val as i32, u8::max_value() as u32) as u8; [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(r)` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:612:44 [INFO] [stderr] | [INFO] [stderr] 612 | let r = clamping_add(r as u32, val as i32, u8::max_value() as u32) as u8; [INFO] [stderr] | ^^^^^^^^^^ help: try: `i32::from(val)` [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/main.rs:612:56 [INFO] [stderr] | [INFO] [stderr] 612 | let r = clamping_add(r as u32, val as i32, u8::max_value() as u32) as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(u8::max_value())` [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/main.rs:613:34 [INFO] [stderr] | [INFO] [stderr] 613 | let g = clamping_add(g as u32, val as i32, u8::max_value() as u32) as u8; [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(g)` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:613:44 [INFO] [stderr] | [INFO] [stderr] 613 | let g = clamping_add(g as u32, val as i32, u8::max_value() as u32) as u8; [INFO] [stderr] | ^^^^^^^^^^ help: try: `i32::from(val)` [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/main.rs:613:56 [INFO] [stderr] | [INFO] [stderr] 613 | let g = clamping_add(g as u32, val as i32, u8::max_value() as u32) as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(u8::max_value())` [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/main.rs:614:34 [INFO] [stderr] | [INFO] [stderr] 614 | let b = clamping_add(b as u32, val as i32, u8::max_value() as u32) as u8; [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(b)` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:614:44 [INFO] [stderr] | [INFO] [stderr] 614 | let b = clamping_add(b as u32, val as i32, u8::max_value() as u32) as u8; [INFO] [stderr] | ^^^^^^^^^^ help: try: `i32::from(val)` [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/main.rs:614:56 [INFO] [stderr] | [INFO] [stderr] 614 | let b = clamping_add(b as u32, val as i32, u8::max_value() as u32) as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(u8::max_value())` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/main.rs:623:40 [INFO] [stderr] | [INFO] [stderr] 623 | fn wind(img: &T, config: &WindOptions) -> RgbaBuf { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `WindOptions` [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] Finished dev [unoptimized + debuginfo] target(s) in 10.32s [INFO] running `"docker" "inspect" "28d7ff600a3551775898be61a9757acc96cedbdc7bee6c42c39654a1d84d20be"` [INFO] running `"docker" "rm" "-f" "28d7ff600a3551775898be61a9757acc96cedbdc7bee6c42c39654a1d84d20be"` [INFO] [stdout] 28d7ff600a3551775898be61a9757acc96cedbdc7bee6c42c39654a1d84d20be