[INFO] fetching crate code-metadata 1.0.0... [INFO] linting code-metadata-1.0.0 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate code-metadata 1.0.0 into /workspace/builds/worker-6-tc1/source [INFO] started tweaking crates.io crate code-metadata 1.0.0 [INFO] finished tweaking crates.io crate code-metadata 1.0.0 [INFO] tweaked toml for crates.io crate code-metadata 1.0.0 written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate code-metadata 1.0.0 on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate code-metadata 1.0.0 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 45ff74c3615b03361cb8e3b4f6a09c753ffcf9f17b2ea7a01047c9f08cb91b87 [INFO] running `Command { std: "docker" "start" "-a" "45ff74c3615b03361cb8e3b4f6a09c753ffcf9f17b2ea7a01047c9f08cb91b87", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "45ff74c3615b03361cb8e3b4f6a09c753ffcf9f17b2ea7a01047c9f08cb91b87", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "45ff74c3615b03361cb8e3b4f6a09c753ffcf9f17b2ea7a01047c9f08cb91b87", kill_on_drop: false }` [INFO] [stdout] 45ff74c3615b03361cb8e3b4f6a09c753ffcf9f17b2ea7a01047c9f08cb91b87 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ba69e5db837396a197e09a8ab1f8bcf929160bea38f8f389ebcef5ab27911c14 [INFO] running `Command { std: "docker" "start" "-a" "ba69e5db837396a197e09a8ab1f8bcf929160bea38f8f389ebcef5ab27911c14", kill_on_drop: false }` [INFO] [stderr] Checking code-metadata v1.0.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: methods `print` and `get_headers_from` are never used [INFO] [stdout] --> src/table.rs:52:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl Table { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 52 | pub fn print(&self, rows: &Vec>) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | fn get_headers_from(&self, rows: &Vec>) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::fs::ReadDir` [INFO] [stdout] --> src/directory.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | fs::read_dir(path).unwrap().into_iter().for_each(|file: Result| { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `fs::read_dir(path).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/directory.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | if !link.is_ok() && metadata.is_dir() { [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `link.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `print` and `get_headers_from` are never used [INFO] [stdout] --> src/table.rs:52:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl Table { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 52 | pub fn print(&self, rows: &Vec>) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | fn get_headers_from(&self, rows: &Vec>) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/table.rs:17:44 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn print_with_headers(&self, rows: &Vec>, headers: &Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 17 - pub fn print_with_headers(&self, rows: &Vec>, headers: &Vec) { [INFO] [stdout] 17 + pub fn print_with_headers(&self, rows: &[collections::HashMap], headers: &Vec) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/table.rs:43:30 [INFO] [stdout] | [INFO] [stdout] 43 | self.print_separator(&headers, &sizes); [INFO] [stdout] | ^^^^^^^^ help: change this to: `headers` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/table.rs:44:25 [INFO] [stdout] | [INFO] [stdout] 44 | self.print_line(&headers, &sizes, &headers_map); [INFO] [stdout] | ^^^^^^^^ help: change this to: `headers` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/table.rs:46:34 [INFO] [stdout] | [INFO] [stdout] 46 | self.print_separator(&headers, &sizes); [INFO] [stdout] | ^^^^^^^^ help: change this to: `headers` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/table.rs:47:29 [INFO] [stdout] | [INFO] [stdout] 47 | self.print_line(&headers, &sizes, row); [INFO] [stdout] | ^^^^^^^^ help: change this to: `headers` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/table.rs:49:30 [INFO] [stdout] | [INFO] [stdout] 49 | self.print_separator(&headers, &sizes); [INFO] [stdout] | ^^^^^^^^ help: change this to: `headers` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/table.rs:53:58 [INFO] [stdout] | [INFO] [stdout] 53 | let headers: Vec = self.get_headers_from(&rows); [INFO] [stdout] | ^^^^^ help: change this to: `rows` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/table.rs:54:33 [INFO] [stdout] | [INFO] [stdout] 54 | self.print_with_headers(&rows, &headers); [INFO] [stdout] | ^^^^^ help: change this to: `rows` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/table.rs:57:38 [INFO] [stdout] | [INFO] [stdout] 57 | fn get_headers_from(&self, rows: &Vec>) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 57 - fn get_headers_from(&self, rows: &Vec>) -> Vec { [INFO] [stdout] 57 + fn get_headers_from(&self, rows: &[collections::HashMap]) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/table.rs:69:35 [INFO] [stdout] | [INFO] [stdout] 69 | fn print_line(&self, headers: &Vec, sizes: &collections::HashMap, row: &collections::HashMap, sizes: &collections::HashMap, row: &collections::HashMap) { [INFO] [stdout] 69 + fn print_line(&self, headers: &[String], sizes: &collections::HashMap, row: &collections::HashMap) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> src/table.rs:84:9 [INFO] [stdout] | [INFO] [stdout] 84 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] = note: `#[warn(clippy::println_empty_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/table.rs:87:40 [INFO] [stdout] | [INFO] [stdout] 87 | fn print_separator(&self, headers: &Vec, sizes: &collections::HashMap) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 87 - fn print_separator(&self, headers: &Vec, sizes: &collections::HashMap) { [INFO] [stdout] 87 + fn print_separator(&self, headers: &[String], sizes: &collections::HashMap) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> src/table.rs:101:9 [INFO] [stdout] | [INFO] [stdout] 101 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/codemetadata.rs:17:33 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn get_metadatas(files: &Vec) -> collections::HashMap { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 17 - pub fn get_metadatas(files: &Vec) -> collections::HashMap { [INFO] [stdout] 17 + pub fn get_metadatas(files: &[String]) -> collections::HashMap { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/codemetadata.rs:23:17 [INFO] [stdout] | [INFO] [stdout] 23 | / match rows { [INFO] [stdout] 24 | | Some(value) => { [INFO] [stdout] 25 | | let file_metadata: FileMetadata = FileMetadata { [INFO] [stdout] 26 | | files: value.files + 1, [INFO] [stdout] ... | [INFO] [stdout] 31 | | None => {}, [INFO] [stdout] 32 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 23 ~ if let Some(value) = rows { [INFO] [stdout] 24 + let file_metadata: FileMetadata = FileMetadata { [INFO] [stdout] 25 + files: value.files + 1, [INFO] [stdout] 26 + lines: value.lines + metadata.1 [INFO] [stdout] 27 + }; [INFO] [stdout] 28 + hash_map.insert(metadata.0, file_metadata); [INFO] [stdout] 29 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/codemetadata.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | return (String::from(file_parts[file_parts.len() - 1]), line_count); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 57 - return (String::from(file_parts[file_parts.len() - 1]), line_count); [INFO] [stdout] 57 + (String::from(file_parts[file_parts.len() - 1]), line_count) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/codemetadata.rs:44:31 [INFO] [stdout] | [INFO] [stdout] 44 | pub fn get_metadata(file: &String) -> (String, usize) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 44 ~ pub fn get_metadata(file: &str) -> (String, usize) { [INFO] [stdout] 45 | let path_parts: Vec<&str> = file.split(path::MAIN_SEPARATOR.to_string().as_str()).collect(); [INFO] [stdout] ... [INFO] [stdout] 48 | let file_parts: Vec<&str> = filename.split(".").collect(); [INFO] [stdout] 49 ~ let input: fs::File = fs::File::open(file).expect("can't open file"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::collections::hash_map::Keys<'_, std::string::String, codemetadata::FileMetadata>` [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | lines.keys().into_iter().for_each(|extention: &String| { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `lines.keys()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::fs::ReadDir` [INFO] [stdout] --> src/directory.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | fs::read_dir(path).unwrap().into_iter().for_each(|file: Result| { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `fs::read_dir(path).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/directory.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | if !link.is_ok() && metadata.is_dir() { [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `link.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/table.rs:17:44 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn print_with_headers(&self, rows: &Vec>, headers: &Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 17 - pub fn print_with_headers(&self, rows: &Vec>, headers: &Vec) { [INFO] [stdout] 17 + pub fn print_with_headers(&self, rows: &[collections::HashMap], headers: &Vec) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/table.rs:43:30 [INFO] [stdout] | [INFO] [stdout] 43 | self.print_separator(&headers, &sizes); [INFO] [stdout] | ^^^^^^^^ help: change this to: `headers` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/table.rs:44:25 [INFO] [stdout] | [INFO] [stdout] 44 | self.print_line(&headers, &sizes, &headers_map); [INFO] [stdout] | ^^^^^^^^ help: change this to: `headers` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/table.rs:46:34 [INFO] [stdout] | [INFO] [stdout] 46 | self.print_separator(&headers, &sizes); [INFO] [stdout] | ^^^^^^^^ help: change this to: `headers` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/table.rs:47:29 [INFO] [stdout] | [INFO] [stdout] 47 | self.print_line(&headers, &sizes, row); [INFO] [stdout] | ^^^^^^^^ help: change this to: `headers` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/table.rs:49:30 [INFO] [stdout] | [INFO] [stdout] 49 | self.print_separator(&headers, &sizes); [INFO] [stdout] | ^^^^^^^^ help: change this to: `headers` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/table.rs:53:58 [INFO] [stdout] | [INFO] [stdout] 53 | let headers: Vec = self.get_headers_from(&rows); [INFO] [stdout] | ^^^^^ help: change this to: `rows` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/table.rs:54:33 [INFO] [stdout] | [INFO] [stdout] 54 | self.print_with_headers(&rows, &headers); [INFO] [stdout] | ^^^^^ help: change this to: `rows` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/table.rs:57:38 [INFO] [stdout] | [INFO] [stdout] 57 | fn get_headers_from(&self, rows: &Vec>) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 57 - fn get_headers_from(&self, rows: &Vec>) -> Vec { [INFO] [stdout] 57 + fn get_headers_from(&self, rows: &[collections::HashMap]) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/table.rs:69:35 [INFO] [stdout] | [INFO] [stdout] 69 | fn print_line(&self, headers: &Vec, sizes: &collections::HashMap, row: &collections::HashMap, sizes: &collections::HashMap, row: &collections::HashMap) { [INFO] [stdout] 69 + fn print_line(&self, headers: &[String], sizes: &collections::HashMap, row: &collections::HashMap) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> src/table.rs:84:9 [INFO] [stdout] | [INFO] [stdout] 84 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] = note: `#[warn(clippy::println_empty_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/table.rs:87:40 [INFO] [stdout] | [INFO] [stdout] 87 | fn print_separator(&self, headers: &Vec, sizes: &collections::HashMap) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 87 - fn print_separator(&self, headers: &Vec, sizes: &collections::HashMap) { [INFO] [stdout] 87 + fn print_separator(&self, headers: &[String], sizes: &collections::HashMap) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> src/table.rs:101:9 [INFO] [stdout] | [INFO] [stdout] 101 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/codemetadata.rs:17:33 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn get_metadatas(files: &Vec) -> collections::HashMap { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 17 - pub fn get_metadatas(files: &Vec) -> collections::HashMap { [INFO] [stdout] 17 + pub fn get_metadatas(files: &[String]) -> collections::HashMap { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/codemetadata.rs:23:17 [INFO] [stdout] | [INFO] [stdout] 23 | / match rows { [INFO] [stdout] 24 | | Some(value) => { [INFO] [stdout] 25 | | let file_metadata: FileMetadata = FileMetadata { [INFO] [stdout] 26 | | files: value.files + 1, [INFO] [stdout] ... | [INFO] [stdout] 31 | | None => {}, [INFO] [stdout] 32 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 23 ~ if let Some(value) = rows { [INFO] [stdout] 24 + let file_metadata: FileMetadata = FileMetadata { [INFO] [stdout] 25 + files: value.files + 1, [INFO] [stdout] 26 + lines: value.lines + metadata.1 [INFO] [stdout] 27 + }; [INFO] [stdout] 28 + hash_map.insert(metadata.0, file_metadata); [INFO] [stdout] 29 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/codemetadata.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | return (String::from(file_parts[file_parts.len() - 1]), line_count); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 57 - return (String::from(file_parts[file_parts.len() - 1]), line_count); [INFO] [stdout] 57 + (String::from(file_parts[file_parts.len() - 1]), line_count) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/codemetadata.rs:44:31 [INFO] [stdout] | [INFO] [stdout] 44 | pub fn get_metadata(file: &String) -> (String, usize) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 44 ~ pub fn get_metadata(file: &str) -> (String, usize) { [INFO] [stdout] 45 | let path_parts: Vec<&str> = file.split(path::MAIN_SEPARATOR.to_string().as_str()).collect(); [INFO] [stdout] ... [INFO] [stdout] 48 | let file_parts: Vec<&str> = filename.split(".").collect(); [INFO] [stdout] 49 ~ let input: fs::File = fs::File::open(file).expect("can't open file"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::collections::hash_map::Keys<'_, std::string::String, codemetadata::FileMetadata>` [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | lines.keys().into_iter().for_each(|extention: &String| { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `lines.keys()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.31s [INFO] running `Command { std: "docker" "inspect" "ba69e5db837396a197e09a8ab1f8bcf929160bea38f8f389ebcef5ab27911c14", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ba69e5db837396a197e09a8ab1f8bcf929160bea38f8f389ebcef5ab27911c14", kill_on_drop: false }` [INFO] [stdout] ba69e5db837396a197e09a8ab1f8bcf929160bea38f8f389ebcef5ab27911c14