[INFO] updating cached repository polygon/allcolors-rs [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/polygon/allcolors-rs [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/polygon/allcolors-rs" "work/ex/clippy-test-run/sources/stable/gh/polygon/allcolors-rs"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/polygon/allcolors-rs'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/polygon/allcolors-rs" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/polygon/allcolors-rs"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/polygon/allcolors-rs'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 6ae40304b8936283bbd74dcfd932869fb3a8d888 [INFO] sha for GitHub repo polygon/allcolors-rs: 6ae40304b8936283bbd74dcfd932869fb3a8d888 [INFO] validating manifest of polygon/allcolors-rs 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 polygon/allcolors-rs 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 polygon/allcolors-rs [INFO] finished frobbing polygon/allcolors-rs [INFO] frobbed toml for polygon/allcolors-rs written to work/ex/clippy-test-run/sources/stable/gh/polygon/allcolors-rs/Cargo.toml [INFO] started frobbing polygon/allcolors-rs [INFO] finished frobbing polygon/allcolors-rs [INFO] frobbed toml for polygon/allcolors-rs written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/polygon/allcolors-rs/Cargo.toml [INFO] crate polygon/allcolors-rs 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 polygon/allcolors-rs against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/polygon/allcolors-rs:/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] 0725e581449680cef09c1d3e9653dadfe25d764ee7c85255816bd9f46c38d3d7 [INFO] running `"docker" "start" "-a" "0725e581449680cef09c1d3e9653dadfe25d764ee7c85255816bd9f46c38d3d7"` [INFO] [stderr] Blocking waiting for file lock on the registry index [INFO] [stderr] Compiling khronos_api v2.1.0 [INFO] [stderr] Compiling log v0.4.1 [INFO] [stderr] Checking memmap v0.6.2 [INFO] [stderr] Checking shared_library v0.1.8 [INFO] [stderr] Checking num-integer v0.1.36 [INFO] [stderr] Checking num-traits v0.1.43 [INFO] [stderr] Checking inflate v0.3.4 [INFO] [stderr] Checking libloading v0.4.3 [INFO] [stderr] Compiling wayland-scanner v0.12.5 [INFO] [stderr] Checking enum_primitive v0.1.1 [INFO] [stderr] Checking osmesa-sys v0.1.2 [INFO] [stderr] Checking tempfile v2.2.0 [INFO] [stderr] Checking rayon-core v1.3.0 [INFO] [stderr] Checking x11-dl v2.17.2 [INFO] [stderr] Checking num-iter v0.1.35 [INFO] [stderr] Checking num-rational v0.1.42 [INFO] [stderr] Compiling log v0.3.9 [INFO] [stderr] Checking dlib v0.4.0 [INFO] [stderr] Checking png v0.11.0 [INFO] [stderr] Checking rayon v0.8.2 [INFO] [stderr] Checking wayland-sys v0.12.5 [INFO] [stderr] Compiling gl_generator v0.7.0 [INFO] [stderr] Compiling gl_generator v0.8.0 [INFO] [stderr] Compiling wayland-client v0.12.5 [INFO] [stderr] Compiling wayland-protocols v0.12.5 [INFO] [stderr] Checking jpeg-decoder v0.1.13 [INFO] [stderr] Compiling glium v0.20.0 [INFO] [stderr] Compiling glutin v0.12.0 [INFO] [stderr] Checking image v0.18.0 [INFO] [stderr] Checking wayland-kbd v0.13.1 [INFO] [stderr] Checking wayland-window v0.13.2 [INFO] [stderr] Checking winit v0.10.0 [INFO] [stderr] Checking allcolors-rs v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/colortree.rs:51:67 [INFO] [stderr] | [INFO] [stderr] 51 | cube: Cube { tl: offset, br: offset + (size - 1), size: size }, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `size` [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: 5th binding whose name is just one char [INFO] [stderr] --> src/imagemap.rs:29:20 [INFO] [stderr] | [INFO] [stderr] 29 | let (r, g, b) = color; [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: redundant field names in struct initialization [INFO] [stderr] --> src/colortree.rs:51:67 [INFO] [stderr] | [INFO] [stderr] 51 | cube: Cube { tl: offset, br: offset + (size - 1), size: size }, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `size` [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: 5th binding whose name is just one char [INFO] [stderr] --> src/imagemap.rs:57:39 [INFO] [stderr] | [INFO] [stderr] 57 | Some(&Pixel::Placed(r, g, b)) => Some((r, g, b)), [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/allcolors.rs:21:13 [INFO] [stderr] | [INFO] [stderr] 21 | aspect: aspect, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `aspect` [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] | [INFO] [stderr] --> src/imagemap.rs:29:20 [INFO] [stderr] | [INFO] [stderr] 29 | let (r, g, b) = color; [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#redundant_field_names [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: redundant field names in struct initialization [INFO] [stderr] --> src/allcolors.rs:23:13 [INFO] [stderr] | [INFO] [stderr] 23 | bits: bits, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `bits` [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: 5th binding whose name is just one char [INFO] [stderr] --> src/imagemap.rs:57:39 [INFO] [stderr] | [INFO] [stderr] 57 | Some(&Pixel::Placed(r, g, b)) => Some((r, g, b)), [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/allcolors.rs:51:32 [INFO] [stderr] | [INFO] [stderr] 51 | let (mut r, mut g, mut b) = (0.0, 0.0, 0.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: redundant field names in struct initialization [INFO] [stderr] --> src/allcolors.rs:21:13 [INFO] [stderr] | [INFO] [stderr] 21 | aspect: aspect, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `aspect` [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/allcolors.rs:23:13 [INFO] [stderr] | [INFO] [stderr] 23 | bits: bits, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `bits` [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: 5th binding whose name is just one char [INFO] [stderr] --> src/allcolors.rs:51:32 [INFO] [stderr] | [INFO] [stderr] 51 | let (mut r, mut g, mut b) = (0.0, 0.0, 0.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: unneeded unit expression [INFO] [stderr] --> src/allcolors.rs:43:18 [INFO] [stderr] | [INFO] [stderr] 43 | } else { () } [INFO] [stderr] | ^^ help: remove the final `()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/main.rs:30:16 [INFO] [stderr] | [INFO] [stderr] 30 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 31 | | if !self.saved { [INFO] [stderr] 32 | | self.saved = true; [INFO] [stderr] 33 | | let mut im = image::ImageBuffer::new(self.allcolors.width as u32, self.allcolors.height as u32); [INFO] [stderr] ... | [INFO] [stderr] 42 | | } [INFO] [stderr] 43 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 30 | } else if !self.saved { [INFO] [stderr] 31 | self.saved = true; [INFO] [stderr] 32 | let mut im = image::ImageBuffer::new(self.allcolors.width as u32, self.allcolors.height as u32); [INFO] [stderr] 33 | let v = self.allcolors.to_image(); [INFO] [stderr] 34 | for i in 0..self.allcolors.width { [INFO] [stderr] 35 | for j in 0..self.allcolors.height { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::thread::sleep_ms': replaced by `std::thread::sleep` [INFO] [stderr] --> src/display.rs:83:9 [INFO] [stderr] | [INFO] [stderr] 83 | thread::sleep_ms(10); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded unit expression [INFO] [stderr] --> src/allcolors.rs:43:18 [INFO] [stderr] | [INFO] [stderr] 43 | } else { () } [INFO] [stderr] | ^^ help: remove the final `()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/main.rs:30:16 [INFO] [stderr] | [INFO] [stderr] 30 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 31 | | if !self.saved { [INFO] [stderr] 32 | | self.saved = true; [INFO] [stderr] 33 | | let mut im = image::ImageBuffer::new(self.allcolors.width as u32, self.allcolors.height as u32); [INFO] [stderr] ... | [INFO] [stderr] 42 | | } [INFO] [stderr] 43 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 30 | } else if !self.saved { [INFO] [stderr] 31 | self.saved = true; [INFO] [stderr] 32 | let mut im = image::ImageBuffer::new(self.allcolors.width as u32, self.allcolors.height as u32); [INFO] [stderr] 33 | let v = self.allcolors.to_image(); [INFO] [stderr] 34 | for i in 0..self.allcolors.width { [INFO] [stderr] 35 | for j in 0..self.allcolors.height { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/display.rs:75:13 [INFO] [stderr] | [INFO] [stderr] 75 | / match ev { [INFO] [stderr] 76 | | glutin::Event::WindowEvent { event, .. } => match event { [INFO] [stderr] 77 | | glutin::WindowEvent::Closed => closed = true, [INFO] [stderr] 78 | | _ => (), [INFO] [stderr] 79 | | }, [INFO] [stderr] 80 | | _ => (), [INFO] [stderr] 81 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 75 | if let glutin::Event::WindowEvent { event, .. } = ev { match event { [INFO] [stderr] 76 | glutin::WindowEvent::Closed => closed = true, [INFO] [stderr] 77 | _ => (), [INFO] [stderr] 78 | } } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/display.rs:76:61 [INFO] [stderr] | [INFO] [stderr] 76 | glutin::Event::WindowEvent { event, .. } => match event { [INFO] [stderr] | _____________________________________________________________^ [INFO] [stderr] 77 | | glutin::WindowEvent::Closed => closed = true, [INFO] [stderr] 78 | | _ => (), [INFO] [stderr] 79 | | }, [INFO] [stderr] | |_________________^ help: try this: `if let glutin::WindowEvent::Closed = event { closed = true }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/colortree.rs:67:17 [INFO] [stderr] | [INFO] [stderr] 67 | / match active { [INFO] [stderr] 68 | | true => { [INFO] [stderr] 69 | | let dist = from.dist(pos); [INFO] [stderr] 70 | | if radius > dist { [INFO] [stderr] ... | [INFO] [stderr] 74 | | false => None [INFO] [stderr] 75 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 67 | if active { [INFO] [stderr] 68 | let dist = from.dist(pos); [INFO] [stderr] 69 | if radius > dist { [INFO] [stderr] 70 | Some((*pos, dist)) [INFO] [stderr] 71 | } else { None } [INFO] [stderr] 72 | } else { None } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/colortree.rs:81:54 [INFO] [stderr] | [INFO] [stderr] 81 | let mut distances: Vec<_> = children.into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/colortree.rs:106:20 [INFO] [stderr] | [INFO] [stderr] 106 | if *active == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try simplifying it as shown: `*active` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/colortree.rs:121:20 [INFO] [stderr] | [INFO] [stderr] 121 | if children[idx].remove(point) == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `children[idx].remove(point)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:149:18 [INFO] [stderr] | [INFO] [stderr] 149 | let dr = self.r as i64 - other.r as i64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i64::from(self.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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:149:34 [INFO] [stderr] | [INFO] [stderr] 149 | let dr = self.r as i64 - other.r as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i64::from(other.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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:150:18 [INFO] [stderr] | [INFO] [stderr] 150 | let dg = self.g as i64 - other.g as i64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i64::from(self.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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:150:34 [INFO] [stderr] | [INFO] [stderr] 150 | let dg = self.g as i64 - other.g as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i64::from(other.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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:151:18 [INFO] [stderr] | [INFO] [stderr] 151 | let db = self.b as i64 - other.b as i64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i64::from(self.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 i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:151:34 [INFO] [stderr] | [INFO] [stderr] 151 | let db = self.b as i64 - other.b as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i64::from(other.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 i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:158:29 [INFO] [stderr] | [INFO] [stderr] 158 | let dr = max(max(0, self.tl.r as i64 - from.r as i64), max(0, from.r as i64 - self.br.r as i64)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i64::from(self.tl.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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:158:48 [INFO] [stderr] | [INFO] [stderr] 158 | let dr = max(max(0, self.tl.r as i64 - from.r as i64), max(0, from.r as i64 - self.br.r as i64)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i64::from(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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:158:71 [INFO] [stderr] | [INFO] [stderr] 158 | let dr = max(max(0, self.tl.r as i64 - from.r as i64), max(0, from.r as i64 - self.br.r as i64)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i64::from(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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:158:87 [INFO] [stderr] | [INFO] [stderr] 158 | let dr = max(max(0, self.tl.r as i64 - from.r as i64), max(0, from.r as i64 - self.br.r as i64)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i64::from(self.br.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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:159:29 [INFO] [stderr] | [INFO] [stderr] 159 | let dg = max(max(0, self.tl.g as i64 - from.g as i64), max(0, from.g as i64 - self.br.g as i64)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i64::from(self.tl.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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:159:48 [INFO] [stderr] | [INFO] [stderr] 159 | let dg = max(max(0, self.tl.g as i64 - from.g as i64), max(0, from.g as i64 - self.br.g as i64)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i64::from(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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:159:71 [INFO] [stderr] | [INFO] [stderr] 159 | let dg = max(max(0, self.tl.g as i64 - from.g as i64), max(0, from.g as i64 - self.br.g as i64)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i64::from(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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:159:87 [INFO] [stderr] | [INFO] [stderr] 159 | let dg = max(max(0, self.tl.g as i64 - from.g as i64), max(0, from.g as i64 - self.br.g as i64)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i64::from(self.br.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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:160:29 [INFO] [stderr] | [INFO] [stderr] 160 | let db = max(max(0, self.tl.b as i64 - from.b as i64), max(0, from.b as i64 - self.br.b as i64)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i64::from(self.tl.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 i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:160:48 [INFO] [stderr] | [INFO] [stderr] 160 | let db = max(max(0, self.tl.b as i64 - from.b as i64), max(0, from.b as i64 - self.br.b as i64)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i64::from(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 i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:160:71 [INFO] [stderr] | [INFO] [stderr] 160 | let db = max(max(0, self.tl.b as i64 - from.b as i64), max(0, from.b as i64 - self.br.b as i64)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i64::from(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 i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:160:87 [INFO] [stderr] | [INFO] [stderr] 160 | let db = max(max(0, self.tl.b as i64 - from.b as i64), max(0, from.b as i64 - self.br.b as i64)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i64::from(self.br.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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/imagemap.rs:34:17 [INFO] [stderr] | [INFO] [stderr] 34 | / match self.get(x as i32 + i, y as i32 + j) { [INFO] [stderr] 35 | | Some(&Pixel::Free) => { [INFO] [stderr] 36 | | let px = (x as i32 + i) as usize; [INFO] [stderr] 37 | | let py = (y as i32 + j) as usize; [INFO] [stderr] ... | [INFO] [stderr] 41 | | _ => () [INFO] [stderr] 42 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 34 | if let Some(&Pixel::Free) = self.get(x as i32 + i, y as i32 + j) { [INFO] [stderr] 35 | let px = (x as i32 + i) as usize; [INFO] [stderr] 36 | let py = (y as i32 + j) as usize; [INFO] [stderr] 37 | self.open.push((px, py)); [INFO] [stderr] 38 | self.data[px][py] = Pixel::Marked; [INFO] [stderr] 39 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/imagemap.rs:48:12 [INFO] [stderr] | [INFO] [stderr] 48 | if !((0 <= x) && (x < self.width as i32)) || [INFO] [stderr] | ____________^ [INFO] [stderr] 49 | | !((0 <= y) && (y < self.height as i32)) { [INFO] [stderr] | |__________________________________________________^ help: try: `!((0 <= x) && (x < self.width as i32) && (0 <= y) && (y < self.height as i32))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `out` [INFO] [stderr] --> src/imagemap.rs:79:18 [INFO] [stderr] | [INFO] [stderr] 79 | for i in 0..self.width { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 79 | for (i, ) in out.iter_mut().enumerate().take(self.width) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/imagemap.rs:81:17 [INFO] [stderr] | [INFO] [stderr] 81 | / match self.data[i][j] { [INFO] [stderr] 82 | | Pixel::Placed (r, g, b) => { [INFO] [stderr] 83 | | out[i][j] = (r, g, b); [INFO] [stderr] 84 | | } [INFO] [stderr] 85 | | _ => () [INFO] [stderr] 86 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 81 | if let Pixel::Placed (r, g, b) = self.data[i][j] { [INFO] [stderr] 82 | out[i][j] = (r, g, b); [INFO] [stderr] 83 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/allcolors.rs:17:22 [INFO] [stderr] | [INFO] [stderr] 17 | let colors = 2u32.pow(3*bits) as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(2u32.pow(3*bits))` [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/allcolors.rs:31:47 [INFO] [stderr] | [INFO] [stderr] 31 | self.ctree.remove(colortree::Point{r: color.0 as u32, g: color.1 as u32, b: color.2 as u32}); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u32::from(color.0)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/allcolors.rs:31:66 [INFO] [stderr] | [INFO] [stderr] 31 | self.ctree.remove(colortree::Point{r: color.0 as u32, g: color.1 as u32, b: color.2 as u32}); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u32::from(color.1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/allcolors.rs:31:85 [INFO] [stderr] | [INFO] [stderr] 31 | self.ctree.remove(colortree::Point{r: color.0 as u32, g: color.1 as u32, b: color.2 as u32}); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u32::from(color.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 u32 may become silently lossy if types change [INFO] [stderr] --> src/allcolors.rs:37:77 [INFO] [stderr] | [INFO] [stderr] 37 | if let Some((Point{r, g, b}, ..)) = self.ctree.nearest(Point{r: ar as u32, g: ag as u32, b: ab as u32}) { [INFO] [stderr] | ^^^^^^^^^ help: try: `u32::from(ar)` [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/allcolors.rs:37:91 [INFO] [stderr] | [INFO] [stderr] 37 | if let Some((Point{r, g, b}, ..)) = self.ctree.nearest(Point{r: ar as u32, g: ag as u32, b: ab as u32}) { [INFO] [stderr] | ^^^^^^^^^ help: try: `u32::from(ag)` [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/allcolors.rs:37:105 [INFO] [stderr] | [INFO] [stderr] 37 | if let Some((Point{r, g, b}, ..)) = self.ctree.nearest(Point{r: ar as u32, g: ag as u32, b: ab as u32}) { [INFO] [stderr] | ^^^^^^^^^ help: try: `u32::from(ab)` [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/allcolors.rs:61:26 [INFO] [stderr] | [INFO] [stderr] 61 | r += (nr as f64).powf(2.); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(nr)` [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/allcolors.rs:62:26 [INFO] [stderr] | [INFO] [stderr] 62 | g += (ng as f64).powf(2.); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(ng)` [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/allcolors.rs:63:26 [INFO] [stderr] | [INFO] [stderr] 63 | b += (nb as f64).powf(2.); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(nb)` [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/allcolors.rs:75:41 [INFO] [stderr] | [INFO] [stderr] 75 | let fac: f64 = 256. / 2f64.powf(self.bits as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(self.bits)` [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 loop variable `x` is only used to index `v`. [INFO] [stderr] --> src/allcolors.rs:76:22 [INFO] [stderr] | [INFO] [stderr] 76 | for mut x in 0..self.width { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 76 | for in v.iter_mut().take(self.width) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/allcolors.rs:78:29 [INFO] [stderr] | [INFO] [stderr] 78 | v[x][y] = ((v[x][y].0 as f64 * fac) as u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(v[x][y].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 f64 may become silently lossy if types change [INFO] [stderr] --> src/allcolors.rs:79:29 [INFO] [stderr] | [INFO] [stderr] 79 | (v[x][y].1 as f64 * fac) as u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(v[x][y].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 f64 may become silently lossy if types change [INFO] [stderr] --> src/allcolors.rs:80:29 [INFO] [stderr] | [INFO] [stderr] 80 | (v[x][y].2 as f64 * fac) as u8); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(v[x][y].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: the loop variable `i` is used to index `v` [INFO] [stderr] --> src/main.rs:35:26 [INFO] [stderr] | [INFO] [stderr] 35 | for i in 0..self.allcolors.width { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 35 | for (i, ) in v.iter().enumerate().take(self.allcolors.width) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::thread::sleep_ms': replaced by `std::thread::sleep` [INFO] [stderr] --> src/display.rs:83:9 [INFO] [stderr] | [INFO] [stderr] 83 | thread::sleep_ms(10); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/display.rs:75:13 [INFO] [stderr] | [INFO] [stderr] 75 | / match ev { [INFO] [stderr] 76 | | glutin::Event::WindowEvent { event, .. } => match event { [INFO] [stderr] 77 | | glutin::WindowEvent::Closed => closed = true, [INFO] [stderr] 78 | | _ => (), [INFO] [stderr] 79 | | }, [INFO] [stderr] 80 | | _ => (), [INFO] [stderr] 81 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 75 | if let glutin::Event::WindowEvent { event, .. } = ev { match event { [INFO] [stderr] 76 | glutin::WindowEvent::Closed => closed = true, [INFO] [stderr] 77 | _ => (), [INFO] [stderr] 78 | } } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/display.rs:76:61 [INFO] [stderr] | [INFO] [stderr] 76 | glutin::Event::WindowEvent { event, .. } => match event { [INFO] [stderr] | _____________________________________________________________^ [INFO] [stderr] 77 | | glutin::WindowEvent::Closed => closed = true, [INFO] [stderr] 78 | | _ => (), [INFO] [stderr] 79 | | }, [INFO] [stderr] | |_________________^ help: try this: `if let glutin::WindowEvent::Closed = event { closed = true }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/colortree.rs:67:17 [INFO] [stderr] | [INFO] [stderr] 67 | / match active { [INFO] [stderr] 68 | | true => { [INFO] [stderr] 69 | | let dist = from.dist(pos); [INFO] [stderr] 70 | | if radius > dist { [INFO] [stderr] ... | [INFO] [stderr] 74 | | false => None [INFO] [stderr] 75 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 67 | if active { [INFO] [stderr] 68 | let dist = from.dist(pos); [INFO] [stderr] 69 | if radius > dist { [INFO] [stderr] 70 | Some((*pos, dist)) [INFO] [stderr] 71 | } else { None } [INFO] [stderr] 72 | } else { None } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/colortree.rs:81:54 [INFO] [stderr] | [INFO] [stderr] 81 | let mut distances: Vec<_> = children.into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/colortree.rs:106:20 [INFO] [stderr] | [INFO] [stderr] 106 | if *active == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try simplifying it as shown: `*active` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/colortree.rs:121:20 [INFO] [stderr] | [INFO] [stderr] 121 | if children[idx].remove(point) == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `children[idx].remove(point)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:149:18 [INFO] [stderr] | [INFO] [stderr] 149 | let dr = self.r as i64 - other.r as i64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i64::from(self.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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:149:34 [INFO] [stderr] | [INFO] [stderr] 149 | let dr = self.r as i64 - other.r as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i64::from(other.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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:150:18 [INFO] [stderr] | [INFO] [stderr] 150 | let dg = self.g as i64 - other.g as i64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i64::from(self.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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:150:34 [INFO] [stderr] | [INFO] [stderr] 150 | let dg = self.g as i64 - other.g as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i64::from(other.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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:151:18 [INFO] [stderr] | [INFO] [stderr] 151 | let db = self.b as i64 - other.b as i64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i64::from(self.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 i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:151:34 [INFO] [stderr] | [INFO] [stderr] 151 | let db = self.b as i64 - other.b as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i64::from(other.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 i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:158:29 [INFO] [stderr] | [INFO] [stderr] 158 | let dr = max(max(0, self.tl.r as i64 - from.r as i64), max(0, from.r as i64 - self.br.r as i64)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i64::from(self.tl.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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:158:48 [INFO] [stderr] | [INFO] [stderr] 158 | let dr = max(max(0, self.tl.r as i64 - from.r as i64), max(0, from.r as i64 - self.br.r as i64)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i64::from(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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:158:71 [INFO] [stderr] | [INFO] [stderr] 158 | let dr = max(max(0, self.tl.r as i64 - from.r as i64), max(0, from.r as i64 - self.br.r as i64)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i64::from(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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:158:87 [INFO] [stderr] | [INFO] [stderr] 158 | let dr = max(max(0, self.tl.r as i64 - from.r as i64), max(0, from.r as i64 - self.br.r as i64)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i64::from(self.br.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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:159:29 [INFO] [stderr] | [INFO] [stderr] 159 | let dg = max(max(0, self.tl.g as i64 - from.g as i64), max(0, from.g as i64 - self.br.g as i64)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i64::from(self.tl.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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:159:48 [INFO] [stderr] | [INFO] [stderr] 159 | let dg = max(max(0, self.tl.g as i64 - from.g as i64), max(0, from.g as i64 - self.br.g as i64)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i64::from(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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:159:71 [INFO] [stderr] | [INFO] [stderr] 159 | let dg = max(max(0, self.tl.g as i64 - from.g as i64), max(0, from.g as i64 - self.br.g as i64)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i64::from(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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:159:87 [INFO] [stderr] | [INFO] [stderr] 159 | let dg = max(max(0, self.tl.g as i64 - from.g as i64), max(0, from.g as i64 - self.br.g as i64)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i64::from(self.br.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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:160:29 [INFO] [stderr] | [INFO] [stderr] 160 | let db = max(max(0, self.tl.b as i64 - from.b as i64), max(0, from.b as i64 - self.br.b as i64)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i64::from(self.tl.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 i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:160:48 [INFO] [stderr] | [INFO] [stderr] 160 | let db = max(max(0, self.tl.b as i64 - from.b as i64), max(0, from.b as i64 - self.br.b as i64)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i64::from(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 i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:160:71 [INFO] [stderr] | [INFO] [stderr] 160 | let db = max(max(0, self.tl.b as i64 - from.b as i64), max(0, from.b as i64 - self.br.b as i64)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i64::from(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 i64 may become silently lossy if types change [INFO] [stderr] --> src/colortree.rs:160:87 [INFO] [stderr] | [INFO] [stderr] 160 | let db = max(max(0, self.tl.b as i64 - from.b as i64), max(0, from.b as i64 - self.br.b as i64)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i64::from(self.br.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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/imagemap.rs:34:17 [INFO] [stderr] | [INFO] [stderr] 34 | / match self.get(x as i32 + i, y as i32 + j) { [INFO] [stderr] 35 | | Some(&Pixel::Free) => { [INFO] [stderr] 36 | | let px = (x as i32 + i) as usize; [INFO] [stderr] 37 | | let py = (y as i32 + j) as usize; [INFO] [stderr] ... | [INFO] [stderr] 41 | | _ => () [INFO] [stderr] 42 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 34 | if let Some(&Pixel::Free) = self.get(x as i32 + i, y as i32 + j) { [INFO] [stderr] 35 | let px = (x as i32 + i) as usize; [INFO] [stderr] 36 | let py = (y as i32 + j) as usize; [INFO] [stderr] 37 | self.open.push((px, py)); [INFO] [stderr] 38 | self.data[px][py] = Pixel::Marked; [INFO] [stderr] 39 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/imagemap.rs:48:12 [INFO] [stderr] | [INFO] [stderr] 48 | if !((0 <= x) && (x < self.width as i32)) || [INFO] [stderr] | ____________^ [INFO] [stderr] 49 | | !((0 <= y) && (y < self.height as i32)) { [INFO] [stderr] | |__________________________________________________^ help: try: `!((0 <= x) && (x < self.width as i32) && (0 <= y) && (y < self.height as i32))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `out` [INFO] [stderr] --> src/imagemap.rs:79:18 [INFO] [stderr] | [INFO] [stderr] 79 | for i in 0..self.width { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 79 | for (i, ) in out.iter_mut().enumerate().take(self.width) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/imagemap.rs:81:17 [INFO] [stderr] | [INFO] [stderr] 81 | / match self.data[i][j] { [INFO] [stderr] 82 | | Pixel::Placed (r, g, b) => { [INFO] [stderr] 83 | | out[i][j] = (r, g, b); [INFO] [stderr] 84 | | } [INFO] [stderr] 85 | | _ => () [INFO] [stderr] 86 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 81 | if let Pixel::Placed (r, g, b) = self.data[i][j] { [INFO] [stderr] 82 | out[i][j] = (r, g, b); [INFO] [stderr] 83 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/allcolors.rs:17:22 [INFO] [stderr] | [INFO] [stderr] 17 | let colors = 2u32.pow(3*bits) as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(2u32.pow(3*bits))` [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/allcolors.rs:31:47 [INFO] [stderr] | [INFO] [stderr] 31 | self.ctree.remove(colortree::Point{r: color.0 as u32, g: color.1 as u32, b: color.2 as u32}); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u32::from(color.0)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/allcolors.rs:31:66 [INFO] [stderr] | [INFO] [stderr] 31 | self.ctree.remove(colortree::Point{r: color.0 as u32, g: color.1 as u32, b: color.2 as u32}); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u32::from(color.1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/allcolors.rs:31:85 [INFO] [stderr] | [INFO] [stderr] 31 | self.ctree.remove(colortree::Point{r: color.0 as u32, g: color.1 as u32, b: color.2 as u32}); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u32::from(color.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 u32 may become silently lossy if types change [INFO] [stderr] --> src/allcolors.rs:37:77 [INFO] [stderr] | [INFO] [stderr] 37 | if let Some((Point{r, g, b}, ..)) = self.ctree.nearest(Point{r: ar as u32, g: ag as u32, b: ab as u32}) { [INFO] [stderr] | ^^^^^^^^^ help: try: `u32::from(ar)` [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/allcolors.rs:37:91 [INFO] [stderr] | [INFO] [stderr] 37 | if let Some((Point{r, g, b}, ..)) = self.ctree.nearest(Point{r: ar as u32, g: ag as u32, b: ab as u32}) { [INFO] [stderr] | ^^^^^^^^^ help: try: `u32::from(ag)` [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/allcolors.rs:37:105 [INFO] [stderr] | [INFO] [stderr] 37 | if let Some((Point{r, g, b}, ..)) = self.ctree.nearest(Point{r: ar as u32, g: ag as u32, b: ab as u32}) { [INFO] [stderr] | ^^^^^^^^^ help: try: `u32::from(ab)` [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/allcolors.rs:61:26 [INFO] [stderr] | [INFO] [stderr] 61 | r += (nr as f64).powf(2.); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(nr)` [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/allcolors.rs:62:26 [INFO] [stderr] | [INFO] [stderr] 62 | g += (ng as f64).powf(2.); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(ng)` [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/allcolors.rs:63:26 [INFO] [stderr] | [INFO] [stderr] 63 | b += (nb as f64).powf(2.); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(nb)` [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/allcolors.rs:75:41 [INFO] [stderr] | [INFO] [stderr] 75 | let fac: f64 = 256. / 2f64.powf(self.bits as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(self.bits)` [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 loop variable `x` is only used to index `v`. [INFO] [stderr] --> src/allcolors.rs:76:22 [INFO] [stderr] | [INFO] [stderr] 76 | for mut x in 0..self.width { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 76 | for in v.iter_mut().take(self.width) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/allcolors.rs:78:29 [INFO] [stderr] | [INFO] [stderr] 78 | v[x][y] = ((v[x][y].0 as f64 * fac) as u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(v[x][y].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 f64 may become silently lossy if types change [INFO] [stderr] --> src/allcolors.rs:79:29 [INFO] [stderr] | [INFO] [stderr] 79 | (v[x][y].1 as f64 * fac) as u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(v[x][y].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 f64 may become silently lossy if types change [INFO] [stderr] --> src/allcolors.rs:80:29 [INFO] [stderr] | [INFO] [stderr] 80 | (v[x][y].2 as f64 * fac) as u8); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(v[x][y].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: the loop variable `i` is used to index `v` [INFO] [stderr] --> src/main.rs:35:26 [INFO] [stderr] | [INFO] [stderr] 35 | for i in 0..self.allcolors.width { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 35 | for (i, ) in v.iter().enumerate().take(self.allcolors.width) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 59.53s [INFO] running `"docker" "inspect" "0725e581449680cef09c1d3e9653dadfe25d764ee7c85255816bd9f46c38d3d7"` [INFO] running `"docker" "rm" "-f" "0725e581449680cef09c1d3e9653dadfe25d764ee7c85255816bd9f46c38d3d7"` [INFO] [stdout] 0725e581449680cef09c1d3e9653dadfe25d764ee7c85255816bd9f46c38d3d7