[INFO] updating cached repository benbrunton/les [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/benbrunton/les [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/benbrunton/les" "work/ex/clippy-test-run/sources/stable/gh/benbrunton/les"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/benbrunton/les'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/benbrunton/les" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/benbrunton/les"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/benbrunton/les'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 678e146f26fd9d86e986719b3250f233b82de4b1 [INFO] sha for GitHub repo benbrunton/les: 678e146f26fd9d86e986719b3250f233b82de4b1 [INFO] validating manifest of benbrunton/les 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 benbrunton/les 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 benbrunton/les [INFO] finished frobbing benbrunton/les [INFO] frobbed toml for benbrunton/les written to work/ex/clippy-test-run/sources/stable/gh/benbrunton/les/Cargo.toml [INFO] started frobbing benbrunton/les [INFO] finished frobbing benbrunton/les [INFO] frobbed toml for benbrunton/les written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/benbrunton/les/Cargo.toml [INFO] crate benbrunton/les 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 benbrunton/les 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/benbrunton/les:/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] 766b590ab0ca21e12da47ad056e53a220975daac269baa2ef7ff99d633634369 [INFO] running `"docker" "start" "-a" "766b590ab0ca21e12da47ad056e53a220975daac269baa2ef7ff99d633634369"` [INFO] [stderr] Checking terminal_size v0.1.7 [INFO] [stderr] Checking les v0.2.1 (/opt/crater/workdir) [INFO] [stderr] warning: consider choosing a more descriptive name [INFO] [stderr] --> src/style/mod.rs:22:9 [INFO] [stderr] | [INFO] [stderr] 22 | __ => format!("{} ", ICON_UNKNOWN) [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::just_underscores_and_digits)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#just_underscores_and_digits [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/io/mod.rs:90:13 [INFO] [stderr] | [INFO] [stderr] 90 | print!("\n"); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::print_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/decorate/mod.rs:49:13 [INFO] [stderr] | [INFO] [stderr] 49 | colour: colour, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `colour` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/decorate/mod.rs:50:13 [INFO] [stderr] | [INFO] [stderr] 50 | icon: icon [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `icon` [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: consider choosing a more descriptive name [INFO] [stderr] --> src/style/mod.rs:22:9 [INFO] [stderr] | [INFO] [stderr] 22 | __ => format!("{} ", ICON_UNKNOWN) [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::just_underscores_and_digits)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#just_underscores_and_digits [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/io/mod.rs:90:13 [INFO] [stderr] | [INFO] [stderr] 90 | print!("\n"); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::print_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/decorate/mod.rs:49:13 [INFO] [stderr] | [INFO] [stderr] 49 | colour: colour, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `colour` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/decorate/mod.rs:50:13 [INFO] [stderr] | [INFO] [stderr] 50 | icon: icon [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `icon` [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: unused import: `std::io::stdout` [INFO] [stderr] --> src/main.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::io::stdout; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::Write` [INFO] [stderr] --> src/les/mod.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::io::Write; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `decorate::Decorate` [INFO] [stderr] --> src/les/mod.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use decorate::Decorate; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `paintitems::PaintItems` [INFO] [stderr] --> src/les/mod.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use paintitems::PaintItems; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Stdout`, `stdout` [INFO] [stderr] --> src/io/mod.rs:1:15 [INFO] [stderr] | [INFO] [stderr] 1 | use std::io::{Stdout,stdout}; [INFO] [stderr] | ^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `min` [INFO] [stderr] --> src/io/mod.rs:2:16 [INFO] [stderr] | [INFO] [stderr] 2 | use std::cmp::{min,max}; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/config/mod.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | mod config; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::str::FromStr` [INFO] [stderr] --> src/decorate/mod.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::str::FromStr; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/paintitems/mod.rs:41:9 [INFO] [stderr] | [INFO] [stderr] 41 | return PaintItems::new(visible_items); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `PaintItems::new(visible_items)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/paintitems/mod.rs:45:9 [INFO] [stderr] | [INFO] [stderr] 45 | return self.items.iter(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.items.iter()` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/main.rs:19:17 [INFO] [stderr] | [INFO] [stderr] 19 | const VERSION: &'static str = env!("CARGO_PKG_VERSION"); [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::stdout` [INFO] [stderr] --> src/main.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::io::stdout; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::Write` [INFO] [stderr] --> src/les/mod.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::io::Write; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `decorate::Decorate` [INFO] [stderr] --> src/les/mod.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use decorate::Decorate; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `paintitems::PaintItems` [INFO] [stderr] --> src/les/mod.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use paintitems::PaintItems; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std` [INFO] [stderr] --> src/les/mod.rs:43:9 [INFO] [stderr] | [INFO] [stderr] 43 | use std; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Stdout`, `stdout` [INFO] [stderr] --> src/io/mod.rs:1:15 [INFO] [stderr] | [INFO] [stderr] 1 | use std::io::{Stdout,stdout}; [INFO] [stderr] | ^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `min` [INFO] [stderr] --> src/io/mod.rs:2:16 [INFO] [stderr] | [INFO] [stderr] 2 | use std::cmp::{min,max}; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/config/mod.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | mod config; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::str::FromStr` [INFO] [stderr] --> src/decorate/mod.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::str::FromStr; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/paintitems/mod.rs:41:9 [INFO] [stderr] | [INFO] [stderr] 41 | return PaintItems::new(visible_items); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `PaintItems::new(visible_items)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/paintitems/mod.rs:45:9 [INFO] [stderr] | [INFO] [stderr] 45 | return self.items.iter(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.items.iter()` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/main.rs:19:17 [INFO] [stderr] | [INFO] [stderr] 19 | const VERSION: &'static str = env!("CARGO_PKG_VERSION"); [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: unused variable: `inodes_count` [INFO] [stderr] --> src/io/mod.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | let inodes_count = inodes.len(); [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_inodes_count` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `prev_item_length` is never read [INFO] [stderr] --> src/io/mod.rs:73:21 [INFO] [stderr] | [INFO] [stderr] 73 | let mut prev_item_length = 0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/io/mod.rs:120:13 [INFO] [stderr] | [INFO] [stderr] 120 | let mut visible_items = paint_items.get_visible(); [INFO] [stderr] | ----^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: field is never used: `path` [INFO] [stderr] --> src/fs/mod.rs:92:5 [INFO] [stderr] | [INFO] [stderr] 92 | path: String [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_path` [INFO] [stderr] --> src/fs/mod.rs:117:5 [INFO] [stderr] | [INFO] [stderr] 117 | pub fn get_path(&self) -> String { [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/les/mod.rs:29:9 [INFO] [stderr] | [INFO] [stderr] 29 | / match paths_result { [INFO] [stderr] 30 | | Ok(paths) => { [INFO] [stderr] 31 | | self.printer.print(paths); [INFO] [stderr] 32 | | }, [INFO] [stderr] 33 | | _ => () [INFO] [stderr] 34 | | } [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] 29 | if let Ok(paths) = paths_result { [INFO] [stderr] 30 | self.printer.print(paths); [INFO] [stderr] 31 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/fs/mod.rs:27:20 [INFO] [stderr] | [INFO] [stderr] 27 | let name = format!("{}", stem.to_str().unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `stem.to_str().unwrap().to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/fs/mod.rs:28:21 [INFO] [stderr] | [INFO] [stderr] 28 | let label = format!("{}", stem.to_str().unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `stem.to_str().unwrap().to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/fs/mod.rs:33:28 [INFO] [stderr] | [INFO] [stderr] 33 | let path_str = buf.unwrap_or(path.to_str().unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| path.to_str().unwrap())` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/fs/mod.rs:72:13 [INFO] [stderr] | [INFO] [stderr] 72 | / match file_result { [INFO] [stderr] 73 | | Some(file) => { [INFO] [stderr] 74 | | vec.push(file); [INFO] [stderr] 75 | | [INFO] [stderr] 76 | | }, [INFO] [stderr] 77 | | _ => () [INFO] [stderr] 78 | | } [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] 72 | if let Some(file) = file_result { [INFO] [stderr] 73 | vec.push(file); [INFO] [stderr] 74 | [INFO] [stderr] 75 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/io/mod.rs:33:45 [INFO] [stderr] | [INFO] [stderr] 33 | let max_term_cols_no_spacing = (width as f32 / max_filename_size as f32).floor() as usize; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f32::from(width)` [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: manual implementation of an assign operation [INFO] [stderr] --> src/io/mod.rs:53:13 [INFO] [stderr] | [INFO] [stderr] 53 | rows_per_col = rows_per_col + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `rows_per_col += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/io/mod.rs:84:25 [INFO] [stderr] | [INFO] [stderr] 84 | current_file_idx = current_file_idx + max_rows; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `current_file_idx += max_rows` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/config/config.rs:23:16 [INFO] [stderr] | [INFO] [stderr] 23 | if let Err(_) = f { [INFO] [stderr] | _________- ^^^^^^ [INFO] [stderr] 24 | | return Config { store: BTreeMap::new() }; [INFO] [stderr] 25 | | }; [INFO] [stderr] | |_________- help: try this: `if f.is_err()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/config/config.rs:39:20 [INFO] [stderr] | [INFO] [stderr] 39 | let toml = toml::from_str(&s).unwrap_or(BTreeMap::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `toml::from_str(&s).unwrap_or_default()` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/config/mod.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | / match absolute_path { [INFO] [stderr] 11 | | Err(_) => return Config::from_path(""), [INFO] [stderr] 12 | | _ => () [INFO] [stderr] 13 | | } [INFO] [stderr] | |_____^ help: try this: `if let Err(_) = absolute_path { return Config::from_path("") }` [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/decorate/mod.rs:32:22 [INFO] [stderr] | [INFO] [stderr] 32 | let colour = match file.get_is_dir() { [INFO] [stderr] | ______________________^ [INFO] [stderr] 33 | | true => self.get_dir_colour(&file.get_name()), [INFO] [stderr] 34 | | _ => self.get_colour(&file.get_name()) [INFO] [stderr] 35 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if file.get_is_dir() { self.get_dir_colour(&file.get_name()) } else { self.get_colour(&file.get_name()) }` [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] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/decorate/mod.rs:38:20 [INFO] [stderr] | [INFO] [stderr] 38 | let icon = match file.get_is_dir() { [INFO] [stderr] | ____________________^ [INFO] [stderr] 39 | | true => self.get_dir_icon(&file.get_name()), [INFO] [stderr] 40 | | _ => self.get_icon(&file.get_name()) [INFO] [stderr] 41 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if file.get_is_dir() { self.get_dir_icon(&file.get_name()) } else { self.get_icon(&file.get_name()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's values [INFO] [stderr] --> src/decorate/mod.rs:103:31 [INFO] [stderr] | [INFO] [stderr] 103 | for (_, icon_info) in icon_table { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::for_kv_map)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 103 | for icon_info in icon_table.values() { [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/paintitems/mod.rs:25:41 [INFO] [stderr] | [INFO] [stderr] 25 | if index >= self.items.len() || index < 0 { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_comparisons)] on by default [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/paintitems/mod.rs:25:41 [INFO] [stderr] | [INFO] [stderr] 25 | if index >= self.items.len() || index < 0 { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::absurd_extreme_comparisons)] on by default [INFO] [stderr] = help: because 0 is the minimum value for this type, this comparison is always false [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: unused variable: `decorator` [INFO] [stderr] --> src/les/mod.rs:53:13 [INFO] [stderr] | [INFO] [stderr] 53 | let decorator = decorate::Decorate::new(None); [INFO] [stderr] | ^^^^^^^^^ help: consider using `_decorator` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] warning: unused variable: `inodes_count` [INFO] [stderr] --> src/io/mod.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | let inodes_count = inodes.len(); [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_inodes_count` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `prev_item_length` is never read [INFO] [stderr] --> src/io/mod.rs:73:21 [INFO] [stderr] | [INFO] [stderr] 73 | let mut prev_item_length = 0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] error: Could not compile `les`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/io/mod.rs:120:13 [INFO] [stderr] | [INFO] [stderr] 120 | let mut visible_items = paint_items.get_visible(); [INFO] [stderr] | ----^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: field is never used: `path` [INFO] [stderr] --> src/fs/mod.rs:92:5 [INFO] [stderr] | [INFO] [stderr] 92 | path: String [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_path` [INFO] [stderr] --> src/fs/mod.rs:117:5 [INFO] [stderr] | [INFO] [stderr] 117 | pub fn get_path(&self) -> String { [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/les/mod.rs:29:9 [INFO] [stderr] | [INFO] [stderr] 29 | / match paths_result { [INFO] [stderr] 30 | | Ok(paths) => { [INFO] [stderr] 31 | | self.printer.print(paths); [INFO] [stderr] 32 | | }, [INFO] [stderr] 33 | | _ => () [INFO] [stderr] 34 | | } [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] 29 | if let Ok(paths) = paths_result { [INFO] [stderr] 30 | self.printer.print(paths); [INFO] [stderr] 31 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/fs/mod.rs:27:20 [INFO] [stderr] | [INFO] [stderr] 27 | let name = format!("{}", stem.to_str().unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `stem.to_str().unwrap().to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/fs/mod.rs:28:21 [INFO] [stderr] | [INFO] [stderr] 28 | let label = format!("{}", stem.to_str().unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `stem.to_str().unwrap().to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/fs/mod.rs:33:28 [INFO] [stderr] | [INFO] [stderr] 33 | let path_str = buf.unwrap_or(path.to_str().unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| path.to_str().unwrap())` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/fs/mod.rs:72:13 [INFO] [stderr] | [INFO] [stderr] 72 | / match file_result { [INFO] [stderr] 73 | | Some(file) => { [INFO] [stderr] 74 | | vec.push(file); [INFO] [stderr] 75 | | [INFO] [stderr] 76 | | }, [INFO] [stderr] 77 | | _ => () [INFO] [stderr] 78 | | } [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] 72 | if let Some(file) = file_result { [INFO] [stderr] 73 | vec.push(file); [INFO] [stderr] 74 | [INFO] [stderr] 75 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: variable `licenseItem` should have a snake case name such as `license_item` [INFO] [stderr] --> src/style/mod.rs:67:13 [INFO] [stderr] | [INFO] [stderr] 67 | let licenseItem = PaintItem{ [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable `licenseItem` should have a snake case name such as `license_item` [INFO] [stderr] --> src/style/mod.rs:83:13 [INFO] [stderr] | [INFO] [stderr] 83 | let licenseItem = PaintItem{ [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/io/mod.rs:33:45 [INFO] [stderr] | [INFO] [stderr] 33 | let max_term_cols_no_spacing = (width as f32 / max_filename_size as f32).floor() as usize; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f32::from(width)` [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: manual implementation of an assign operation [INFO] [stderr] --> src/io/mod.rs:53:13 [INFO] [stderr] | [INFO] [stderr] 53 | rows_per_col = rows_per_col + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `rows_per_col += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/io/mod.rs:84:25 [INFO] [stderr] | [INFO] [stderr] 84 | current_file_idx = current_file_idx + max_rows; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `current_file_idx += max_rows` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/config/config.rs:23:16 [INFO] [stderr] | [INFO] [stderr] 23 | if let Err(_) = f { [INFO] [stderr] | _________- ^^^^^^ [INFO] [stderr] 24 | | return Config { store: BTreeMap::new() }; [INFO] [stderr] 25 | | }; [INFO] [stderr] | |_________- help: try this: `if f.is_err()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/config/config.rs:39:20 [INFO] [stderr] | [INFO] [stderr] 39 | let toml = toml::from_str(&s).unwrap_or(BTreeMap::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `toml::from_str(&s).unwrap_or_default()` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/config/mod.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | / match absolute_path { [INFO] [stderr] 11 | | Err(_) => return Config::from_path(""), [INFO] [stderr] 12 | | _ => () [INFO] [stderr] 13 | | } [INFO] [stderr] | |_____^ help: try this: `if let Err(_) = absolute_path { return Config::from_path("") }` [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/decorate/mod.rs:32:22 [INFO] [stderr] | [INFO] [stderr] 32 | let colour = match file.get_is_dir() { [INFO] [stderr] | ______________________^ [INFO] [stderr] 33 | | true => self.get_dir_colour(&file.get_name()), [INFO] [stderr] 34 | | _ => self.get_colour(&file.get_name()) [INFO] [stderr] 35 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if file.get_is_dir() { self.get_dir_colour(&file.get_name()) } else { self.get_colour(&file.get_name()) }` [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] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/decorate/mod.rs:38:20 [INFO] [stderr] | [INFO] [stderr] 38 | let icon = match file.get_is_dir() { [INFO] [stderr] | ____________________^ [INFO] [stderr] 39 | | true => self.get_dir_icon(&file.get_name()), [INFO] [stderr] 40 | | _ => self.get_icon(&file.get_name()) [INFO] [stderr] 41 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if file.get_is_dir() { self.get_dir_icon(&file.get_name()) } else { self.get_icon(&file.get_name()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's values [INFO] [stderr] --> src/decorate/mod.rs:103:31 [INFO] [stderr] | [INFO] [stderr] 103 | for (_, icon_info) in icon_table { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::for_kv_map)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 103 | for icon_info in icon_table.values() { [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `it_returns_a_Paint_Item` should have a snake case name such as `it_returns_a_paint_item` [INFO] [stderr] --> src/decorate/mod.rs:201:5 [INFO] [stderr] | [INFO] [stderr] 201 | / fn it_returns_a_Paint_Item() { [INFO] [stderr] 202 | | [INFO] [stderr] 203 | | let file = File::new( [INFO] [stderr] 204 | | String::from("filename"), [INFO] [stderr] ... | [INFO] [stderr] 222 | | assert_eq!(paint_item, expected_result); [INFO] [stderr] 223 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/paintitems/mod.rs:25:41 [INFO] [stderr] | [INFO] [stderr] 25 | if index >= self.items.len() || index < 0 { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_comparisons)] on by default [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/paintitems/mod.rs:25:41 [INFO] [stderr] | [INFO] [stderr] 25 | if index >= self.items.len() || index < 0 { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::absurd_extreme_comparisons)] on by default [INFO] [stderr] = help: because 0 is the minimum value for this type, this comparison is always false [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `les`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "766b590ab0ca21e12da47ad056e53a220975daac269baa2ef7ff99d633634369"` [INFO] running `"docker" "rm" "-f" "766b590ab0ca21e12da47ad056e53a220975daac269baa2ef7ff99d633634369"` [INFO] [stdout] 766b590ab0ca21e12da47ad056e53a220975daac269baa2ef7ff99d633634369