[INFO] updating cached repository xurtis/rust-mandelbrot [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/xurtis/rust-mandelbrot [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/xurtis/rust-mandelbrot" "work/ex/clippy-test-run/sources/stable/gh/xurtis/rust-mandelbrot"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/xurtis/rust-mandelbrot'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/xurtis/rust-mandelbrot" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/xurtis/rust-mandelbrot"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/xurtis/rust-mandelbrot'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] e8d8a5e43fb5165c9cb2db5f2752fcab3fcecc6c [INFO] sha for GitHub repo xurtis/rust-mandelbrot: e8d8a5e43fb5165c9cb2db5f2752fcab3fcecc6c [INFO] validating manifest of xurtis/rust-mandelbrot 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 xurtis/rust-mandelbrot 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 xurtis/rust-mandelbrot [INFO] finished frobbing xurtis/rust-mandelbrot [INFO] frobbed toml for xurtis/rust-mandelbrot written to work/ex/clippy-test-run/sources/stable/gh/xurtis/rust-mandelbrot/Cargo.toml [INFO] started frobbing xurtis/rust-mandelbrot [INFO] finished frobbing xurtis/rust-mandelbrot [INFO] frobbed toml for xurtis/rust-mandelbrot written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/xurtis/rust-mandelbrot/Cargo.toml [INFO] crate xurtis/rust-mandelbrot has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting xurtis/rust-mandelbrot against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/xurtis/rust-mandelbrot:/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 -Dclippy::into_iter_on_array" "-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] 84cfff2284fd10e57a07ab8454d3d273e44f255e7f20f3d0e80f7e5a346c07ab [INFO] running `"docker" "start" "-a" "84cfff2284fd10e57a07ab8454d3d273e44f255e7f20f3d0e80f7e5a346c07ab"` [INFO] [stderr] Checking byteorder v0.5.3 [INFO] [stderr] Checking threadpool v1.3.2 [INFO] [stderr] Checking mandelbrot v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/tile.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | resolution: resolution, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `resolution` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/tile.rs:55:13 [INFO] [stderr] | [INFO] [stderr] 55 | depth: depth, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace it with: `depth` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/image.rs:40:17 [INFO] [stderr] | [INFO] [stderr] 40 | width: width, [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `width` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/image.rs:41:17 [INFO] [stderr] | [INFO] [stderr] 41 | height: height, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `height` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/image.rs:42:17 [INFO] [stderr] | [INFO] [stderr] 42 | depth: depth, [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `depth` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/tile.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | resolution: resolution, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `resolution` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/tile.rs:55:13 [INFO] [stderr] | [INFO] [stderr] 55 | depth: depth, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace it with: `depth` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/image.rs:40:17 [INFO] [stderr] | [INFO] [stderr] 40 | width: width, [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `width` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/image.rs:41:17 [INFO] [stderr] | [INFO] [stderr] 41 | height: height, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `height` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/image.rs:42:17 [INFO] [stderr] | [INFO] [stderr] 42 | depth: depth, [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `depth` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tile.rs:122:9 [INFO] [stderr] | [INFO] [stderr] 122 | return depth; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `depth` [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/image.rs:149:9 [INFO] [stderr] | [INFO] [stderr] 149 | return color; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `color` [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/main.rs:52:5 [INFO] [stderr] | [INFO] [stderr] 52 | return loc; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `loc` [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/tile.rs:122:9 [INFO] [stderr] | [INFO] [stderr] 122 | return depth; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `depth` [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/image.rs:149:9 [INFO] [stderr] | [INFO] [stderr] 149 | return color; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `color` [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/main.rs:52:5 [INFO] [stderr] | [INFO] [stderr] 52 | return loc; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `loc` [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: an inclusive range would be more readable [INFO] [stderr] --> src/tile.rs:63:18 [INFO] [stderr] | [INFO] [stderr] 63 | for y in 0..(resolution + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use: `0..=resolution` [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: an inclusive range would be more readable [INFO] [stderr] --> src/tile.rs:64:22 [INFO] [stderr] | [INFO] [stderr] 64 | for x in 0..(resolution + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use: `0..=resolution` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/tile.rs:67:50 [INFO] [stderr] | [INFO] [stderr] 67 | let point = self.get_point(x, y, resolution as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(resolution)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/tile.rs:80:18 [INFO] [stderr] | [INFO] [stderr] 80 | for _ in 0..(resolution + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use: `0..=resolution` [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: an inclusive range would be more readable [INFO] [stderr] --> src/tile.rs:81:22 [INFO] [stderr] | [INFO] [stderr] 81 | for _ in 0..(resolution + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use: `0..=resolution` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/tile.rs:96:9 [INFO] [stderr] | [INFO] [stderr] 96 | sum as f64 / (self.render.depth as f64 * 4f64) [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(sum)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/tile.rs:96:23 [INFO] [stderr] | [INFO] [stderr] 96 | sum as f64 / (self.render.depth as f64 * 4f64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.render.depth)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/tile.rs:102:65 [INFO] [stderr] | [INFO] [stderr] 102 | x: self.location.x - ((resolution * size) / 2f64) + x as f64 * size, [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/tile.rs:103:65 [INFO] [stderr] | [INFO] [stderr] 103 | y: self.location.y - ((resolution * size) / 2f64) + y as f64 * size, [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(y)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/image.rs:63:43 [INFO] [stderr] | [INFO] [stderr] 63 | pub fn to_file>(&self, ref path: &P) { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/image.rs:73:35 [INFO] [stderr] | [INFO] [stderr] 73 | fn write_out(&self, ref mut file: &mut W) { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: casting i16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/image.rs:74:44 [INFO] [stderr] | [INFO] [stderr] 74 | let row_base_length = self.width * self.depth as i32 / 8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i32::from(self.depth)` [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: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/image.rs:89:38 [INFO] [stderr] | [INFO] [stderr] 89 | fn write_header(&self, ref mut buf: &mut W, size: i32) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/image.rs:90:9 [INFO] [stderr] | [INFO] [stderr] 90 | buf.write(&BITMAP_PREFIX).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/image.rs:100:35 [INFO] [stderr] | [INFO] [stderr] 100 | fn write_dib(&self, ref mut buf: &mut W) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/image.rs:125:38 [INFO] [stderr] | [INFO] [stderr] 125 | fn write_pixels(&self, ref mut buf: &mut W, row_padding: i32) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/image.rs:140:17 [INFO] [stderr] | [INFO] [stderr] 140 | buf.write(bytes.as_slice()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/image.rs:142:13 [INFO] [stderr] | [INFO] [stderr] 142 | buf.write(&*pad_buf).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/image.rs:148:21 [INFO] [stderr] | [INFO] [stderr] 148 | let color = self.data.get(index as usize).unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.data.get(index as usize).unwrap()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/image.rs:148:21 [INFO] [stderr] | [INFO] [stderr] 148 | let color = self.data.get(index as usize).unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `self.data[index as usize]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/image.rs:163:39 [INFO] [stderr] | [INFO] [stderr] 163 | Color::RGB(r, g, b) => vec![((r as u32 + g as u32 + b as u32) / 3) as u8], [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(r)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/image.rs:163:50 [INFO] [stderr] | [INFO] [stderr] 163 | Color::RGB(r, g, b) => vec![((r as u32 + g as u32 + b as u32) / 3) as u8], [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(g)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/image.rs:163:61 [INFO] [stderr] | [INFO] [stderr] 163 | Color::RGB(r, g, b) => vec![((r as u32 + g as u32 + b as u32) / 3) as u8], [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(b)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/style.rs:14:35 [INFO] [stderr] | [INFO] [stderr] 14 | let descreet_depth = (depth * RGB_SCALE_ITERS as f64) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(RGB_SCALE_ITERS)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/style.rs:52:35 [INFO] [stderr] | [INFO] [stderr] 52 | let descreet_depth = (depth * LIGHT_RGB_SCALE_ITERS as f64) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(LIGHT_RGB_SCALE_ITERS)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/style.rs:77:10 [INFO] [stderr] | [INFO] [stderr] 77 | (u8::MAX as f64 * inverse_depth) as u8, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(u8::MAX)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/style.rs:78:10 [INFO] [stderr] | [INFO] [stderr] 78 | (u8::MAX as f64 * 0.6f64 * inverse_depth) as u8, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(u8::MAX)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/style.rs:86:10 [INFO] [stderr] | [INFO] [stderr] 86 | (u8::MAX as f64 * 0.7 * inverse_depth) as u8, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(u8::MAX)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/style.rs:87:10 [INFO] [stderr] | [INFO] [stderr] 87 | (u8::MAX as f64 * 0.2f64 * inverse_depth) as u8, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(u8::MAX)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/style.rs:88:10 [INFO] [stderr] | [INFO] [stderr] 88 | (u8::MAX as f64 * inverse_depth) as u8, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(u8::MAX)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `mandelbrot`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/tile.rs:63:18 [INFO] [stderr] | [INFO] [stderr] 63 | for y in 0..(resolution + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use: `0..=resolution` [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: an inclusive range would be more readable [INFO] [stderr] --> src/tile.rs:64:22 [INFO] [stderr] | [INFO] [stderr] 64 | for x in 0..(resolution + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use: `0..=resolution` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/tile.rs:67:50 [INFO] [stderr] | [INFO] [stderr] 67 | let point = self.get_point(x, y, resolution as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(resolution)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/tile.rs:80:18 [INFO] [stderr] | [INFO] [stderr] 80 | for _ in 0..(resolution + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use: `0..=resolution` [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: an inclusive range would be more readable [INFO] [stderr] --> src/tile.rs:81:22 [INFO] [stderr] | [INFO] [stderr] 81 | for _ in 0..(resolution + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use: `0..=resolution` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/tile.rs:96:9 [INFO] [stderr] | [INFO] [stderr] 96 | sum as f64 / (self.render.depth as f64 * 4f64) [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(sum)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/tile.rs:96:23 [INFO] [stderr] | [INFO] [stderr] 96 | sum as f64 / (self.render.depth as f64 * 4f64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.render.depth)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/tile.rs:102:65 [INFO] [stderr] | [INFO] [stderr] 102 | x: self.location.x - ((resolution * size) / 2f64) + x as f64 * size, [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/tile.rs:103:65 [INFO] [stderr] | [INFO] [stderr] 103 | y: self.location.y - ((resolution * size) / 2f64) + y as f64 * size, [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(y)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/image.rs:63:43 [INFO] [stderr] | [INFO] [stderr] 63 | pub fn to_file>(&self, ref path: &P) { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/image.rs:73:35 [INFO] [stderr] | [INFO] [stderr] 73 | fn write_out(&self, ref mut file: &mut W) { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: casting i16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/image.rs:74:44 [INFO] [stderr] | [INFO] [stderr] 74 | let row_base_length = self.width * self.depth as i32 / 8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i32::from(self.depth)` [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: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/image.rs:89:38 [INFO] [stderr] | [INFO] [stderr] 89 | fn write_header(&self, ref mut buf: &mut W, size: i32) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/image.rs:90:9 [INFO] [stderr] | [INFO] [stderr] 90 | buf.write(&BITMAP_PREFIX).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/image.rs:100:35 [INFO] [stderr] | [INFO] [stderr] 100 | fn write_dib(&self, ref mut buf: &mut W) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/image.rs:125:38 [INFO] [stderr] | [INFO] [stderr] 125 | fn write_pixels(&self, ref mut buf: &mut W, row_padding: i32) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/image.rs:140:17 [INFO] [stderr] | [INFO] [stderr] 140 | buf.write(bytes.as_slice()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/image.rs:142:13 [INFO] [stderr] | [INFO] [stderr] 142 | buf.write(&*pad_buf).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/image.rs:148:21 [INFO] [stderr] | [INFO] [stderr] 148 | let color = self.data.get(index as usize).unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.data.get(index as usize).unwrap()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/image.rs:148:21 [INFO] [stderr] | [INFO] [stderr] 148 | let color = self.data.get(index as usize).unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `self.data[index as usize]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/image.rs:163:39 [INFO] [stderr] | [INFO] [stderr] 163 | Color::RGB(r, g, b) => vec![((r as u32 + g as u32 + b as u32) / 3) as u8], [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(r)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/image.rs:163:50 [INFO] [stderr] | [INFO] [stderr] 163 | Color::RGB(r, g, b) => vec![((r as u32 + g as u32 + b as u32) / 3) as u8], [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(g)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/image.rs:163:61 [INFO] [stderr] | [INFO] [stderr] 163 | Color::RGB(r, g, b) => vec![((r as u32 + g as u32 + b as u32) / 3) as u8], [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(b)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/style.rs:14:35 [INFO] [stderr] | [INFO] [stderr] 14 | let descreet_depth = (depth * RGB_SCALE_ITERS as f64) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(RGB_SCALE_ITERS)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/style.rs:52:35 [INFO] [stderr] | [INFO] [stderr] 52 | let descreet_depth = (depth * LIGHT_RGB_SCALE_ITERS as f64) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(LIGHT_RGB_SCALE_ITERS)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/style.rs:77:10 [INFO] [stderr] | [INFO] [stderr] 77 | (u8::MAX as f64 * inverse_depth) as u8, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(u8::MAX)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/style.rs:78:10 [INFO] [stderr] | [INFO] [stderr] 78 | (u8::MAX as f64 * 0.6f64 * inverse_depth) as u8, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(u8::MAX)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/style.rs:86:10 [INFO] [stderr] | [INFO] [stderr] 86 | (u8::MAX as f64 * 0.7 * inverse_depth) as u8, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(u8::MAX)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/style.rs:87:10 [INFO] [stderr] | [INFO] [stderr] 87 | (u8::MAX as f64 * 0.2f64 * inverse_depth) as u8, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(u8::MAX)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/style.rs:88:10 [INFO] [stderr] | [INFO] [stderr] 88 | (u8::MAX as f64 * inverse_depth) as u8, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(u8::MAX)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `mandelbrot`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "84cfff2284fd10e57a07ab8454d3d273e44f255e7f20f3d0e80f7e5a346c07ab"` [INFO] running `"docker" "rm" "-f" "84cfff2284fd10e57a07ab8454d3d273e44f255e7f20f3d0e80f7e5a346c07ab"` [INFO] [stdout] 84cfff2284fd10e57a07ab8454d3d273e44f255e7f20f3d0e80f7e5a346c07ab