[INFO] updating cached repository mgrabmueller/med [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/mgrabmueller/med [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/mgrabmueller/med" "work/ex/clippy-test-run/sources/stable/gh/mgrabmueller/med"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/mgrabmueller/med'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/mgrabmueller/med" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mgrabmueller/med"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mgrabmueller/med'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] eea892b4e510feaa621765d7c2bfa16f7c4ee523 [INFO] sha for GitHub repo mgrabmueller/med: eea892b4e510feaa621765d7c2bfa16f7c4ee523 [INFO] validating manifest of mgrabmueller/med 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 mgrabmueller/med 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 mgrabmueller/med [INFO] finished frobbing mgrabmueller/med [INFO] frobbed toml for mgrabmueller/med written to work/ex/clippy-test-run/sources/stable/gh/mgrabmueller/med/Cargo.toml [INFO] started frobbing mgrabmueller/med [INFO] finished frobbing mgrabmueller/med [INFO] frobbed toml for mgrabmueller/med written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mgrabmueller/med/Cargo.toml [INFO] crate mgrabmueller/med 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 mgrabmueller/med 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-6/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/mgrabmueller/med:/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] ca5d44489a5e2b7a8fc8a6527026cf7f7416ee993ae90c6bd51d005d47d7e0f7 [INFO] running `"docker" "start" "-a" "ca5d44489a5e2b7a8fc8a6527026cf7f7416ee993ae90c6bd51d005d47d7e0f7"` [INFO] [stderr] Checking med v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/main.rs:151:20 [INFO] [stderr] | [INFO] [stderr] 151 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 152 | | if let Some(c) = l.mark_char { [INFO] [stderr] 153 | | if c == mark { [INFO] [stderr] 154 | | l.mark_char = None; [INFO] [stderr] 155 | | } [INFO] [stderr] 156 | | } [INFO] [stderr] 157 | | } [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] 151 | } else if let Some(c) = l.mark_char { [INFO] [stderr] 152 | if c == mark { [INFO] [stderr] 153 | l.mark_char = None; [INFO] [stderr] 154 | } [INFO] [stderr] 155 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:266:13 [INFO] [stderr] | [INFO] [stderr] 266 | return Ok(Some(buf)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(buf))` [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: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/main.rs:267:16 [INFO] [stderr] | [INFO] [stderr] 267 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 268 | | if self.input_lines.is_empty() { [INFO] [stderr] 269 | | Ok(None) [INFO] [stderr] 270 | | } else { [INFO] [stderr] ... | [INFO] [stderr] 273 | | } [INFO] [stderr] 274 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [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] 267 | } else if self.input_lines.is_empty() { [INFO] [stderr] 268 | Ok(None) [INFO] [stderr] 269 | } else { [INFO] [stderr] 270 | let buf = self.input_lines.remove(0); [INFO] [stderr] 271 | Ok(Some(buf)) [INFO] [stderr] 272 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/main.rs:505:12 [INFO] [stderr] | [INFO] [stderr] 505 | } else { [INFO] [stderr] | ____________^ [INFO] [stderr] 506 | | if base + amount <= state.last_line() { [INFO] [stderr] 507 | | Ok(Some(base + amount)) [INFO] [stderr] 508 | | } else { [INFO] [stderr] 509 | | address_err() [INFO] [stderr] 510 | | } [INFO] [stderr] 511 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [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] 505 | } else if base + amount <= state.last_line() { [INFO] [stderr] 506 | Ok(Some(base + amount)) [INFO] [stderr] 507 | } else { [INFO] [stderr] 508 | address_err() [INFO] [stderr] 509 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:583:17 [INFO] [stderr] | [INFO] [stderr] 583 | None => return err(io::ErrorKind::InvalidData, "no match"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `err(io::ErrorKind::InvalidData, "no match")` [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:661:21 [INFO] [stderr] | [INFO] [stderr] 661 | acc [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:660:31 [INFO] [stderr] | [INFO] [stderr] 660 | let acc = get_num(state, c)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:1659:9 [INFO] [stderr] | [INFO] [stderr] 1659 | result [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:1630:13 [INFO] [stderr] | [INFO] [stderr] 1630 | / match c { [INFO] [stderr] 1631 | | 'q' => quit_cmd(state, lines, false), [INFO] [stderr] 1632 | | 'Q' => quit_cmd(state, lines, true), [INFO] [stderr] 1633 | | 'p' => print_cmd(state, lines), [INFO] [stderr] ... | [INFO] [stderr] 1657 | | }, [INFO] [stderr] 1658 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/main.rs:151:20 [INFO] [stderr] | [INFO] [stderr] 151 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 152 | | if let Some(c) = l.mark_char { [INFO] [stderr] 153 | | if c == mark { [INFO] [stderr] 154 | | l.mark_char = None; [INFO] [stderr] 155 | | } [INFO] [stderr] 156 | | } [INFO] [stderr] 157 | | } [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] 151 | } else if let Some(c) = l.mark_char { [INFO] [stderr] 152 | if c == mark { [INFO] [stderr] 153 | l.mark_char = None; [INFO] [stderr] 154 | } [INFO] [stderr] 155 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:266:13 [INFO] [stderr] | [INFO] [stderr] 266 | return Ok(Some(buf)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(buf))` [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: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/main.rs:267:16 [INFO] [stderr] | [INFO] [stderr] 267 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 268 | | if self.input_lines.is_empty() { [INFO] [stderr] 269 | | Ok(None) [INFO] [stderr] 270 | | } else { [INFO] [stderr] ... | [INFO] [stderr] 273 | | } [INFO] [stderr] 274 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [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] 267 | } else if self.input_lines.is_empty() { [INFO] [stderr] 268 | Ok(None) [INFO] [stderr] 269 | } else { [INFO] [stderr] 270 | let buf = self.input_lines.remove(0); [INFO] [stderr] 271 | Ok(Some(buf)) [INFO] [stderr] 272 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/main.rs:505:12 [INFO] [stderr] | [INFO] [stderr] 505 | } else { [INFO] [stderr] | ____________^ [INFO] [stderr] 506 | | if base + amount <= state.last_line() { [INFO] [stderr] 507 | | Ok(Some(base + amount)) [INFO] [stderr] 508 | | } else { [INFO] [stderr] 509 | | address_err() [INFO] [stderr] 510 | | } [INFO] [stderr] 511 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [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] 505 | } else if base + amount <= state.last_line() { [INFO] [stderr] 506 | Ok(Some(base + amount)) [INFO] [stderr] 507 | } else { [INFO] [stderr] 508 | address_err() [INFO] [stderr] 509 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:583:17 [INFO] [stderr] | [INFO] [stderr] 583 | None => return err(io::ErrorKind::InvalidData, "no match"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `err(io::ErrorKind::InvalidData, "no match")` [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:661:21 [INFO] [stderr] | [INFO] [stderr] 661 | acc [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:660:31 [INFO] [stderr] | [INFO] [stderr] 660 | let acc = get_num(state, c)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:1659:9 [INFO] [stderr] | [INFO] [stderr] 1659 | result [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:1630:13 [INFO] [stderr] | [INFO] [stderr] 1630 | / match c { [INFO] [stderr] 1631 | | 'q' => quit_cmd(state, lines, false), [INFO] [stderr] 1632 | | 'Q' => quit_cmd(state, lines, true), [INFO] [stderr] 1633 | | 'p' => print_cmd(state, lines), [INFO] [stderr] ... | [INFO] [stderr] 1657 | | }, [INFO] [stderr] 1658 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/main.rs:170:39 [INFO] [stderr] | [INFO] [stderr] 170 | self.lines.push(Line::new(s.into())); [INFO] [stderr] | ^^^^^^^^ help: consider removing `.into()`: `s` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: an exclusive range would be more readable [INFO] [stderr] --> src/main.rs:191:52 [INFO] [stderr] | [INFO] [stderr] 191 | let _removed: Vec = self.lines.drain(from_line - 1..=to_line - 1).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `from_line - 1..to_line` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_minus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_minus_one [INFO] [stderr] [INFO] [stderr] warning: an exclusive range would be more readable [INFO] [stderr] --> src/main.rs:197:26 [INFO] [stderr] | [INFO] [stderr] 197 | self.lines.drain(from_line - 1..=to_line - 1).map(| l | l.text).collect() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `from_line - 1..to_line` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_minus_one [INFO] [stderr] [INFO] [stderr] warning: an exclusive range would be more readable [INFO] [stderr] --> src/main.rs:201:31 [INFO] [stderr] | [INFO] [stderr] 201 | self.lines.as_slice()[from_line - 1..=to_line - 1].iter().map(| l | l.text.clone()).collect() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `from_line - 1..to_line` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_minus_one [INFO] [stderr] [INFO] [stderr] warning: an exclusive range would be more readable [INFO] [stderr] --> src/main.rs:205:54 [INFO] [stderr] | [INFO] [stderr] 205 | self.cut_buffer = Some(self.lines.as_slice()[from_line - 1..=to_line - 1].iter() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `from_line - 1..to_line` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_minus_one [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/main.rs:230:9 [INFO] [stderr] | [INFO] [stderr] 230 | / match (&self.mode, self.print_prompt) { [INFO] [stderr] 231 | | (Mode::Command, true) => { [INFO] [stderr] 232 | | write!(self.output_writer, "{}", self.prompt)?; [INFO] [stderr] 233 | | self.output_writer.flush()? [INFO] [stderr] 234 | | }, [INFO] [stderr] 235 | | _ => {}, [INFO] [stderr] 236 | | } [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] 230 | if let (Mode::Command, true) = (&self.mode, self.print_prompt) { [INFO] [stderr] 231 | write!(self.output_writer, "{}", self.prompt)?; [INFO] [stderr] 232 | self.output_writer.flush()? [INFO] [stderr] 233 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:541:12 [INFO] [stderr] | [INFO] [stderr] 541 | if pat.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `pat.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/main.rs:775:9 [INFO] [stderr] | [INFO] [stderr] 775 | / loop { [INFO] [stderr] 776 | | if let Some(c) = state.current_char()? { [INFO] [stderr] 777 | | if c == '\n' { [INFO] [stderr] 778 | | state.drop_char()?; [INFO] [stderr] ... | [INFO] [stderr] 785 | | } [INFO] [stderr] 786 | | } [INFO] [stderr] | |_________^ help: try: `while let Some(c) = state.current_char()? { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:787:12 [INFO] [stderr] | [INFO] [stderr] 787 | if arg.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!arg.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:804:20 [INFO] [stderr] | [INFO] [stderr] 804 | if class.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `class.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: this `if` has identical blocks [INFO] [stderr] --> src/main.rs:814:24 [INFO] [stderr] | [INFO] [stderr] 814 | } else { [INFO] [stderr] | ________________________^ [INFO] [stderr] 815 | | class.push(c); [INFO] [stderr] 816 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/main.rs:812:37 [INFO] [stderr] | [INFO] [stderr] 812 | if class.len() == 0 { [INFO] [stderr] | _____________________________________^ [INFO] [stderr] 813 | | class.push(c); [INFO] [stderr] 814 | | } else { [INFO] [stderr] | |_________________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:812:20 [INFO] [stderr] | [INFO] [stderr] 812 | if class.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `class.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:841:16 [INFO] [stderr] | [INFO] [stderr] 841 | fn amatch(pat: &Vec, mut pi: usize, target: &Vec, mut ti: usize) -> [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[Pat]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:841:50 [INFO] [stderr] | [INFO] [stderr] 841 | fn amatch(pat: &Vec, mut pi: usize, target: &Vec, mut ti: usize) -> [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[char]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:882:24 [INFO] [stderr] | [INFO] [stderr] 882 | fn match_pattern(cpat: &Vec, target0: &str) -> Option { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[Pat]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] error: this `if` has identical blocks [INFO] [stderr] --> src/main.rs:933:29 [INFO] [stderr] | [INFO] [stderr] 933 | } else if c == '\n' { [INFO] [stderr] | _____________________________^ [INFO] [stderr] 934 | | break; [INFO] [stderr] 935 | | } else if c == ')' { [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] note: same as this [INFO] [stderr] --> src/main.rs:931:23 [INFO] [stderr] | [INFO] [stderr] 931 | if c == delim { [INFO] [stderr] | _______________________^ [INFO] [stderr] 932 | | break; [INFO] [stderr] 933 | | } else if c == '\n' { [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: calling `.extend(_.chars())` [INFO] [stderr] --> src/main.rs:1282:9 [INFO] [stderr] | [INFO] [stderr] 1282 | new_line.extend(l.chars()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `new_line.push_str(&l)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::string_extend_chars)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_extend_chars [INFO] [stderr] [INFO] [stderr] warning: use of `or` followed by a function call [INFO] [stderr] --> src/main.rs:1347:38 [INFO] [stderr] | [INFO] [stderr] 1347 | let fname = get_argument(state)?.or(state.default_filename.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| state.default_filename.clone())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `or` followed by a function call [INFO] [stderr] --> src/main.rs:1366:38 [INFO] [stderr] | [INFO] [stderr] 1366 | let fname = get_argument(state)?.or(state.default_filename.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| state.default_filename.clone())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `or` followed by a function call [INFO] [stderr] --> src/main.rs:1407:38 [INFO] [stderr] | [INFO] [stderr] 1407 | let fname = get_argument(state)?.or(state.default_filename.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| state.default_filename.clone())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] error: this `if` has identical blocks [INFO] [stderr] --> src/main.rs:1477:49 [INFO] [stderr] | [INFO] [stderr] 1477 | } else if matches.is_none() && !include { [INFO] [stderr] | _________________________________________________^ [INFO] [stderr] 1478 | | state.lines[line - 1].mark = true; [INFO] [stderr] 1479 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] note: same as this [INFO] [stderr] --> src/main.rs:1475:41 [INFO] [stderr] | [INFO] [stderr] 1475 | if matches.is_some() && include { [INFO] [stderr] | _________________________________________^ [INFO] [stderr] 1476 | | state.lines[line - 1].mark = true; [INFO] [stderr] 1477 | | } else if matches.is_none() && !include { [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/main.rs:1605:62 [INFO] [stderr] | [INFO] [stderr] 1605 | let l1 = (((c as u8) >> 3) + ('0' as u8)) as char; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::char_lit_as_u8)] on by default [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'0' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/main.rs:1606:63 [INFO] [stderr] | [INFO] [stderr] 1606 | let l2 = (((c as u8) & 0x7) + ('0' as u8)) as char; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'0' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `med`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/main.rs:170:39 [INFO] [stderr] | [INFO] [stderr] 170 | self.lines.push(Line::new(s.into())); [INFO] [stderr] | ^^^^^^^^ help: consider removing `.into()`: `s` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: an exclusive range would be more readable [INFO] [stderr] --> src/main.rs:191:52 [INFO] [stderr] | [INFO] [stderr] 191 | let _removed: Vec = self.lines.drain(from_line - 1..=to_line - 1).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `from_line - 1..to_line` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_minus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_minus_one [INFO] [stderr] [INFO] [stderr] warning: an exclusive range would be more readable [INFO] [stderr] --> src/main.rs:197:26 [INFO] [stderr] | [INFO] [stderr] 197 | self.lines.drain(from_line - 1..=to_line - 1).map(| l | l.text).collect() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `from_line - 1..to_line` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_minus_one [INFO] [stderr] [INFO] [stderr] warning: an exclusive range would be more readable [INFO] [stderr] --> src/main.rs:201:31 [INFO] [stderr] | [INFO] [stderr] 201 | self.lines.as_slice()[from_line - 1..=to_line - 1].iter().map(| l | l.text.clone()).collect() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `from_line - 1..to_line` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_minus_one [INFO] [stderr] [INFO] [stderr] warning: an exclusive range would be more readable [INFO] [stderr] --> src/main.rs:205:54 [INFO] [stderr] | [INFO] [stderr] 205 | self.cut_buffer = Some(self.lines.as_slice()[from_line - 1..=to_line - 1].iter() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `from_line - 1..to_line` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_minus_one [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/main.rs:230:9 [INFO] [stderr] | [INFO] [stderr] 230 | / match (&self.mode, self.print_prompt) { [INFO] [stderr] 231 | | (Mode::Command, true) => { [INFO] [stderr] 232 | | write!(self.output_writer, "{}", self.prompt)?; [INFO] [stderr] 233 | | self.output_writer.flush()? [INFO] [stderr] 234 | | }, [INFO] [stderr] 235 | | _ => {}, [INFO] [stderr] 236 | | } [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] 230 | if let (Mode::Command, true) = (&self.mode, self.print_prompt) { [INFO] [stderr] 231 | write!(self.output_writer, "{}", self.prompt)?; [INFO] [stderr] 232 | self.output_writer.flush()? [INFO] [stderr] 233 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:541:12 [INFO] [stderr] | [INFO] [stderr] 541 | if pat.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `pat.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/main.rs:775:9 [INFO] [stderr] | [INFO] [stderr] 775 | / loop { [INFO] [stderr] 776 | | if let Some(c) = state.current_char()? { [INFO] [stderr] 777 | | if c == '\n' { [INFO] [stderr] 778 | | state.drop_char()?; [INFO] [stderr] ... | [INFO] [stderr] 785 | | } [INFO] [stderr] 786 | | } [INFO] [stderr] | |_________^ help: try: `while let Some(c) = state.current_char()? { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:787:12 [INFO] [stderr] | [INFO] [stderr] 787 | if arg.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!arg.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:804:20 [INFO] [stderr] | [INFO] [stderr] 804 | if class.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `class.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: this `if` has identical blocks [INFO] [stderr] --> src/main.rs:814:24 [INFO] [stderr] | [INFO] [stderr] 814 | } else { [INFO] [stderr] | ________________________^ [INFO] [stderr] 815 | | class.push(c); [INFO] [stderr] 816 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/main.rs:812:37 [INFO] [stderr] | [INFO] [stderr] 812 | if class.len() == 0 { [INFO] [stderr] | _____________________________________^ [INFO] [stderr] 813 | | class.push(c); [INFO] [stderr] 814 | | } else { [INFO] [stderr] | |_________________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:812:20 [INFO] [stderr] | [INFO] [stderr] 812 | if class.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `class.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:841:16 [INFO] [stderr] | [INFO] [stderr] 841 | fn amatch(pat: &Vec, mut pi: usize, target: &Vec, mut ti: usize) -> [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[Pat]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:841:50 [INFO] [stderr] | [INFO] [stderr] 841 | fn amatch(pat: &Vec, mut pi: usize, target: &Vec, mut ti: usize) -> [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[char]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:882:24 [INFO] [stderr] | [INFO] [stderr] 882 | fn match_pattern(cpat: &Vec, target0: &str) -> Option { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[Pat]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] error: this `if` has identical blocks [INFO] [stderr] --> src/main.rs:933:29 [INFO] [stderr] | [INFO] [stderr] 933 | } else if c == '\n' { [INFO] [stderr] | _____________________________^ [INFO] [stderr] 934 | | break; [INFO] [stderr] 935 | | } else if c == ')' { [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] note: same as this [INFO] [stderr] --> src/main.rs:931:23 [INFO] [stderr] | [INFO] [stderr] 931 | if c == delim { [INFO] [stderr] | _______________________^ [INFO] [stderr] 932 | | break; [INFO] [stderr] 933 | | } else if c == '\n' { [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: calling `.extend(_.chars())` [INFO] [stderr] --> src/main.rs:1282:9 [INFO] [stderr] | [INFO] [stderr] 1282 | new_line.extend(l.chars()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `new_line.push_str(&l)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::string_extend_chars)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_extend_chars [INFO] [stderr] [INFO] [stderr] warning: use of `or` followed by a function call [INFO] [stderr] --> src/main.rs:1347:38 [INFO] [stderr] | [INFO] [stderr] 1347 | let fname = get_argument(state)?.or(state.default_filename.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| state.default_filename.clone())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `or` followed by a function call [INFO] [stderr] --> src/main.rs:1366:38 [INFO] [stderr] | [INFO] [stderr] 1366 | let fname = get_argument(state)?.or(state.default_filename.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| state.default_filename.clone())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `or` followed by a function call [INFO] [stderr] --> src/main.rs:1407:38 [INFO] [stderr] | [INFO] [stderr] 1407 | let fname = get_argument(state)?.or(state.default_filename.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| state.default_filename.clone())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] error: this `if` has identical blocks [INFO] [stderr] --> src/main.rs:1477:49 [INFO] [stderr] | [INFO] [stderr] 1477 | } else if matches.is_none() && !include { [INFO] [stderr] | _________________________________________________^ [INFO] [stderr] 1478 | | state.lines[line - 1].mark = true; [INFO] [stderr] 1479 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] note: same as this [INFO] [stderr] --> src/main.rs:1475:41 [INFO] [stderr] | [INFO] [stderr] 1475 | if matches.is_some() && include { [INFO] [stderr] | _________________________________________^ [INFO] [stderr] 1476 | | state.lines[line - 1].mark = true; [INFO] [stderr] 1477 | | } else if matches.is_none() && !include { [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/main.rs:1605:62 [INFO] [stderr] | [INFO] [stderr] 1605 | let l1 = (((c as u8) >> 3) + ('0' as u8)) as char; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::char_lit_as_u8)] on by default [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'0' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/main.rs:1606:63 [INFO] [stderr] | [INFO] [stderr] 1606 | let l2 = (((c as u8) & 0x7) + ('0' as u8)) as char; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'0' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/main.rs:1792:13 [INFO] [stderr] | [INFO] [stderr] 1792 | let _ = main_loop(&mut state).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_unit_value)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `med`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "ca5d44489a5e2b7a8fc8a6527026cf7f7416ee993ae90c6bd51d005d47d7e0f7"` [INFO] running `"docker" "rm" "-f" "ca5d44489a5e2b7a8fc8a6527026cf7f7416ee993ae90c6bd51d005d47d7e0f7"` [INFO] [stdout] ca5d44489a5e2b7a8fc8a6527026cf7f7416ee993ae90c6bd51d005d47d7e0f7