[INFO] crate primg 0.1.0 is already in cache [INFO] extracting crate primg 0.1.0 into work/ex/clippy-test-run/sources/stable/reg/primg/0.1.0 [INFO] extracting crate primg 0.1.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/primg/0.1.0 [INFO] validating manifest of primg-0.1.0 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 primg-0.1.0 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 primg-0.1.0 [INFO] finished frobbing primg-0.1.0 [INFO] frobbed toml for primg-0.1.0 written to work/ex/clippy-test-run/sources/stable/reg/primg/0.1.0/Cargo.toml [INFO] started frobbing primg-0.1.0 [INFO] finished frobbing primg-0.1.0 [INFO] frobbed toml for primg-0.1.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/primg/0.1.0/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 primg-0.1.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-3/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/primg/0.1.0:/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] e1897c81476b30afeac47bebf888fd812c2b57d6e1f1aadfde0f5d8213520832 [INFO] running `"docker" "start" "-a" "e1897c81476b30afeac47bebf888fd812c2b57d6e1f1aadfde0f5d8213520832"` [INFO] [stderr] Checking primg v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/shape.rs:386:17 [INFO] [stderr] | [INFO] [stderr] 386 | let mut b = bx as i32; [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/shape.rs:417:17 [INFO] [stderr] | [INFO] [stderr] 417 | let mut b = bx as i32; [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/shape.rs:442:13 [INFO] [stderr] | [INFO] [stderr] 442 | let s = (((ry * ry - dy * dy) as f32).sqrt() * aspect) as i32; [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/shape.rs:499:9 [INFO] [stderr] | [INFO] [stderr] 499 | let n = maxy - miny + 1; [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/shape.rs:513:17 [INFO] [stderr] | [INFO] [stderr] 513 | let t = j as f32 / (count - 1) as f32; [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/shape.rs:526:13 [INFO] [stderr] | [INFO] [stderr] 526 | let a = max(mins[i as usize], 0); [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/shape.rs:527:13 [INFO] [stderr] | [INFO] [stderr] 527 | let b = min(maxs[i as usize], w - 1); [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/util.rs:49:21 [INFO] [stderr] | [INFO] [stderr] 49 | let p = buf.as_mut_ptr(); [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/shape.rs:386:17 [INFO] [stderr] | [INFO] [stderr] 386 | let mut b = bx as i32; [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/shape.rs:417:17 [INFO] [stderr] | [INFO] [stderr] 417 | let mut b = bx as i32; [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/shape.rs:442:13 [INFO] [stderr] | [INFO] [stderr] 442 | let s = (((ry * ry - dy * dy) as f32).sqrt() * aspect) as i32; [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/shape.rs:499:9 [INFO] [stderr] | [INFO] [stderr] 499 | let n = maxy - miny + 1; [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/shape.rs:513:17 [INFO] [stderr] | [INFO] [stderr] 513 | let t = j as f32 / (count - 1) as f32; [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/shape.rs:526:13 [INFO] [stderr] | [INFO] [stderr] 526 | let a = max(mins[i as usize], 0); [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/shape.rs:527:13 [INFO] [stderr] | [INFO] [stderr] 527 | let b = min(maxs[i as usize], w - 1); [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/util.rs:49:21 [INFO] [stderr] | [INFO] [stderr] 49 | let p = buf.as_mut_ptr(); [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: unneeded return statement [INFO] [stderr] --> src/core.rs:108:9 [INFO] [stderr] | [INFO] [stderr] 108 | return Color::new(r as u8, g as u8, b as u8, alpha); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Color::new(r as u8, g as u8, b as u8, alpha)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/scanline.rs:21:13 [INFO] [stderr] | [INFO] [stderr] 21 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/scanline.rs:31:13 [INFO] [stderr] | [INFO] [stderr] 31 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/shape.rs:398:5 [INFO] [stderr] | [INFO] [stderr] 398 | return count; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `count` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/shape.rs:427:5 [INFO] [stderr] | [INFO] [stderr] 427 | return count; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `count` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/shape.rs:502:9 [INFO] [stderr] | [INFO] [stderr] 502 | for i in 0..n { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `h` [INFO] [stderr] --> src/util.rs:40:45 [INFO] [stderr] | [INFO] [stderr] 40 | pub fn draw_lines(buf: &mut [u8], w: usize, h: usize, a: &Color, lines: &[Scanline]) { [INFO] [stderr] | ^ help: consider using `_h` instead [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/core.rs:108:9 [INFO] [stderr] | [INFO] [stderr] 108 | return Color::new(r as u8, g as u8, b as u8, alpha); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Color::new(r as u8, g as u8, b as u8, alpha)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/scanline.rs:21:13 [INFO] [stderr] | [INFO] [stderr] 21 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/scanline.rs:31:13 [INFO] [stderr] | [INFO] [stderr] 31 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/shape.rs:398:5 [INFO] [stderr] | [INFO] [stderr] 398 | return count; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `count` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/shape.rs:427:5 [INFO] [stderr] | [INFO] [stderr] 427 | return count; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `count` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: method is never used: `put` [INFO] [stderr] --> src/core.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | pub fn put(&mut self, x: usize, y: usize, color: &Color) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `to_rgba` [INFO] [stderr] --> src/core.rs:192:5 [INFO] [stderr] | [INFO] [stderr] 192 | pub fn to_rgba(&self) -> Rgba { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/core.rs:47:54 [INFO] [stderr] | [INFO] [stderr] 47 | pub fn put(&mut self, x: usize, y: usize, color: &Color) { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `Color` [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/core.rs:55:36 [INFO] [stderr] | [INFO] [stderr] 55 | pub fn erase(&mut self, color: &Color) { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `Color` [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 u64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:66:22 [INFO] [stderr] | [INFO] [stderr] 66 | r += c.r() as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(c.r())` [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 u64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:67:22 [INFO] [stderr] | [INFO] [stderr] 67 | g += c.g() as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(c.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 u64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:68:22 [INFO] [stderr] | [INFO] [stderr] 68 | b += c.b() as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(c.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/core.rs:83:26 [INFO] [stderr] | [INFO] [stderr] 83 | let a = 0xffff / (alpha as i32); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i32::from(alpha)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/core.rs:87:26 [INFO] [stderr] | [INFO] [stderr] 87 | for _ in line.x1..line.x2 + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: use: `line.x1..=line.x2` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:88:30 [INFO] [stderr] | [INFO] [stderr] 88 | let tr = *target.buf.get_unchecked(i + 0) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*target.buf.get_unchecked(i + 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: the operation is ineffective. Consider reducing it to `i` [INFO] [stderr] --> src/core.rs:88:56 [INFO] [stderr] | [INFO] [stderr] 88 | let tr = *target.buf.get_unchecked(i + 0) as i32; [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:89:30 [INFO] [stderr] | [INFO] [stderr] 89 | let tg = *target.buf.get_unchecked(i + 1) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*target.buf.get_unchecked(i + 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 i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:90:30 [INFO] [stderr] | [INFO] [stderr] 90 | let tb = *target.buf.get_unchecked(i + 2) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*target.buf.get_unchecked(i + 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] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:91:30 [INFO] [stderr] | [INFO] [stderr] 91 | let cr = *self.buf.get_unchecked(i + 0) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*self.buf.get_unchecked(i + 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: the operation is ineffective. Consider reducing it to `i` [INFO] [stderr] --> src/core.rs:91:54 [INFO] [stderr] | [INFO] [stderr] 91 | let cr = *self.buf.get_unchecked(i + 0) as i32; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:92:30 [INFO] [stderr] | [INFO] [stderr] 92 | let cg = *self.buf.get_unchecked(i + 1) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*self.buf.get_unchecked(i + 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 i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:93:30 [INFO] [stderr] | [INFO] [stderr] 93 | let cb = *self.buf.get_unchecked(i + 2) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*self.buf.get_unchecked(i + 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] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/core.rs:120:37 [INFO] [stderr] | [INFO] [stderr] 120 | pub fn draw_lines(&mut self, a: &Color, lines: &[Scanline]) { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `Color` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:133:26 [INFO] [stderr] | [INFO] [stderr] 133 | let dr = pa[0] as i32 - pb[0] as i32; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(pa[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 i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:133:41 [INFO] [stderr] | [INFO] [stderr] 133 | let dr = pa[0] as i32 - pb[0] as i32; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(pb[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 i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:134:26 [INFO] [stderr] | [INFO] [stderr] 134 | let dg = pa[1] as i32 - pb[1] as i32; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(pa[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 i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:134:41 [INFO] [stderr] | [INFO] [stderr] 134 | let dg = pa[1] as i32 - pb[1] as i32; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(pb[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 i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:135:26 [INFO] [stderr] | [INFO] [stderr] 135 | let db = pa[2] as i32 - pb[2] as i32; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(pa[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] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:135:41 [INFO] [stderr] | [INFO] [stderr] 135 | let db = pa[2] as i32 - pb[2] as i32; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(pb[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] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:136:26 [INFO] [stderr] | [INFO] [stderr] 136 | let da = pa[3] as i32 - pb[3] as i32; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(pa[3])` [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/core.rs:136:41 [INFO] [stderr] | [INFO] [stderr] 136 | let da = pa[3] as i32 - pb[3] as i32; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(pb[3])` [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: an inclusive range would be more readable [INFO] [stderr] --> src/core.rs:154:26 [INFO] [stderr] | [INFO] [stderr] 154 | for _ in line.x1..line.x2 + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: use: `line.x1..=line.x2` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:155:31 [INFO] [stderr] | [INFO] [stderr] 155 | let dr1 = *target.buf.get_unchecked(i + 0) as i32 - *before.buf.get_unchecked(i + 0) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*target.buf.get_unchecked(i + 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: the operation is ineffective. Consider reducing it to `i` [INFO] [stderr] --> src/core.rs:155:57 [INFO] [stderr] | [INFO] [stderr] 155 | let dr1 = *target.buf.get_unchecked(i + 0) as i32 - *before.buf.get_unchecked(i + 0) as i32; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:155:73 [INFO] [stderr] | [INFO] [stderr] 155 | let dr1 = *target.buf.get_unchecked(i + 0) as i32 - *before.buf.get_unchecked(i + 0) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*before.buf.get_unchecked(i + 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: the operation is ineffective. Consider reducing it to `i` [INFO] [stderr] --> src/core.rs:155:99 [INFO] [stderr] | [INFO] [stderr] 155 | let dr1 = *target.buf.get_unchecked(i + 0) as i32 - *before.buf.get_unchecked(i + 0) as i32; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:156:31 [INFO] [stderr] | [INFO] [stderr] 156 | let dg1 = *target.buf.get_unchecked(i + 1) as i32 - *before.buf.get_unchecked(i + 1) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*target.buf.get_unchecked(i + 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 i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:156:73 [INFO] [stderr] | [INFO] [stderr] 156 | let dg1 = *target.buf.get_unchecked(i + 1) as i32 - *before.buf.get_unchecked(i + 1) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*before.buf.get_unchecked(i + 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 i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:157:31 [INFO] [stderr] | [INFO] [stderr] 157 | let db1 = *target.buf.get_unchecked(i + 2) as i32 - *before.buf.get_unchecked(i + 2) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*target.buf.get_unchecked(i + 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] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:157:73 [INFO] [stderr] | [INFO] [stderr] 157 | let db1 = *target.buf.get_unchecked(i + 2) as i32 - *before.buf.get_unchecked(i + 2) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*before.buf.get_unchecked(i + 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] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:158:31 [INFO] [stderr] | [INFO] [stderr] 158 | let da1 = *target.buf.get_unchecked(i + 3) as i32 - *before.buf.get_unchecked(i + 3) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*target.buf.get_unchecked(i + 3))` [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/core.rs:158:73 [INFO] [stderr] | [INFO] [stderr] 158 | let da1 = *target.buf.get_unchecked(i + 3) as i32 - *before.buf.get_unchecked(i + 3) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*before.buf.get_unchecked(i + 3))` [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/core.rs:160:31 [INFO] [stderr] | [INFO] [stderr] 160 | let dr2 = *target.buf.get_unchecked(i + 0) as i32 - *after.buf.get_unchecked(i + 0) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*target.buf.get_unchecked(i + 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: the operation is ineffective. Consider reducing it to `i` [INFO] [stderr] --> src/core.rs:160:57 [INFO] [stderr] | [INFO] [stderr] 160 | let dr2 = *target.buf.get_unchecked(i + 0) as i32 - *after.buf.get_unchecked(i + 0) as i32; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:160:73 [INFO] [stderr] | [INFO] [stderr] 160 | let dr2 = *target.buf.get_unchecked(i + 0) as i32 - *after.buf.get_unchecked(i + 0) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*after.buf.get_unchecked(i + 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: the operation is ineffective. Consider reducing it to `i` [INFO] [stderr] --> src/core.rs:160:98 [INFO] [stderr] | [INFO] [stderr] 160 | let dr2 = *target.buf.get_unchecked(i + 0) as i32 - *after.buf.get_unchecked(i + 0) as i32; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:161:31 [INFO] [stderr] | [INFO] [stderr] 161 | let dg2 = *target.buf.get_unchecked(i + 1) as i32 - *after.buf.get_unchecked(i + 1) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*target.buf.get_unchecked(i + 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 i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:161:73 [INFO] [stderr] | [INFO] [stderr] 161 | let dg2 = *target.buf.get_unchecked(i + 1) as i32 - *after.buf.get_unchecked(i + 1) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*after.buf.get_unchecked(i + 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 i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:162:31 [INFO] [stderr] | [INFO] [stderr] 162 | let db2 = *target.buf.get_unchecked(i + 2) as i32 - *after.buf.get_unchecked(i + 2) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*target.buf.get_unchecked(i + 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] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:162:73 [INFO] [stderr] | [INFO] [stderr] 162 | let db2 = *target.buf.get_unchecked(i + 2) as i32 - *after.buf.get_unchecked(i + 2) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*after.buf.get_unchecked(i + 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] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:163:31 [INFO] [stderr] | [INFO] [stderr] 163 | let da2 = *target.buf.get_unchecked(i + 3) as i32 - *after.buf.get_unchecked(i + 3) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*target.buf.get_unchecked(i + 3))` [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/core.rs:163:73 [INFO] [stderr] | [INFO] [stderr] 163 | let da2 = *target.buf.get_unchecked(i + 3) as i32 - *after.buf.get_unchecked(i + 3) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*after.buf.get_unchecked(i + 3))` [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/core.rs:185:16 [INFO] [stderr] | [INFO] [stderr] 185 | Color(((r as u32) << 24) | ((g as u32) << 16) | ((b as u32) << 8) | a as u32) [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:185:37 [INFO] [stderr] | [INFO] [stderr] 185 | Color(((r as u32) << 24) | ((g as u32) << 16) | ((b as u32) << 8) | a as u32) [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:185:58 [INFO] [stderr] | [INFO] [stderr] 185 | Color(((r as u32) << 24) | ((g as u32) << 16) | ((b as u32) << 8) | a as u32) [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:185:77 [INFO] [stderr] | [INFO] [stderr] 185 | Color(((r as u32) << 24) | ((g as u32) << 16) | ((b as u32) << 8) | a as u32) [INFO] [stderr] | ^^^^^^^^ help: try: `u32::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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/core.rs:192:20 [INFO] [stderr] | [INFO] [stderr] 192 | pub fn to_rgba(&self) -> Rgba { [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/core.rs:202:14 [INFO] [stderr] | [INFO] [stderr] 202 | pub fn r(&self) -> u8 { [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/core.rs:206:14 [INFO] [stderr] | [INFO] [stderr] 206 | pub fn g(&self) -> u8 { [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/core.rs:210:14 [INFO] [stderr] | [INFO] [stderr] 210 | pub fn b(&self) -> u8 { [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/core.rs:214:14 [INFO] [stderr] | [INFO] [stderr] 214 | pub fn a(&self) -> u8 { [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/model.rs:118:54 [INFO] [stderr] | [INFO] [stderr] 118 | c.r(), c.g(), c.b(), c.a() as f32 / 255.0); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f32::from(c.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: an inclusive range would be more readable [INFO] [stderr] --> src/scanline.rs:16:9 [INFO] [stderr] | [INFO] [stderr] 16 | (0..h + 1).map(|_| Scanline::empty()).collect() [INFO] [stderr] | ^^^^^^^^^^ help: use: `(0..=h)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/shape.rs:216:1 [INFO] [stderr] | [INFO] [stderr] 216 | / fn mutate_triangle(w: i32, h: i32, rng: &mut StdRng, [INFO] [stderr] 217 | | x1: &mut i32, y1: &mut i32, [INFO] [stderr] 218 | | x2: &mut i32, y2: &mut i32, [INFO] [stderr] 219 | | x3: &mut i32, y3: &mut i32) { [INFO] [stderr] ... | [INFO] [stderr] 245 | | } [INFO] [stderr] 246 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/shape.rs:248:27 [INFO] [stderr] | [INFO] [stderr] 248 | fn is_valid_triangle(tx1: &i32, ty1: &i32, tx2: &i32, ty2: &i32, tx3: &i32, ty3: &i32) -> bool { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i32` [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/shape.rs:248:38 [INFO] [stderr] | [INFO] [stderr] 248 | fn is_valid_triangle(tx1: &i32, ty1: &i32, tx2: &i32, ty2: &i32, tx3: &i32, ty3: &i32) -> bool { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i32` [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/shape.rs:248:49 [INFO] [stderr] | [INFO] [stderr] 248 | fn is_valid_triangle(tx1: &i32, ty1: &i32, tx2: &i32, ty2: &i32, tx3: &i32, ty3: &i32) -> bool { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i32` [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/shape.rs:248:60 [INFO] [stderr] | [INFO] [stderr] 248 | fn is_valid_triangle(tx1: &i32, ty1: &i32, tx2: &i32, ty2: &i32, tx3: &i32, ty3: &i32) -> bool { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i32` [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/shape.rs:248:71 [INFO] [stderr] | [INFO] [stderr] 248 | fn is_valid_triangle(tx1: &i32, ty1: &i32, tx2: &i32, ty2: &i32, tx3: &i32, ty3: &i32) -> bool { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i32` [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/shape.rs:248:82 [INFO] [stderr] | [INFO] [stderr] 248 | fn is_valid_triangle(tx1: &i32, ty1: &i32, tx2: &i32, ty2: &i32, tx3: &i32, ty3: &i32) -> bool { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i32` [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 function has too many arguments (8/7) [INFO] [stderr] --> src/shape.rs:321:1 [INFO] [stderr] | [INFO] [stderr] 321 | / fn mutate_rotated_rectangle(w: i32, h: i32, rng: &mut StdRng, [INFO] [stderr] 322 | | x: &mut i32, y: &mut i32, [INFO] [stderr] 323 | | sx: &mut i32, sy: &mut i32, [INFO] [stderr] 324 | | angle: &mut i32) { [INFO] [stderr] ... | [INFO] [stderr] 337 | | } [INFO] [stderr] 338 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/shape.rs:340:1 [INFO] [stderr] | [INFO] [stderr] 340 | / fn rasterize_triangle<'a>(w: i32, h: i32, [INFO] [stderr] 341 | | mut x1: i32, mut y1: i32, [INFO] [stderr] 342 | | mut x2: i32, mut y2: i32, [INFO] [stderr] 343 | | mut x3: i32, mut y3: i32, [INFO] [stderr] ... | [INFO] [stderr] 369 | | } [INFO] [stderr] 370 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (10/7) [INFO] [stderr] --> src/shape.rs:372:1 [INFO] [stderr] | [INFO] [stderr] 372 | / fn rasterize_triangle_bottom(w: i32, h: i32, [INFO] [stderr] 373 | | x1: i32, y1: i32, [INFO] [stderr] 374 | | x2: i32, y2: i32, [INFO] [stderr] 375 | | x3: i32, y3: i32, [INFO] [stderr] ... | [INFO] [stderr] 398 | | return count; [INFO] [stderr] 399 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/shape.rs:401:1 [INFO] [stderr] | [INFO] [stderr] 401 | / fn rasterize_triangle_top<'a>(w: i32, h: i32, [INFO] [stderr] 402 | | x1: i32, y1: i32, [INFO] [stderr] 403 | | x2: i32, y2: i32, [INFO] [stderr] 404 | | x3: i32, y3: i32, [INFO] [stderr] ... | [INFO] [stderr] 427 | | return count; [INFO] [stderr] 428 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (10/7) [INFO] [stderr] --> src/shape.rs:401:1 [INFO] [stderr] | [INFO] [stderr] 401 | / fn rasterize_triangle_top<'a>(w: i32, h: i32, [INFO] [stderr] 402 | | x1: i32, y1: i32, [INFO] [stderr] 403 | | x2: i32, y2: i32, [INFO] [stderr] 404 | | x3: i32, y3: i32, [INFO] [stderr] ... | [INFO] [stderr] 427 | | return count; [INFO] [stderr] 428 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/shape.rs:472:14 [INFO] [stderr] | [INFO] [stderr] 472 | for y in y1..y2 + 1 { [INFO] [stderr] | ^^^^^^^^^^ help: use: `y1..=y2` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (8/7) [INFO] [stderr] --> src/shape.rs:481:1 [INFO] [stderr] | [INFO] [stderr] 481 | / fn rasterize_rotated_rectangle<'a>(w: i32, h: i32, [INFO] [stderr] 482 | | x: i32, y: i32, [INFO] [stderr] 483 | | sx: i32, sy: i32, [INFO] [stderr] 484 | | angle: i32, [INFO] [stderr] ... | [INFO] [stderr] 536 | | &buf[0..count as usize] [INFO] [stderr] 537 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [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:40:58 [INFO] [stderr] | [INFO] [stderr] 40 | pub fn draw_lines(buf: &mut [u8], w: usize, h: usize, a: &Color, lines: &[Scanline]) { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `Color` [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/util.rs:41:14 [INFO] [stderr] | [INFO] [stderr] 41 | let aa = a.a() as u32; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(a.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/util.rs:42:14 [INFO] [stderr] | [INFO] [stderr] 42 | let ar = a.r() as u32 * aa; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(a.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 u32 may become silently lossy if types change [INFO] [stderr] --> src/util.rs:43:14 [INFO] [stderr] | [INFO] [stderr] 43 | let ag = a.g() as u32 * aa; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(a.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 u32 may become silently lossy if types change [INFO] [stderr] --> src/util.rs:44:14 [INFO] [stderr] | [INFO] [stderr] 44 | let ab = a.b() as u32 * aa; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(a.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: an inclusive range would be more readable [INFO] [stderr] --> src/util.rs:48:22 [INFO] [stderr] | [INFO] [stderr] 48 | for _ in line.x1..(line.x2 + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `line.x1..=line.x2` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `i` [INFO] [stderr] --> src/util.rs:50:35 [INFO] [stderr] | [INFO] [stderr] 50 | let p0 = p.offset(i + 0); [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [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:55:26 [INFO] [stderr] | [INFO] [stderr] 55 | let ba = *p3 as u32; [INFO] [stderr] | ^^^^^^^^^^ help: try: `u32::from(*p3)` [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:56:26 [INFO] [stderr] | [INFO] [stderr] 56 | let br = *p0 as u32 * ba; [INFO] [stderr] | ^^^^^^^^^^ help: try: `u32::from(*p0)` [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:57:26 [INFO] [stderr] | [INFO] [stderr] 57 | let bg = *p1 as u32 * ba; [INFO] [stderr] | ^^^^^^^^^^ help: try: `u32::from(*p1)` [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:58:26 [INFO] [stderr] | [INFO] [stderr] 58 | let bb = *p2 as u32 * ba; [INFO] [stderr] | ^^^^^^^^^^ help: try: `u32::from(*p2)` [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/util.rs:71:37 [INFO] [stderr] | [INFO] [stderr] 71 | pub fn erase(buf: &mut [u8], color: &Color) { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `Color` [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: unused variable: `i` [INFO] [stderr] --> src/shape.rs:502:9 [INFO] [stderr] | [INFO] [stderr] 502 | for i in 0..n { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `h` [INFO] [stderr] --> src/util.rs:40:45 [INFO] [stderr] | [INFO] [stderr] 40 | pub fn draw_lines(buf: &mut [u8], w: usize, h: usize, a: &Color, lines: &[Scanline]) { [INFO] [stderr] | ^ help: consider using `_h` instead [INFO] [stderr] [INFO] [stderr] warning: method is never used: `put` [INFO] [stderr] --> src/core.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | pub fn put(&mut self, x: usize, y: usize, color: &Color) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `to_rgba` [INFO] [stderr] --> src/core.rs:192:5 [INFO] [stderr] | [INFO] [stderr] 192 | pub fn to_rgba(&self) -> Rgba { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/core.rs:47:54 [INFO] [stderr] | [INFO] [stderr] 47 | pub fn put(&mut self, x: usize, y: usize, color: &Color) { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `Color` [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/core.rs:55:36 [INFO] [stderr] | [INFO] [stderr] 55 | pub fn erase(&mut self, color: &Color) { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `Color` [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 u64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:66:22 [INFO] [stderr] | [INFO] [stderr] 66 | r += c.r() as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(c.r())` [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 u64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:67:22 [INFO] [stderr] | [INFO] [stderr] 67 | g += c.g() as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(c.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 u64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:68:22 [INFO] [stderr] | [INFO] [stderr] 68 | b += c.b() as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(c.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/core.rs:83:26 [INFO] [stderr] | [INFO] [stderr] 83 | let a = 0xffff / (alpha as i32); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i32::from(alpha)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/core.rs:87:26 [INFO] [stderr] | [INFO] [stderr] 87 | for _ in line.x1..line.x2 + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: use: `line.x1..=line.x2` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:88:30 [INFO] [stderr] | [INFO] [stderr] 88 | let tr = *target.buf.get_unchecked(i + 0) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*target.buf.get_unchecked(i + 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: the operation is ineffective. Consider reducing it to `i` [INFO] [stderr] --> src/core.rs:88:56 [INFO] [stderr] | [INFO] [stderr] 88 | let tr = *target.buf.get_unchecked(i + 0) as i32; [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:89:30 [INFO] [stderr] | [INFO] [stderr] 89 | let tg = *target.buf.get_unchecked(i + 1) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*target.buf.get_unchecked(i + 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 i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:90:30 [INFO] [stderr] | [INFO] [stderr] 90 | let tb = *target.buf.get_unchecked(i + 2) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*target.buf.get_unchecked(i + 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] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:91:30 [INFO] [stderr] | [INFO] [stderr] 91 | let cr = *self.buf.get_unchecked(i + 0) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*self.buf.get_unchecked(i + 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: the operation is ineffective. Consider reducing it to `i` [INFO] [stderr] --> src/core.rs:91:54 [INFO] [stderr] | [INFO] [stderr] 91 | let cr = *self.buf.get_unchecked(i + 0) as i32; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:92:30 [INFO] [stderr] | [INFO] [stderr] 92 | let cg = *self.buf.get_unchecked(i + 1) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*self.buf.get_unchecked(i + 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 i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:93:30 [INFO] [stderr] | [INFO] [stderr] 93 | let cb = *self.buf.get_unchecked(i + 2) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*self.buf.get_unchecked(i + 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] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/core.rs:120:37 [INFO] [stderr] | [INFO] [stderr] 120 | pub fn draw_lines(&mut self, a: &Color, lines: &[Scanline]) { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `Color` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:133:26 [INFO] [stderr] | [INFO] [stderr] 133 | let dr = pa[0] as i32 - pb[0] as i32; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(pa[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 i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:133:41 [INFO] [stderr] | [INFO] [stderr] 133 | let dr = pa[0] as i32 - pb[0] as i32; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(pb[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 i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:134:26 [INFO] [stderr] | [INFO] [stderr] 134 | let dg = pa[1] as i32 - pb[1] as i32; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(pa[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 i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:134:41 [INFO] [stderr] | [INFO] [stderr] 134 | let dg = pa[1] as i32 - pb[1] as i32; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(pb[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 i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:135:26 [INFO] [stderr] | [INFO] [stderr] 135 | let db = pa[2] as i32 - pb[2] as i32; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(pa[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] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:135:41 [INFO] [stderr] | [INFO] [stderr] 135 | let db = pa[2] as i32 - pb[2] as i32; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(pb[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] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:136:26 [INFO] [stderr] | [INFO] [stderr] 136 | let da = pa[3] as i32 - pb[3] as i32; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(pa[3])` [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/core.rs:136:41 [INFO] [stderr] | [INFO] [stderr] 136 | let da = pa[3] as i32 - pb[3] as i32; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(pb[3])` [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: an inclusive range would be more readable [INFO] [stderr] --> src/core.rs:154:26 [INFO] [stderr] | [INFO] [stderr] 154 | for _ in line.x1..line.x2 + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: use: `line.x1..=line.x2` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:155:31 [INFO] [stderr] | [INFO] [stderr] 155 | let dr1 = *target.buf.get_unchecked(i + 0) as i32 - *before.buf.get_unchecked(i + 0) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*target.buf.get_unchecked(i + 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: the operation is ineffective. Consider reducing it to `i` [INFO] [stderr] --> src/core.rs:155:57 [INFO] [stderr] | [INFO] [stderr] 155 | let dr1 = *target.buf.get_unchecked(i + 0) as i32 - *before.buf.get_unchecked(i + 0) as i32; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:155:73 [INFO] [stderr] | [INFO] [stderr] 155 | let dr1 = *target.buf.get_unchecked(i + 0) as i32 - *before.buf.get_unchecked(i + 0) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*before.buf.get_unchecked(i + 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: the operation is ineffective. Consider reducing it to `i` [INFO] [stderr] --> src/core.rs:155:99 [INFO] [stderr] | [INFO] [stderr] 155 | let dr1 = *target.buf.get_unchecked(i + 0) as i32 - *before.buf.get_unchecked(i + 0) as i32; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:156:31 [INFO] [stderr] | [INFO] [stderr] 156 | let dg1 = *target.buf.get_unchecked(i + 1) as i32 - *before.buf.get_unchecked(i + 1) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*target.buf.get_unchecked(i + 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 i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:156:73 [INFO] [stderr] | [INFO] [stderr] 156 | let dg1 = *target.buf.get_unchecked(i + 1) as i32 - *before.buf.get_unchecked(i + 1) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*before.buf.get_unchecked(i + 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 i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:157:31 [INFO] [stderr] | [INFO] [stderr] 157 | let db1 = *target.buf.get_unchecked(i + 2) as i32 - *before.buf.get_unchecked(i + 2) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*target.buf.get_unchecked(i + 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] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:157:73 [INFO] [stderr] | [INFO] [stderr] 157 | let db1 = *target.buf.get_unchecked(i + 2) as i32 - *before.buf.get_unchecked(i + 2) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*before.buf.get_unchecked(i + 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] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:158:31 [INFO] [stderr] | [INFO] [stderr] 158 | let da1 = *target.buf.get_unchecked(i + 3) as i32 - *before.buf.get_unchecked(i + 3) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*target.buf.get_unchecked(i + 3))` [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/core.rs:158:73 [INFO] [stderr] | [INFO] [stderr] 158 | let da1 = *target.buf.get_unchecked(i + 3) as i32 - *before.buf.get_unchecked(i + 3) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*before.buf.get_unchecked(i + 3))` [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/core.rs:160:31 [INFO] [stderr] | [INFO] [stderr] 160 | let dr2 = *target.buf.get_unchecked(i + 0) as i32 - *after.buf.get_unchecked(i + 0) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*target.buf.get_unchecked(i + 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: the operation is ineffective. Consider reducing it to `i` [INFO] [stderr] --> src/core.rs:160:57 [INFO] [stderr] | [INFO] [stderr] 160 | let dr2 = *target.buf.get_unchecked(i + 0) as i32 - *after.buf.get_unchecked(i + 0) as i32; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:160:73 [INFO] [stderr] | [INFO] [stderr] 160 | let dr2 = *target.buf.get_unchecked(i + 0) as i32 - *after.buf.get_unchecked(i + 0) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*after.buf.get_unchecked(i + 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: the operation is ineffective. Consider reducing it to `i` [INFO] [stderr] --> src/core.rs:160:98 [INFO] [stderr] | [INFO] [stderr] 160 | let dr2 = *target.buf.get_unchecked(i + 0) as i32 - *after.buf.get_unchecked(i + 0) as i32; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:161:31 [INFO] [stderr] | [INFO] [stderr] 161 | let dg2 = *target.buf.get_unchecked(i + 1) as i32 - *after.buf.get_unchecked(i + 1) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*target.buf.get_unchecked(i + 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 i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:161:73 [INFO] [stderr] | [INFO] [stderr] 161 | let dg2 = *target.buf.get_unchecked(i + 1) as i32 - *after.buf.get_unchecked(i + 1) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*after.buf.get_unchecked(i + 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 i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:162:31 [INFO] [stderr] | [INFO] [stderr] 162 | let db2 = *target.buf.get_unchecked(i + 2) as i32 - *after.buf.get_unchecked(i + 2) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*target.buf.get_unchecked(i + 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] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:162:73 [INFO] [stderr] | [INFO] [stderr] 162 | let db2 = *target.buf.get_unchecked(i + 2) as i32 - *after.buf.get_unchecked(i + 2) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*after.buf.get_unchecked(i + 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] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:163:31 [INFO] [stderr] | [INFO] [stderr] 163 | let da2 = *target.buf.get_unchecked(i + 3) as i32 - *after.buf.get_unchecked(i + 3) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*target.buf.get_unchecked(i + 3))` [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/core.rs:163:73 [INFO] [stderr] | [INFO] [stderr] 163 | let da2 = *target.buf.get_unchecked(i + 3) as i32 - *after.buf.get_unchecked(i + 3) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(*after.buf.get_unchecked(i + 3))` [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/core.rs:185:16 [INFO] [stderr] | [INFO] [stderr] 185 | Color(((r as u32) << 24) | ((g as u32) << 16) | ((b as u32) << 8) | a as u32) [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:185:37 [INFO] [stderr] | [INFO] [stderr] 185 | Color(((r as u32) << 24) | ((g as u32) << 16) | ((b as u32) << 8) | a as u32) [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:185:58 [INFO] [stderr] | [INFO] [stderr] 185 | Color(((r as u32) << 24) | ((g as u32) << 16) | ((b as u32) << 8) | a as u32) [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:185:77 [INFO] [stderr] | [INFO] [stderr] 185 | Color(((r as u32) << 24) | ((g as u32) << 16) | ((b as u32) << 8) | a as u32) [INFO] [stderr] | ^^^^^^^^ help: try: `u32::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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/core.rs:192:20 [INFO] [stderr] | [INFO] [stderr] 192 | pub fn to_rgba(&self) -> Rgba { [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/core.rs:202:14 [INFO] [stderr] | [INFO] [stderr] 202 | pub fn r(&self) -> u8 { [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/core.rs:206:14 [INFO] [stderr] | [INFO] [stderr] 206 | pub fn g(&self) -> u8 { [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/core.rs:210:14 [INFO] [stderr] | [INFO] [stderr] 210 | pub fn b(&self) -> u8 { [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/core.rs:214:14 [INFO] [stderr] | [INFO] [stderr] 214 | pub fn a(&self) -> u8 { [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/model.rs:118:54 [INFO] [stderr] | [INFO] [stderr] 118 | c.r(), c.g(), c.b(), c.a() as f32 / 255.0); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f32::from(c.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: an inclusive range would be more readable [INFO] [stderr] --> src/scanline.rs:16:9 [INFO] [stderr] | [INFO] [stderr] 16 | (0..h + 1).map(|_| Scanline::empty()).collect() [INFO] [stderr] | ^^^^^^^^^^ help: use: `(0..=h)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/shape.rs:216:1 [INFO] [stderr] | [INFO] [stderr] 216 | / fn mutate_triangle(w: i32, h: i32, rng: &mut StdRng, [INFO] [stderr] 217 | | x1: &mut i32, y1: &mut i32, [INFO] [stderr] 218 | | x2: &mut i32, y2: &mut i32, [INFO] [stderr] 219 | | x3: &mut i32, y3: &mut i32) { [INFO] [stderr] ... | [INFO] [stderr] 245 | | } [INFO] [stderr] 246 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/shape.rs:248:27 [INFO] [stderr] | [INFO] [stderr] 248 | fn is_valid_triangle(tx1: &i32, ty1: &i32, tx2: &i32, ty2: &i32, tx3: &i32, ty3: &i32) -> bool { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i32` [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/shape.rs:248:38 [INFO] [stderr] | [INFO] [stderr] 248 | fn is_valid_triangle(tx1: &i32, ty1: &i32, tx2: &i32, ty2: &i32, tx3: &i32, ty3: &i32) -> bool { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i32` [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/shape.rs:248:49 [INFO] [stderr] | [INFO] [stderr] 248 | fn is_valid_triangle(tx1: &i32, ty1: &i32, tx2: &i32, ty2: &i32, tx3: &i32, ty3: &i32) -> bool { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i32` [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/shape.rs:248:60 [INFO] [stderr] | [INFO] [stderr] 248 | fn is_valid_triangle(tx1: &i32, ty1: &i32, tx2: &i32, ty2: &i32, tx3: &i32, ty3: &i32) -> bool { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i32` [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/shape.rs:248:71 [INFO] [stderr] | [INFO] [stderr] 248 | fn is_valid_triangle(tx1: &i32, ty1: &i32, tx2: &i32, ty2: &i32, tx3: &i32, ty3: &i32) -> bool { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i32` [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/shape.rs:248:82 [INFO] [stderr] | [INFO] [stderr] 248 | fn is_valid_triangle(tx1: &i32, ty1: &i32, tx2: &i32, ty2: &i32, tx3: &i32, ty3: &i32) -> bool { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i32` [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 function has too many arguments (8/7) [INFO] [stderr] --> src/shape.rs:321:1 [INFO] [stderr] | [INFO] [stderr] 321 | / fn mutate_rotated_rectangle(w: i32, h: i32, rng: &mut StdRng, [INFO] [stderr] 322 | | x: &mut i32, y: &mut i32, [INFO] [stderr] 323 | | sx: &mut i32, sy: &mut i32, [INFO] [stderr] 324 | | angle: &mut i32) { [INFO] [stderr] ... | [INFO] [stderr] 337 | | } [INFO] [stderr] 338 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/shape.rs:340:1 [INFO] [stderr] | [INFO] [stderr] 340 | / fn rasterize_triangle<'a>(w: i32, h: i32, [INFO] [stderr] 341 | | mut x1: i32, mut y1: i32, [INFO] [stderr] 342 | | mut x2: i32, mut y2: i32, [INFO] [stderr] 343 | | mut x3: i32, mut y3: i32, [INFO] [stderr] ... | [INFO] [stderr] 369 | | } [INFO] [stderr] 370 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (10/7) [INFO] [stderr] --> src/shape.rs:372:1 [INFO] [stderr] | [INFO] [stderr] 372 | / fn rasterize_triangle_bottom(w: i32, h: i32, [INFO] [stderr] 373 | | x1: i32, y1: i32, [INFO] [stderr] 374 | | x2: i32, y2: i32, [INFO] [stderr] 375 | | x3: i32, y3: i32, [INFO] [stderr] ... | [INFO] [stderr] 398 | | return count; [INFO] [stderr] 399 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/shape.rs:401:1 [INFO] [stderr] | [INFO] [stderr] 401 | / fn rasterize_triangle_top<'a>(w: i32, h: i32, [INFO] [stderr] 402 | | x1: i32, y1: i32, [INFO] [stderr] 403 | | x2: i32, y2: i32, [INFO] [stderr] 404 | | x3: i32, y3: i32, [INFO] [stderr] ... | [INFO] [stderr] 427 | | return count; [INFO] [stderr] 428 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (10/7) [INFO] [stderr] --> src/shape.rs:401:1 [INFO] [stderr] | [INFO] [stderr] 401 | / fn rasterize_triangle_top<'a>(w: i32, h: i32, [INFO] [stderr] 402 | | x1: i32, y1: i32, [INFO] [stderr] 403 | | x2: i32, y2: i32, [INFO] [stderr] 404 | | x3: i32, y3: i32, [INFO] [stderr] ... | [INFO] [stderr] 427 | | return count; [INFO] [stderr] 428 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/shape.rs:472:14 [INFO] [stderr] | [INFO] [stderr] 472 | for y in y1..y2 + 1 { [INFO] [stderr] | ^^^^^^^^^^ help: use: `y1..=y2` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (8/7) [INFO] [stderr] --> src/shape.rs:481:1 [INFO] [stderr] | [INFO] [stderr] 481 | / fn rasterize_rotated_rectangle<'a>(w: i32, h: i32, [INFO] [stderr] 482 | | x: i32, y: i32, [INFO] [stderr] 483 | | sx: i32, sy: i32, [INFO] [stderr] 484 | | angle: i32, [INFO] [stderr] ... | [INFO] [stderr] 536 | | &buf[0..count as usize] [INFO] [stderr] 537 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [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:40:58 [INFO] [stderr] | [INFO] [stderr] 40 | pub fn draw_lines(buf: &mut [u8], w: usize, h: usize, a: &Color, lines: &[Scanline]) { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `Color` [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/util.rs:41:14 [INFO] [stderr] | [INFO] [stderr] 41 | let aa = a.a() as u32; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(a.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/util.rs:42:14 [INFO] [stderr] | [INFO] [stderr] 42 | let ar = a.r() as u32 * aa; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(a.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 u32 may become silently lossy if types change [INFO] [stderr] --> src/util.rs:43:14 [INFO] [stderr] | [INFO] [stderr] 43 | let ag = a.g() as u32 * aa; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(a.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 u32 may become silently lossy if types change [INFO] [stderr] --> src/util.rs:44:14 [INFO] [stderr] | [INFO] [stderr] 44 | let ab = a.b() as u32 * aa; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(a.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: an inclusive range would be more readable [INFO] [stderr] --> src/util.rs:48:22 [INFO] [stderr] | [INFO] [stderr] 48 | for _ in line.x1..(line.x2 + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `line.x1..=line.x2` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `i` [INFO] [stderr] --> src/util.rs:50:35 [INFO] [stderr] | [INFO] [stderr] 50 | let p0 = p.offset(i + 0); [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [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:55:26 [INFO] [stderr] | [INFO] [stderr] 55 | let ba = *p3 as u32; [INFO] [stderr] | ^^^^^^^^^^ help: try: `u32::from(*p3)` [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:56:26 [INFO] [stderr] | [INFO] [stderr] 56 | let br = *p0 as u32 * ba; [INFO] [stderr] | ^^^^^^^^^^ help: try: `u32::from(*p0)` [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:57:26 [INFO] [stderr] | [INFO] [stderr] 57 | let bg = *p1 as u32 * ba; [INFO] [stderr] | ^^^^^^^^^^ help: try: `u32::from(*p1)` [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:58:26 [INFO] [stderr] | [INFO] [stderr] 58 | let bb = *p2 as u32 * ba; [INFO] [stderr] | ^^^^^^^^^^ help: try: `u32::from(*p2)` [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/util.rs:71:37 [INFO] [stderr] | [INFO] [stderr] 71 | pub fn erase(buf: &mut [u8], color: &Color) { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `Color` [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 6.57s [INFO] running `"docker" "inspect" "e1897c81476b30afeac47bebf888fd812c2b57d6e1f1aadfde0f5d8213520832"` [INFO] running `"docker" "rm" "-f" "e1897c81476b30afeac47bebf888fd812c2b57d6e1f1aadfde0f5d8213520832"` [INFO] [stdout] e1897c81476b30afeac47bebf888fd812c2b57d6e1f1aadfde0f5d8213520832