[INFO] crate fselect 0.5.1 is already in cache [INFO] extracting crate fselect 0.5.1 into work/ex/clippy-test-run/sources/stable/reg/fselect/0.5.1 [INFO] extracting crate fselect 0.5.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/fselect/0.5.1 [INFO] validating manifest of fselect-0.5.1 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 fselect-0.5.1 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 fselect-0.5.1 [INFO] finished frobbing fselect-0.5.1 [INFO] frobbed toml for fselect-0.5.1 written to work/ex/clippy-test-run/sources/stable/reg/fselect/0.5.1/Cargo.toml [INFO] started frobbing fselect-0.5.1 [INFO] finished frobbing fselect-0.5.1 [INFO] frobbed toml for fselect-0.5.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/fselect/0.5.1/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [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 fselect-0.5.1 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/reg/fselect/0.5.1:/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] 807bae9ec383d0cbefd35eb5034ff15446db1235c7604e9cdb94fdc4e4e0e621 [INFO] running `"docker" "start" "-a" "807bae9ec383d0cbefd35eb5034ff15446db1235c7604e9cdb94fdc4e4e0e621"` [INFO] [stderr] Checking scanlex v0.1.2 [INFO] [stderr] Checking mp3-metadata v0.3.0 [INFO] [stderr] Checking imagesize v0.5.2 [INFO] [stderr] Checking users v0.8.1 [INFO] [stderr] Checking chrono-english v0.1.4 [INFO] [stderr] Checking fselect v0.5.1 (/opt/crater/workdir) [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/function.rs:88:13 [INFO] [stderr] | [INFO] [stderr] 88 | return function_arg.to_lowercase(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `function_arg.to_lowercase()` [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/function.rs:91:13 [INFO] [stderr] | [INFO] [stderr] 91 | return function_arg.to_uppercase(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `function_arg.to_uppercase()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/function.rs:99:21 [INFO] [stderr] | [INFO] [stderr] 99 | return date.0.year().to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `date.0.year().to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/function.rs:102:21 [INFO] [stderr] | [INFO] [stderr] 102 | return String::new(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `String::new()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/function.rs:109:21 [INFO] [stderr] | [INFO] [stderr] 109 | return date.0.month().to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `date.0.month().to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/function.rs:112:21 [INFO] [stderr] | [INFO] [stderr] 112 | return String::new(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `String::new()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/function.rs:119:21 [INFO] [stderr] | [INFO] [stderr] 119 | return date.0.day().to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `date.0.day().to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/function.rs:122:21 [INFO] [stderr] | [INFO] [stderr] 122 | return String::new(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `String::new()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/function.rs:127:13 [INFO] [stderr] | [INFO] [stderr] 127 | return String::new(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `String::new()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/function.rs:149:13 [INFO] [stderr] | [INFO] [stderr] 149 | return min.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `min.to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/function.rs:163:13 [INFO] [stderr] | [INFO] [stderr] 163 | return max.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `max.to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/function.rs:175:13 [INFO] [stderr] | [INFO] [stderr] 175 | return (sum / raw_output_buffer.len()).to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(sum / raw_output_buffer.len()).to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/function.rs:187:13 [INFO] [stderr] | [INFO] [stderr] 187 | return sum.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `sum.to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/function.rs:190:13 [INFO] [stderr] | [INFO] [stderr] 190 | return raw_output_buffer.len().to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `raw_output_buffer.len().to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/function.rs:194:30 [INFO] [stderr] | [INFO] [stderr] 194 | Some(val) => return val.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `val.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/function.rs:195:22 [INFO] [stderr] | [INFO] [stderr] 195 | _ => return String::new() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `String::new()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lexer.rs:44:9 [INFO] [stderr] | [INFO] [stderr] 44 | return Lexer { input, index: 0, before_from: true, after_open: false } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Lexer { input, index: 0, before_from: true, after_open: false }` [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: this if statement can be collapsed [INFO] [stderr] --> src/lexer.rs:85:25 [INFO] [stderr] | [INFO] [stderr] 85 | / if !is_date { [INFO] [stderr] 86 | | if c == ' ' || c == ',' || c == '(' || c == ')' || is_op_char(c) || self.is_arithmetic_op_char(c) { [INFO] [stderr] 87 | | break [INFO] [stderr] 88 | | } [INFO] [stderr] 89 | | } [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] 85 | if !is_date && (c == ' ' || c == ',' || c == '(' || c == ')' || is_op_char(c) || self.is_arithmetic_op_char(c)) { [INFO] [stderr] 86 | break [INFO] [stderr] 87 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/lexer.rs:195:21 [INFO] [stderr] | [INFO] [stderr] 195 | month_ok [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/lexer.rs:190:36 [INFO] [stderr] | [INFO] [stderr] 190 | let month_ok = match month { [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 191 | | Ok(month) => month >= 1 && month <= 12, [INFO] [stderr] 192 | | _ => false [INFO] [stderr] 193 | | }; [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: long literal lacking separators [INFO] [stderr] --> src/mode.rs:273:21 [INFO] [stderr] | [INFO] [stderr] 273 | const S_IFMT: u32 = 170000; [INFO] [stderr] | ^^^^^^ help: consider: `170_000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/mode.rs:277:23 [INFO] [stderr] | [INFO] [stderr] 277 | const S_IFSOCK: u32 = 140000; [INFO] [stderr] | ^^^^^^ help: consider: `140_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:132:17 [INFO] [stderr] | [INFO] [stderr] 132 | return Some(node); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(node)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:135:17 [INFO] [stderr] | [INFO] [stderr] 135 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:175:17 [INFO] [stderr] | [INFO] [stderr] 175 | return Some(node); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(node)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:178:17 [INFO] [stderr] | [INFO] [stderr] 178 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:202:43 [INFO] [stderr] | [INFO] [stderr] 202 | Some(Lexem::Close) => return expr_result, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `expr_result` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:203:26 [INFO] [stderr] | [INFO] [stderr] 203 | _ => return None [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/searcher.rs:430:9 [INFO] [stderr] | [INFO] [stderr] 430 | / return function::get_aggregate_value(&column_expr.function, [INFO] [stderr] 431 | | &self.raw_output_buffer, [INFO] [stderr] 432 | | field_value.to_lowercase(), [INFO] [stderr] 433 | | &column_expr.val); [INFO] [stderr] | |_______________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 430 | function::get_aggregate_value(&column_expr.function, [INFO] [stderr] 431 | &self.raw_output_buffer, [INFO] [stderr] 432 | field_value.to_lowercase(), [INFO] [stderr] 433 | &column_expr.val) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/searcher.rs:821:9 [INFO] [stderr] | [INFO] [stderr] 821 | return String::new(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `String::new()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/searcher.rs:2289:9 [INFO] [stderr] | [INFO] [stderr] 2289 | return file_name.starts_with('.'); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `file_name.starts_with('.')` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/util/mod.rs:201:21 [INFO] [stderr] | [INFO] [stderr] 201 | Ok(size) => return Some(size), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/util/mod.rs:202:14 [INFO] [stderr] | [INFO] [stderr] 202 | _ => return None [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `None` [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:74:21 [INFO] [stderr] | [INFO] [stderr] 74 | 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: unneeded return statement [INFO] [stderr] --> src/function.rs:88:13 [INFO] [stderr] | [INFO] [stderr] 88 | return function_arg.to_lowercase(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `function_arg.to_lowercase()` [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/function.rs:91:13 [INFO] [stderr] | [INFO] [stderr] 91 | return function_arg.to_uppercase(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `function_arg.to_uppercase()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/function.rs:99:21 [INFO] [stderr] | [INFO] [stderr] 99 | return date.0.year().to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `date.0.year().to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/function.rs:102:21 [INFO] [stderr] | [INFO] [stderr] 102 | return String::new(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `String::new()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/function.rs:109:21 [INFO] [stderr] | [INFO] [stderr] 109 | return date.0.month().to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `date.0.month().to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/function.rs:112:21 [INFO] [stderr] | [INFO] [stderr] 112 | return String::new(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `String::new()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/function.rs:119:21 [INFO] [stderr] | [INFO] [stderr] 119 | return date.0.day().to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `date.0.day().to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/function.rs:122:21 [INFO] [stderr] | [INFO] [stderr] 122 | return String::new(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `String::new()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/function.rs:127:13 [INFO] [stderr] | [INFO] [stderr] 127 | return String::new(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `String::new()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/function.rs:149:13 [INFO] [stderr] | [INFO] [stderr] 149 | return min.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `min.to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/function.rs:163:13 [INFO] [stderr] | [INFO] [stderr] 163 | return max.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `max.to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/function.rs:175:13 [INFO] [stderr] | [INFO] [stderr] 175 | return (sum / raw_output_buffer.len()).to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(sum / raw_output_buffer.len()).to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/function.rs:187:13 [INFO] [stderr] | [INFO] [stderr] 187 | return sum.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `sum.to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/function.rs:190:13 [INFO] [stderr] | [INFO] [stderr] 190 | return raw_output_buffer.len().to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `raw_output_buffer.len().to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/function.rs:194:30 [INFO] [stderr] | [INFO] [stderr] 194 | Some(val) => return val.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `val.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/function.rs:195:22 [INFO] [stderr] | [INFO] [stderr] 195 | _ => return String::new() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `String::new()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lexer.rs:44:9 [INFO] [stderr] | [INFO] [stderr] 44 | return Lexer { input, index: 0, before_from: true, after_open: false } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Lexer { input, index: 0, before_from: true, after_open: false }` [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: this if statement can be collapsed [INFO] [stderr] --> src/lexer.rs:85:25 [INFO] [stderr] | [INFO] [stderr] 85 | / if !is_date { [INFO] [stderr] 86 | | if c == ' ' || c == ',' || c == '(' || c == ')' || is_op_char(c) || self.is_arithmetic_op_char(c) { [INFO] [stderr] 87 | | break [INFO] [stderr] 88 | | } [INFO] [stderr] 89 | | } [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] 85 | if !is_date && (c == ' ' || c == ',' || c == '(' || c == ')' || is_op_char(c) || self.is_arithmetic_op_char(c)) { [INFO] [stderr] 86 | break [INFO] [stderr] 87 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/lexer.rs:195:21 [INFO] [stderr] | [INFO] [stderr] 195 | month_ok [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/lexer.rs:190:36 [INFO] [stderr] | [INFO] [stderr] 190 | let month_ok = match month { [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 191 | | Ok(month) => month >= 1 && month <= 12, [INFO] [stderr] 192 | | _ => false [INFO] [stderr] 193 | | }; [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: long literal lacking separators [INFO] [stderr] --> src/mode.rs:273:21 [INFO] [stderr] | [INFO] [stderr] 273 | const S_IFMT: u32 = 170000; [INFO] [stderr] | ^^^^^^ help: consider: `170_000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/mode.rs:277:23 [INFO] [stderr] | [INFO] [stderr] 277 | const S_IFSOCK: u32 = 140000; [INFO] [stderr] | ^^^^^^ help: consider: `140_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:132:17 [INFO] [stderr] | [INFO] [stderr] 132 | return Some(node); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(node)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:135:17 [INFO] [stderr] | [INFO] [stderr] 135 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:175:17 [INFO] [stderr] | [INFO] [stderr] 175 | return Some(node); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(node)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:178:17 [INFO] [stderr] | [INFO] [stderr] 178 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:202:43 [INFO] [stderr] | [INFO] [stderr] 202 | Some(Lexem::Close) => return expr_result, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `expr_result` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:203:26 [INFO] [stderr] | [INFO] [stderr] 203 | _ => return None [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/searcher.rs:430:9 [INFO] [stderr] | [INFO] [stderr] 430 | / return function::get_aggregate_value(&column_expr.function, [INFO] [stderr] 431 | | &self.raw_output_buffer, [INFO] [stderr] 432 | | field_value.to_lowercase(), [INFO] [stderr] 433 | | &column_expr.val); [INFO] [stderr] | |_______________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 430 | function::get_aggregate_value(&column_expr.function, [INFO] [stderr] 431 | &self.raw_output_buffer, [INFO] [stderr] 432 | field_value.to_lowercase(), [INFO] [stderr] 433 | &column_expr.val) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/searcher.rs:821:9 [INFO] [stderr] | [INFO] [stderr] 821 | return String::new(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `String::new()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/searcher.rs:2289:9 [INFO] [stderr] | [INFO] [stderr] 2289 | return file_name.starts_with('.'); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `file_name.starts_with('.')` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/util/mod.rs:201:21 [INFO] [stderr] | [INFO] [stderr] 201 | Ok(size) => return Some(size), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/util/mod.rs:202:14 [INFO] [stderr] | [INFO] [stderr] 202 | _ => return None [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `None` [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:74:21 [INFO] [stderr] | [INFO] [stderr] 74 | 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: this lifetime isn't used in the function definition [INFO] [stderr] --> src/field.rs:72:17 [INFO] [stderr] | [INFO] [stderr] 72 | fn from_str<'a>(s: &str) -> Result { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::extra_unused_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/function.rs:34:17 [INFO] [stderr] | [INFO] [stderr] 34 | fn from_str<'a>(s: &str) -> Result { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [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/function.rs:133:47 [INFO] [stderr] | [INFO] [stderr] 133 | raw_output_buffer: &Vec>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[HashMap]` [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: single-character string constant used as pattern [INFO] [stderr] --> src/gitignore.rs:83:78 [INFO] [stderr] | [INFO] [stderr] 83 | Ok(line) => !line.trim().is_empty() && !line.starts_with("#"), [INFO] [stderr] | ^^^ help: try using a char instead: `'#'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [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/gitignore.rs:88:17 [INFO] [stderr] | [INFO] [stderr] 88 | / match line { [INFO] [stderr] 89 | | Ok(line) => result.append(&mut convert_gitignore_pattern(&line, dir_path)), [INFO] [stderr] 90 | | _ => { } [INFO] [stderr] 91 | | } [INFO] [stderr] | |_________________^ help: try this: `if let Ok(line) = line { result.append(&mut convert_gitignore_pattern(&line, dir_path)) }` [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] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/gitignore.rs:103:5 [INFO] [stderr] | [INFO] [stderr] 103 | / let mut negate = false; [INFO] [stderr] 104 | | if pattern.starts_with("!") { [INFO] [stderr] 105 | | pattern = pattern.replace("!", ""); [INFO] [stderr] 106 | | negate = true; [INFO] [stderr] 107 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let negate = if pattern.starts_with("!") { ..; true } else { false };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/gitignore.rs:104:28 [INFO] [stderr] | [INFO] [stderr] 104 | if pattern.starts_with("!") { [INFO] [stderr] | ^^^ help: try using a char instead: `'!'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/gitignore.rs:109:26 [INFO] [stderr] | [INFO] [stderr] 109 | if pattern.ends_with("/") { [INFO] [stderr] | ^^^ help: try using a char instead: `'/'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/mode.rs:7:23 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn get_mode(meta: &Box) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&Metadata` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::borrowed_box)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/mode.rs:99:43 [INFO] [stderr] | [INFO] [stderr] 99 | pub fn get_mode_from_boxed_unix_int(meta: &Box) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&Metadata` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/mode.rs:111:24 [INFO] [stderr] | [INFO] [stderr] 111 | pub fn user_read(meta: &Box) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&Metadata` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/mode.rs:122:25 [INFO] [stderr] | [INFO] [stderr] 122 | pub fn user_write(meta: &Box) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&Metadata` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/mode.rs:133:24 [INFO] [stderr] | [INFO] [stderr] 133 | pub fn user_exec(meta: &Box) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&Metadata` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/mode.rs:144:25 [INFO] [stderr] | [INFO] [stderr] 144 | pub fn group_read(meta: &Box) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&Metadata` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/mode.rs:155:26 [INFO] [stderr] | [INFO] [stderr] 155 | pub fn group_write(meta: &Box) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&Metadata` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/mode.rs:166:25 [INFO] [stderr] | [INFO] [stderr] 166 | pub fn group_exec(meta: &Box) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&Metadata` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/mode.rs:177:25 [INFO] [stderr] | [INFO] [stderr] 177 | pub fn other_read(meta: &Box) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&Metadata` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/mode.rs:188:26 [INFO] [stderr] | [INFO] [stderr] 188 | pub fn other_write(meta: &Box) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&Metadata` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/mode.rs:199:25 [INFO] [stderr] | [INFO] [stderr] 199 | pub fn other_exec(meta: &Box) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&Metadata` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/mode.rs:210:22 [INFO] [stderr] | [INFO] [stderr] 210 | pub fn is_pipe(meta: &Box) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&Metadata` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/mode.rs:221:29 [INFO] [stderr] | [INFO] [stderr] 221 | pub fn is_char_device(meta: &Box) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&Metadata` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/mode.rs:232:30 [INFO] [stderr] | [INFO] [stderr] 232 | pub fn is_block_device(meta: &Box) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&Metadata` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/mode.rs:243:24 [INFO] [stderr] | [INFO] [stderr] 243 | pub fn is_socket(meta: &Box) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&Metadata` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/mode.rs:383:22 [INFO] [stderr] | [INFO] [stderr] 383 | pub fn get_uid(meta: &Box) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&Metadata` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/mode.rs:396:22 [INFO] [stderr] | [INFO] [stderr] 396 | pub fn get_gid(meta: &Box) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&Metadata` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser.rs:247:17 [INFO] [stderr] | [INFO] [stderr] 247 | / match lexem { [INFO] [stderr] 248 | | &Lexem::From => { [INFO] [stderr] 249 | | mode = RootParsingMode::From; [INFO] [stderr] 250 | | }, [INFO] [stderr] ... | [INFO] [stderr] 254 | | } [INFO] [stderr] 255 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 247 | match *lexem { [INFO] [stderr] 248 | Lexem::From => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser.rs:274:25 [INFO] [stderr] | [INFO] [stderr] 274 | / match lexem { [INFO] [stderr] 275 | | &Lexem::String(ref s) | &Lexem::RawString(ref s) => { [INFO] [stderr] 276 | | match mode { [INFO] [stderr] 277 | | RootParsingMode::From | RootParsingMode::Comma => { [INFO] [stderr] ... | [INFO] [stderr] 353 | | } [INFO] [stderr] 354 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 274 | match *lexem { [INFO] [stderr] 275 | Lexem::String(ref s) | Lexem::RawString(ref s) => { [INFO] [stderr] 276 | match mode { [INFO] [stderr] 277 | RootParsingMode::From | RootParsingMode::Comma => { [INFO] [stderr] 278 | path = s.to_string(); [INFO] [stderr] 279 | mode = RootParsingMode::Root; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/parser.rs:331:36 [INFO] [stderr] | [INFO] [stderr] 331 | if path.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!path.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: length comparison to zero [INFO] [stderr] --> src/parser.rs:347:36 [INFO] [stderr] | [INFO] [stderr] 347 | if path.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!path.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/parser.rs:357:28 [INFO] [stderr] | [INFO] [stderr] 357 | if path.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!path.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: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/parser.rs:475:40 [INFO] [stderr] | [INFO] [stderr] 475 | expr = match is_glob(s3) { [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 476 | | true => { [INFO] [stderr] 477 | | let pattern = convert_glob_to_pattern(s3); [INFO] [stderr] 478 | | let regex; [INFO] [stderr] ... | [INFO] [stderr] 486 | | false => Expr::leaf(field, op, s3.to_string()) [INFO] [stderr] 487 | | }; [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 475 | expr = if is_glob(s3) { [INFO] [stderr] 476 | let pattern = convert_glob_to_pattern(s3); [INFO] [stderr] 477 | let regex; [INFO] [stderr] 478 | match Regex::new(&pattern) { [INFO] [stderr] 479 | Ok(regex_) => regex = regex_, [INFO] [stderr] 480 | _ => return Err("Error parsing glob pattern".to_string()) [INFO] [stderr] ... [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/parser.rs:522:42 [INFO] [stderr] | [INFO] [stderr] 522 | fn parse_order_by(&mut self, fields: &Vec) -> Result<(Vec, Vec), String> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: change this to: `&[ColumnExpr]` [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: single-character string constant used as pattern [INFO] [stderr] --> src/parser.rs:640:16 [INFO] [stderr] | [INFO] [stderr] 640 | s.contains("*") || s.contains('?') [INFO] [stderr] | ^^^ help: try using a char instead: `'*'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [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/searcher.rs:114:40 [INFO] [stderr] | [INFO] [stderr] 114 | records: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [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: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/searcher.rs:147:46 [INFO] [stderr] | [INFO] [stderr] 147 | pub fn list_search_results(&mut self, t: &mut Box) -> io::Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut StdoutTerminal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/searcher.rs:184:30 [INFO] [stderr] | [INFO] [stderr] 184 | let record = format!("{}", self.get_aggregate_function_value(column_expr)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `self.get_aggregate_function_value(column_expr).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: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/searcher.rs:224:22 [INFO] [stderr] | [INFO] [stderr] 224 | t: &mut Box) -> io::Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut StdoutTerminal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/searcher.rs:256:48 [INFO] [stderr] | [INFO] [stderr] 256 | if !apply_gitignore || (apply_gitignore && !matches_gitignore_filter(&gitignore_filters, entry.path().to_string_lossy().as_ref(), path.is_dir())) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 256 | if !matches_gitignore_filter(&gitignore_filters, entry.path().to_string_lossy().as_ref(), path.is_dir()) || !apply_gitignore { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 256 | if !(apply_gitignore && matches_gitignore_filter(&gitignore_filters, entry.path().to_string_lossy().as_ref(), path.is_dir())) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (13/7) [INFO] [stderr] --> src/searcher.rs:212:5 [INFO] [stderr] | [INFO] [stderr] 212 | / fn visit_dirs(&mut self, [INFO] [stderr] 213 | | dir: &Path, [INFO] [stderr] 214 | | need_metadata: bool, [INFO] [stderr] 215 | | need_dim: bool, [INFO] [stderr] ... | [INFO] [stderr] 315 | | Ok(()) [INFO] [stderr] 316 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/searcher.rs:226:28 [INFO] [stderr] | [INFO] [stderr] 226 | let metadata = match follow_symlinks { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 227 | | true => dir.metadata(), [INFO] [stderr] 228 | | false => symlink_metadata(dir) [INFO] [stderr] 229 | | }; [INFO] [stderr] | |_____________^ help: consider using an if/else expression: `if follow_symlinks { dir.metadata() } else { symlink_metadata(dir) }` [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: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/searcher.rs:233:25 [INFO] [stderr] | [INFO] [stderr] 233 | / let mut gitignore_filters = None; [INFO] [stderr] 234 | | [INFO] [stderr] 235 | | if apply_gitignore { [INFO] [stderr] 236 | | let gitignore_file = dir.join(".gitignore"); [INFO] [stderr] ... | [INFO] [stderr] 242 | | gitignore_filters = Some(self.get_gitignore_filters(dir)); [INFO] [stderr] 243 | | } [INFO] [stderr] | |_________________________^ help: it is more idiomatic to write: `let gitignore_filters = if apply_gitignore { ..; Some(self.get_gitignore_filters(dir)) } else { None };` [INFO] [stderr] | [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/searcher.rs:323:21 [INFO] [stderr] | [INFO] [stderr] 323 | for ref mut rx in regexes { [INFO] [stderr] | ^^^^^^^^^^ ------- help: try: `let rx = &mut regexes;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/searcher.rs:343:25 [INFO] [stderr] | [INFO] [stderr] 343 | for ref mut rx in regexes { [INFO] [stderr] | ^^^^^^^^^^ ------- help: try: `let rx = &mut regexes;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/searcher.rs:362:34 [INFO] [stderr] | [INFO] [stderr] 362 | _t: &mut Box) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut StdoutTerminal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/searcher.rs:354:5 [INFO] [stderr] | [INFO] [stderr] 354 | / fn get_column_expr_value(&self, [INFO] [stderr] 355 | | entry: &DirEntry, [INFO] [stderr] 356 | | file_info: &Option, [INFO] [stderr] 357 | | mp3_info: &Option, [INFO] [stderr] ... | [INFO] [stderr] 390 | | result [INFO] [stderr] 391 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/searcher.rs:401:31 [INFO] [stderr] | [INFO] [stderr] 401 | _t: &mut Box) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut StdoutTerminal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/searcher.rs:393:5 [INFO] [stderr] | [INFO] [stderr] 393 | / fn get_function_value(&self, [INFO] [stderr] 394 | | entry: &DirEntry, [INFO] [stderr] 395 | | file_info: &Option, [INFO] [stderr] 396 | | mp3_info: &Option, [INFO] [stderr] ... | [INFO] [stderr] 415 | | String::new() [INFO] [stderr] 416 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/searcher.rs:444:28 [INFO] [stderr] | [INFO] [stderr] 444 | _t: &mut Box) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut StdoutTerminal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 35 [INFO] [stderr] --> src/searcher.rs:436:5 [INFO] [stderr] | [INFO] [stderr] 436 | / fn get_field_value(&self, [INFO] [stderr] 437 | | entry: &DirEntry, [INFO] [stderr] 438 | | file_info: &Option, [INFO] [stderr] 439 | | mp3_info: &Option, [INFO] [stderr] ... | [INFO] [stderr] 821 | | return String::new(); [INFO] [stderr] 822 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/searcher.rs:436:5 [INFO] [stderr] | [INFO] [stderr] 436 | / fn get_field_value(&self, [INFO] [stderr] 437 | | entry: &DirEntry, [INFO] [stderr] 438 | | file_info: &Option, [INFO] [stderr] 439 | | mp3_info: &Option, [INFO] [stderr] ... | [INFO] [stderr] 821 | | return String::new(); [INFO] [stderr] 822 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/searcher.rs:481:32 [INFO] [stderr] | [INFO] [stderr] 481 | return format!("{}", file_info.size.file_size(file_size_opts::BINARY).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `file_info.size.file_size(file_size_opts::BINARY).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: useless use of `format!` [INFO] [stderr] --> src/searcher.rs:485:36 [INFO] [stderr] | [INFO] [stderr] 485 | return format!("{}", attrs.len().file_size(file_size_opts::BINARY).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `attrs.len().file_size(file_size_opts::BINARY).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: useless use of `format!` [INFO] [stderr] --> src/searcher.rs:542:36 [INFO] [stderr] | [INFO] [stderr] 542 | return format!("{}", mode::format_mode(mode)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `mode::format_mode(mode).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: useless use of `format!` [INFO] [stderr] --> src/searcher.rs:547:36 [INFO] [stderr] | [INFO] [stderr] 547 | return format!("{}", mode::get_mode(attrs)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `mode::get_mode(attrs).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: useless use of `format!` [INFO] [stderr] --> src/searcher.rs:699:32 [INFO] [stderr] | [INFO] [stderr] 699 | return format!("{}", mp3_tag.title); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `mp3_tag.title.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: useless use of `format!` [INFO] [stderr] --> src/searcher.rs:706:32 [INFO] [stderr] | [INFO] [stderr] 706 | return format!("{}", mp3_tag.artist); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `mp3_tag.artist.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: useless use of `format!` [INFO] [stderr] --> src/searcher.rs:713:32 [INFO] [stderr] | [INFO] [stderr] 713 | return format!("{}", mp3_tag.album); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `mp3_tag.album.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: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/searcher.rs:832:22 [INFO] [stderr] | [INFO] [stderr] 832 | t: &mut Box) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut StdoutTerminal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/searcher.rs:824:5 [INFO] [stderr] | [INFO] [stderr] 824 | / fn check_file(&mut self, [INFO] [stderr] 825 | | entry: &DirEntry, [INFO] [stderr] 826 | | file_info: &Option, [INFO] [stderr] 827 | | need_metadata: bool, [INFO] [stderr] ... | [INFO] [stderr] 906 | | } [INFO] [stderr] 907 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/searcher.rs:852:21 [INFO] [stderr] | [INFO] [stderr] 852 | let attrs = match need_metadata { [INFO] [stderr] | _____________________^ [INFO] [stderr] 853 | | true => update_meta(entry, meta, follow_symlinks), [INFO] [stderr] 854 | | false => None [INFO] [stderr] 855 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if need_metadata { update_meta(entry, meta, follow_symlinks) } else { None }` [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 be trying to match on a boolean expression [INFO] [stderr] --> src/searcher.rs:857:26 [INFO] [stderr] | [INFO] [stderr] 857 | let dimensions = match need_dim { [INFO] [stderr] | __________________________^ [INFO] [stderr] 858 | | true => update_img_dimensions(&entry, dim), [INFO] [stderr] 859 | | false => None [INFO] [stderr] 860 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if need_dim { update_img_dimensions(&entry, dim) } else { None }` [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 be trying to match on a boolean expression [INFO] [stderr] --> src/searcher.rs:862:24 [INFO] [stderr] | [INFO] [stderr] 862 | let mp3_info = match need_mp3 { [INFO] [stderr] | ________________________^ [INFO] [stderr] 863 | | true => update_mp3_meta(&entry, mp3), [INFO] [stderr] 864 | | false => None [INFO] [stderr] 865 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if need_mp3 { update_mp3_meta(&entry, mp3) } else { None }` [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 be trying to match on a boolean expression [INFO] [stderr] --> src/searcher.rs:867:25 [INFO] [stderr] | [INFO] [stderr] 867 | let exif_info = match need_exif { [INFO] [stderr] | _________________________^ [INFO] [stderr] 868 | | true => update_exif_meta(&entry, exif), [INFO] [stderr] 869 | | false => None [INFO] [stderr] 870 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if need_exif { update_exif_meta(&entry, exif) } else { None }` [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 be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/searcher.rs:932:23 [INFO] [stderr] | [INFO] [stderr] 932 | expr: &Box, [INFO] [stderr] | ^^^^^^^^^^ help: try: `&Expr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/searcher.rs:937:43 [INFO] [stderr] | [INFO] [stderr] 937 | follow_symlinks: bool) -> (bool, Option>, Option<(usize, usize)>, Option, Option>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 169 [INFO] [stderr] --> src/searcher.rs:929:5 [INFO] [stderr] | [INFO] [stderr] 929 | / fn conforms(&mut self, [INFO] [stderr] 930 | | entry: &DirEntry, [INFO] [stderr] 931 | | file_info: &Option, [INFO] [stderr] 932 | | expr: &Box, [INFO] [stderr] ... | [INFO] [stderr] 1983 | | (result, meta, dim, mp3, exif) [INFO] [stderr] 1984 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/searcher.rs:929:5 [INFO] [stderr] | [INFO] [stderr] 929 | / fn conforms(&mut self, [INFO] [stderr] 930 | | entry: &DirEntry, [INFO] [stderr] 931 | | file_info: &Option, [INFO] [stderr] 932 | | expr: &Box, [INFO] [stderr] ... | [INFO] [stderr] 1983 | | (result, meta, dim, mp3, exif) [INFO] [stderr] 1984 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/searcher.rs:2201:8 [INFO] [stderr] | [INFO] [stderr] 2201 | if !meta.is_some() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `meta.is_none()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/searcher.rs:2202:24 [INFO] [stderr] | [INFO] [stderr] 2202 | let metadata = match follow_symlinks { [INFO] [stderr] | ________________________^ [INFO] [stderr] 2203 | | false => symlink_metadata(entry.path()), [INFO] [stderr] 2204 | | true => fs::metadata(entry.path()) [INFO] [stderr] 2205 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if follow_symlinks { fs::metadata(entry.path()) } else { symlink_metadata(entry.path()) }` [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: use of `or_insert` followed by a function call [INFO] [stderr] --> src/util/top_n.rs:30:32 [INFO] [stderr] | [INFO] [stderr] 30 | self.echelons.entry(k).or_insert(Vec::new()).push(v); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [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 should consider deriving a `Default` implementation for `util::wbuf::WritableBuffer` [INFO] [stderr] --> src/util/wbuf.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | / pub fn new() -> WritableBuffer { [INFO] [stderr] 10 | | WritableBuffer { buf: String::new() } [INFO] [stderr] 11 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 4 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/util/mod.rs:118:54 [INFO] [stderr] | [INFO] [stderr] 118 | pub fn path_error_message(p: &Path, e: io::Error, t: &mut Box) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut StdoutTerminal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/util/mod.rs:122:58 [INFO] [stderr] | [INFO] [stderr] 122 | pub fn error_message(source: &str, description: &str, t: &mut Box) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut StdoutTerminal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/util/mod.rs:137:25 [INFO] [stderr] | [INFO] [stderr] 137 | if string.ends_with("k") { [INFO] [stderr] | ^^^ help: try using a char instead: `'k'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/util/mod.rs:158:25 [INFO] [stderr] | [INFO] [stderr] 158 | if string.ends_with("m") { [INFO] [stderr] | ^^^ help: try using a char instead: `'m'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/util/mod.rs:179:25 [INFO] [stderr] | [INFO] [stderr] 179 | if string.ends_with("g") { [INFO] [stderr] | ^^^ help: try using a char instead: `'g'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/main.rs:73:24 [INFO] [stderr] | [INFO] [stderr] 73 | fn short_usage_info(t: &mut Box) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut StdoutTerminal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/main.rs:95:18 [INFO] [stderr] | [INFO] [stderr] 95 | fn usage_info(t: &mut Box) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut StdoutTerminal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/field.rs:72:17 [INFO] [stderr] | [INFO] [stderr] 72 | fn from_str<'a>(s: &str) -> Result { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::extra_unused_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/function.rs:34:17 [INFO] [stderr] | [INFO] [stderr] 34 | fn from_str<'a>(s: &str) -> Result { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [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/function.rs:133:47 [INFO] [stderr] | [INFO] [stderr] 133 | raw_output_buffer: &Vec>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[HashMap]` [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: single-character string constant used as pattern [INFO] [stderr] --> src/gitignore.rs:83:78 [INFO] [stderr] | [INFO] [stderr] 83 | Ok(line) => !line.trim().is_empty() && !line.starts_with("#"), [INFO] [stderr] | ^^^ help: try using a char instead: `'#'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [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/gitignore.rs:88:17 [INFO] [stderr] | [INFO] [stderr] 88 | / match line { [INFO] [stderr] 89 | | Ok(line) => result.append(&mut convert_gitignore_pattern(&line, dir_path)), [INFO] [stderr] 90 | | _ => { } [INFO] [stderr] 91 | | } [INFO] [stderr] | |_________________^ help: try this: `if let Ok(line) = line { result.append(&mut convert_gitignore_pattern(&line, dir_path)) }` [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] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/gitignore.rs:103:5 [INFO] [stderr] | [INFO] [stderr] 103 | / let mut negate = false; [INFO] [stderr] 104 | | if pattern.starts_with("!") { [INFO] [stderr] 105 | | pattern = pattern.replace("!", ""); [INFO] [stderr] 106 | | negate = true; [INFO] [stderr] 107 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let negate = if pattern.starts_with("!") { ..; true } else { false };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/gitignore.rs:104:28 [INFO] [stderr] | [INFO] [stderr] 104 | if pattern.starts_with("!") { [INFO] [stderr] | ^^^ help: try using a char instead: `'!'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/gitignore.rs:109:26 [INFO] [stderr] | [INFO] [stderr] 109 | if pattern.ends_with("/") { [INFO] [stderr] | ^^^ help: try using a char instead: `'/'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 53 [INFO] [stderr] --> src/lexer.rs:209:5 [INFO] [stderr] | [INFO] [stderr] 209 | / fn lexems() { [INFO] [stderr] 210 | | let mut lexer = Lexer::new("select name, path ,size , fsize from /test depth 2, /test2 archives,/test3 depth 3 archives , /test4 ,'/test5' where name != 123 AND ( size gt 456 or fsize lte 758) or name = 'xxx' order by 1 ,3 desc , path asc limit 50"); [INFO] [stderr] 211 | | [INFO] [stderr] 212 | | assert_eq!(lexer.next_lexem(), Some(Lexem::RawString(String::from("select")))); [INFO] [stderr] ... | [INFO] [stderr] 263 | | assert_eq!(lexer.next_lexem(), Some(Lexem::RawString(String::from("50")))); [INFO] [stderr] 264 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/mode.rs:7:23 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn get_mode(meta: &Box) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&Metadata` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::borrowed_box)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/mode.rs:99:43 [INFO] [stderr] | [INFO] [stderr] 99 | pub fn get_mode_from_boxed_unix_int(meta: &Box) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&Metadata` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/mode.rs:111:24 [INFO] [stderr] | [INFO] [stderr] 111 | pub fn user_read(meta: &Box) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&Metadata` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/mode.rs:122:25 [INFO] [stderr] | [INFO] [stderr] 122 | pub fn user_write(meta: &Box) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&Metadata` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/mode.rs:133:24 [INFO] [stderr] | [INFO] [stderr] 133 | pub fn user_exec(meta: &Box) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&Metadata` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/mode.rs:144:25 [INFO] [stderr] | [INFO] [stderr] 144 | pub fn group_read(meta: &Box) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&Metadata` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/mode.rs:155:26 [INFO] [stderr] | [INFO] [stderr] 155 | pub fn group_write(meta: &Box) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&Metadata` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/mode.rs:166:25 [INFO] [stderr] | [INFO] [stderr] 166 | pub fn group_exec(meta: &Box) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&Metadata` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/mode.rs:177:25 [INFO] [stderr] | [INFO] [stderr] 177 | pub fn other_read(meta: &Box) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&Metadata` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/mode.rs:188:26 [INFO] [stderr] | [INFO] [stderr] 188 | pub fn other_write(meta: &Box) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&Metadata` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/mode.rs:199:25 [INFO] [stderr] | [INFO] [stderr] 199 | pub fn other_exec(meta: &Box) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&Metadata` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/mode.rs:210:22 [INFO] [stderr] | [INFO] [stderr] 210 | pub fn is_pipe(meta: &Box) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&Metadata` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/mode.rs:221:29 [INFO] [stderr] | [INFO] [stderr] 221 | pub fn is_char_device(meta: &Box) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&Metadata` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/mode.rs:232:30 [INFO] [stderr] | [INFO] [stderr] 232 | pub fn is_block_device(meta: &Box) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&Metadata` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/mode.rs:243:24 [INFO] [stderr] | [INFO] [stderr] 243 | pub fn is_socket(meta: &Box) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&Metadata` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/mode.rs:383:22 [INFO] [stderr] | [INFO] [stderr] 383 | pub fn get_uid(meta: &Box) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&Metadata` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/mode.rs:396:22 [INFO] [stderr] | [INFO] [stderr] 396 | pub fn get_gid(meta: &Box) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `&Metadata` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser.rs:247:17 [INFO] [stderr] | [INFO] [stderr] 247 | / match lexem { [INFO] [stderr] 248 | | &Lexem::From => { [INFO] [stderr] 249 | | mode = RootParsingMode::From; [INFO] [stderr] 250 | | }, [INFO] [stderr] ... | [INFO] [stderr] 254 | | } [INFO] [stderr] 255 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 247 | match *lexem { [INFO] [stderr] 248 | Lexem::From => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser.rs:274:25 [INFO] [stderr] | [INFO] [stderr] 274 | / match lexem { [INFO] [stderr] 275 | | &Lexem::String(ref s) | &Lexem::RawString(ref s) => { [INFO] [stderr] 276 | | match mode { [INFO] [stderr] 277 | | RootParsingMode::From | RootParsingMode::Comma => { [INFO] [stderr] ... | [INFO] [stderr] 353 | | } [INFO] [stderr] 354 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 274 | match *lexem { [INFO] [stderr] 275 | Lexem::String(ref s) | Lexem::RawString(ref s) => { [INFO] [stderr] 276 | match mode { [INFO] [stderr] 277 | RootParsingMode::From | RootParsingMode::Comma => { [INFO] [stderr] 278 | path = s.to_string(); [INFO] [stderr] 279 | mode = RootParsingMode::Root; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/parser.rs:331:36 [INFO] [stderr] | [INFO] [stderr] 331 | if path.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!path.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: length comparison to zero [INFO] [stderr] --> src/parser.rs:347:36 [INFO] [stderr] | [INFO] [stderr] 347 | if path.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!path.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/parser.rs:357:28 [INFO] [stderr] | [INFO] [stderr] 357 | if path.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!path.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: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/parser.rs:475:40 [INFO] [stderr] | [INFO] [stderr] 475 | expr = match is_glob(s3) { [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 476 | | true => { [INFO] [stderr] 477 | | let pattern = convert_glob_to_pattern(s3); [INFO] [stderr] 478 | | let regex; [INFO] [stderr] ... | [INFO] [stderr] 486 | | false => Expr::leaf(field, op, s3.to_string()) [INFO] [stderr] 487 | | }; [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 475 | expr = if is_glob(s3) { [INFO] [stderr] 476 | let pattern = convert_glob_to_pattern(s3); [INFO] [stderr] 477 | let regex; [INFO] [stderr] 478 | match Regex::new(&pattern) { [INFO] [stderr] 479 | Ok(regex_) => regex = regex_, [INFO] [stderr] 480 | _ => return Err("Error parsing glob pattern".to_string()) [INFO] [stderr] ... [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/parser.rs:522:42 [INFO] [stderr] | [INFO] [stderr] 522 | fn parse_order_by(&mut self, fields: &Vec) -> Result<(Vec, Vec), String> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: change this to: `&[ColumnExpr]` [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: single-character string constant used as pattern [INFO] [stderr] --> src/parser.rs:640:16 [INFO] [stderr] | [INFO] [stderr] 640 | s.contains("*") || s.contains('?') [INFO] [stderr] | ^^^ help: try using a char instead: `'*'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: re-implementing `PartialEq::ne` is unnecessary [INFO] [stderr] --> src/parser.rs:1028:5 [INFO] [stderr] | [INFO] [stderr] 1028 | / fn ne(&self, other: &Expr) -> bool { [INFO] [stderr] 1029 | | !self.eq(other) [INFO] [stderr] 1030 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::partialeq_ne_impl)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_ne_impl [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/searcher.rs:114:40 [INFO] [stderr] | [INFO] [stderr] 114 | records: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [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: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/searcher.rs:147:46 [INFO] [stderr] | [INFO] [stderr] 147 | pub fn list_search_results(&mut self, t: &mut Box) -> io::Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut StdoutTerminal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/searcher.rs:184:30 [INFO] [stderr] | [INFO] [stderr] 184 | let record = format!("{}", self.get_aggregate_function_value(column_expr)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `self.get_aggregate_function_value(column_expr).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: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/searcher.rs:224:22 [INFO] [stderr] | [INFO] [stderr] 224 | t: &mut Box) -> io::Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut StdoutTerminal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/searcher.rs:256:48 [INFO] [stderr] | [INFO] [stderr] 256 | if !apply_gitignore || (apply_gitignore && !matches_gitignore_filter(&gitignore_filters, entry.path().to_string_lossy().as_ref(), path.is_dir())) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 256 | if !matches_gitignore_filter(&gitignore_filters, entry.path().to_string_lossy().as_ref(), path.is_dir()) || !apply_gitignore { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 256 | if !(apply_gitignore && matches_gitignore_filter(&gitignore_filters, entry.path().to_string_lossy().as_ref(), path.is_dir())) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (13/7) [INFO] [stderr] --> src/searcher.rs:212:5 [INFO] [stderr] | [INFO] [stderr] 212 | / fn visit_dirs(&mut self, [INFO] [stderr] 213 | | dir: &Path, [INFO] [stderr] 214 | | need_metadata: bool, [INFO] [stderr] 215 | | need_dim: bool, [INFO] [stderr] ... | [INFO] [stderr] 315 | | Ok(()) [INFO] [stderr] 316 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/searcher.rs:226:28 [INFO] [stderr] | [INFO] [stderr] 226 | let metadata = match follow_symlinks { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 227 | | true => dir.metadata(), [INFO] [stderr] 228 | | false => symlink_metadata(dir) [INFO] [stderr] 229 | | }; [INFO] [stderr] | |_____________^ help: consider using an if/else expression: `if follow_symlinks { dir.metadata() } else { symlink_metadata(dir) }` [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: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/searcher.rs:233:25 [INFO] [stderr] | [INFO] [stderr] 233 | / let mut gitignore_filters = None; [INFO] [stderr] 234 | | [INFO] [stderr] 235 | | if apply_gitignore { [INFO] [stderr] 236 | | let gitignore_file = dir.join(".gitignore"); [INFO] [stderr] ... | [INFO] [stderr] 242 | | gitignore_filters = Some(self.get_gitignore_filters(dir)); [INFO] [stderr] 243 | | } [INFO] [stderr] | |_________________________^ help: it is more idiomatic to write: `let gitignore_filters = if apply_gitignore { ..; Some(self.get_gitignore_filters(dir)) } else { None };` [INFO] [stderr] | [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/searcher.rs:323:21 [INFO] [stderr] | [INFO] [stderr] 323 | for ref mut rx in regexes { [INFO] [stderr] | ^^^^^^^^^^ ------- help: try: `let rx = &mut regexes;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/searcher.rs:343:25 [INFO] [stderr] | [INFO] [stderr] 343 | for ref mut rx in regexes { [INFO] [stderr] | ^^^^^^^^^^ ------- help: try: `let rx = &mut regexes;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/searcher.rs:362:34 [INFO] [stderr] | [INFO] [stderr] 362 | _t: &mut Box) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut StdoutTerminal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/searcher.rs:354:5 [INFO] [stderr] | [INFO] [stderr] 354 | / fn get_column_expr_value(&self, [INFO] [stderr] 355 | | entry: &DirEntry, [INFO] [stderr] 356 | | file_info: &Option, [INFO] [stderr] 357 | | mp3_info: &Option, [INFO] [stderr] ... | [INFO] [stderr] 390 | | result [INFO] [stderr] 391 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/searcher.rs:401:31 [INFO] [stderr] | [INFO] [stderr] 401 | _t: &mut Box) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut StdoutTerminal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/searcher.rs:393:5 [INFO] [stderr] | [INFO] [stderr] 393 | / fn get_function_value(&self, [INFO] [stderr] 394 | | entry: &DirEntry, [INFO] [stderr] 395 | | file_info: &Option, [INFO] [stderr] 396 | | mp3_info: &Option, [INFO] [stderr] ... | [INFO] [stderr] 415 | | String::new() [INFO] [stderr] 416 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/searcher.rs:444:28 [INFO] [stderr] | [INFO] [stderr] 444 | _t: &mut Box) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut StdoutTerminal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 35 [INFO] [stderr] --> src/searcher.rs:436:5 [INFO] [stderr] | [INFO] [stderr] 436 | / fn get_field_value(&self, [INFO] [stderr] 437 | | entry: &DirEntry, [INFO] [stderr] 438 | | file_info: &Option, [INFO] [stderr] 439 | | mp3_info: &Option, [INFO] [stderr] ... | [INFO] [stderr] 821 | | return String::new(); [INFO] [stderr] 822 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/searcher.rs:436:5 [INFO] [stderr] | [INFO] [stderr] 436 | / fn get_field_value(&self, [INFO] [stderr] 437 | | entry: &DirEntry, [INFO] [stderr] 438 | | file_info: &Option, [INFO] [stderr] 439 | | mp3_info: &Option, [INFO] [stderr] ... | [INFO] [stderr] 821 | | return String::new(); [INFO] [stderr] 822 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/searcher.rs:481:32 [INFO] [stderr] | [INFO] [stderr] 481 | return format!("{}", file_info.size.file_size(file_size_opts::BINARY).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `file_info.size.file_size(file_size_opts::BINARY).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: useless use of `format!` [INFO] [stderr] --> src/searcher.rs:485:36 [INFO] [stderr] | [INFO] [stderr] 485 | return format!("{}", attrs.len().file_size(file_size_opts::BINARY).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `attrs.len().file_size(file_size_opts::BINARY).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: useless use of `format!` [INFO] [stderr] --> src/searcher.rs:542:36 [INFO] [stderr] | [INFO] [stderr] 542 | return format!("{}", mode::format_mode(mode)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `mode::format_mode(mode).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: useless use of `format!` [INFO] [stderr] --> src/searcher.rs:547:36 [INFO] [stderr] | [INFO] [stderr] 547 | return format!("{}", mode::get_mode(attrs)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `mode::get_mode(attrs).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: useless use of `format!` [INFO] [stderr] --> src/searcher.rs:699:32 [INFO] [stderr] | [INFO] [stderr] 699 | return format!("{}", mp3_tag.title); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `mp3_tag.title.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: useless use of `format!` [INFO] [stderr] --> src/searcher.rs:706:32 [INFO] [stderr] | [INFO] [stderr] 706 | return format!("{}", mp3_tag.artist); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `mp3_tag.artist.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: useless use of `format!` [INFO] [stderr] --> src/searcher.rs:713:32 [INFO] [stderr] | [INFO] [stderr] 713 | return format!("{}", mp3_tag.album); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `mp3_tag.album.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: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/searcher.rs:832:22 [INFO] [stderr] | [INFO] [stderr] 832 | t: &mut Box) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut StdoutTerminal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/searcher.rs:824:5 [INFO] [stderr] | [INFO] [stderr] 824 | / fn check_file(&mut self, [INFO] [stderr] 825 | | entry: &DirEntry, [INFO] [stderr] 826 | | file_info: &Option, [INFO] [stderr] 827 | | need_metadata: bool, [INFO] [stderr] ... | [INFO] [stderr] 906 | | } [INFO] [stderr] 907 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/searcher.rs:852:21 [INFO] [stderr] | [INFO] [stderr] 852 | let attrs = match need_metadata { [INFO] [stderr] | _____________________^ [INFO] [stderr] 853 | | true => update_meta(entry, meta, follow_symlinks), [INFO] [stderr] 854 | | false => None [INFO] [stderr] 855 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if need_metadata { update_meta(entry, meta, follow_symlinks) } else { None }` [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 be trying to match on a boolean expression [INFO] [stderr] --> src/searcher.rs:857:26 [INFO] [stderr] | [INFO] [stderr] 857 | let dimensions = match need_dim { [INFO] [stderr] | __________________________^ [INFO] [stderr] 858 | | true => update_img_dimensions(&entry, dim), [INFO] [stderr] 859 | | false => None [INFO] [stderr] 860 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if need_dim { update_img_dimensions(&entry, dim) } else { None }` [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 be trying to match on a boolean expression [INFO] [stderr] --> src/searcher.rs:862:24 [INFO] [stderr] | [INFO] [stderr] 862 | let mp3_info = match need_mp3 { [INFO] [stderr] | ________________________^ [INFO] [stderr] 863 | | true => update_mp3_meta(&entry, mp3), [INFO] [stderr] 864 | | false => None [INFO] [stderr] 865 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if need_mp3 { update_mp3_meta(&entry, mp3) } else { None }` [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 be trying to match on a boolean expression [INFO] [stderr] --> src/searcher.rs:867:25 [INFO] [stderr] | [INFO] [stderr] 867 | let exif_info = match need_exif { [INFO] [stderr] | _________________________^ [INFO] [stderr] 868 | | true => update_exif_meta(&entry, exif), [INFO] [stderr] 869 | | false => None [INFO] [stderr] 870 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if need_exif { update_exif_meta(&entry, exif) } else { None }` [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 be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/searcher.rs:932:23 [INFO] [stderr] | [INFO] [stderr] 932 | expr: &Box, [INFO] [stderr] | ^^^^^^^^^^ help: try: `&Expr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/searcher.rs:937:43 [INFO] [stderr] | [INFO] [stderr] 937 | follow_symlinks: bool) -> (bool, Option>, Option<(usize, usize)>, Option, Option>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 169 [INFO] [stderr] --> src/searcher.rs:929:5 [INFO] [stderr] | [INFO] [stderr] 929 | / fn conforms(&mut self, [INFO] [stderr] 930 | | entry: &DirEntry, [INFO] [stderr] 931 | | file_info: &Option, [INFO] [stderr] 932 | | expr: &Box, [INFO] [stderr] ... | [INFO] [stderr] 1983 | | (result, meta, dim, mp3, exif) [INFO] [stderr] 1984 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/searcher.rs:929:5 [INFO] [stderr] | [INFO] [stderr] 929 | / fn conforms(&mut self, [INFO] [stderr] 930 | | entry: &DirEntry, [INFO] [stderr] 931 | | file_info: &Option, [INFO] [stderr] 932 | | expr: &Box, [INFO] [stderr] ... | [INFO] [stderr] 1983 | | (result, meta, dim, mp3, exif) [INFO] [stderr] 1984 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/searcher.rs:2201:8 [INFO] [stderr] | [INFO] [stderr] 2201 | if !meta.is_some() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `meta.is_none()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/searcher.rs:2202:24 [INFO] [stderr] | [INFO] [stderr] 2202 | let metadata = match follow_symlinks { [INFO] [stderr] | ________________________^ [INFO] [stderr] 2203 | | false => symlink_metadata(entry.path()), [INFO] [stderr] 2204 | | true => fs::metadata(entry.path()) [INFO] [stderr] 2205 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if follow_symlinks { fs::metadata(entry.path()) } else { symlink_metadata(entry.path()) }` [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: use of `or_insert` followed by a function call [INFO] [stderr] --> src/util/top_n.rs:30:32 [INFO] [stderr] | [INFO] [stderr] 30 | self.echelons.entry(k).or_insert(Vec::new()).push(v); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [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 should consider deriving a `Default` implementation for `util::wbuf::WritableBuffer` [INFO] [stderr] --> src/util/wbuf.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | / pub fn new() -> WritableBuffer { [INFO] [stderr] 10 | | WritableBuffer { buf: String::new() } [INFO] [stderr] 11 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 4 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/util/mod.rs:118:54 [INFO] [stderr] | [INFO] [stderr] 118 | pub fn path_error_message(p: &Path, e: io::Error, t: &mut Box) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut StdoutTerminal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/util/mod.rs:122:58 [INFO] [stderr] | [INFO] [stderr] 122 | pub fn error_message(source: &str, description: &str, t: &mut Box) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut StdoutTerminal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/util/mod.rs:137:25 [INFO] [stderr] | [INFO] [stderr] 137 | if string.ends_with("k") { [INFO] [stderr] | ^^^ help: try using a char instead: `'k'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/util/mod.rs:158:25 [INFO] [stderr] | [INFO] [stderr] 158 | if string.ends_with("m") { [INFO] [stderr] | ^^^ help: try using a char instead: `'m'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/util/mod.rs:179:25 [INFO] [stderr] | [INFO] [stderr] 179 | if string.ends_with("g") { [INFO] [stderr] | ^^^ help: try using a char instead: `'g'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/main.rs:73:24 [INFO] [stderr] | [INFO] [stderr] 73 | fn short_usage_info(t: &mut Box) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut StdoutTerminal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/main.rs:95:18 [INFO] [stderr] | [INFO] [stderr] 95 | fn usage_info(t: &mut Box) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut StdoutTerminal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 9.12s [INFO] running `"docker" "inspect" "807bae9ec383d0cbefd35eb5034ff15446db1235c7604e9cdb94fdc4e4e0e621"` [INFO] running `"docker" "rm" "-f" "807bae9ec383d0cbefd35eb5034ff15446db1235c7604e9cdb94fdc4e4e0e621"` [INFO] [stdout] 807bae9ec383d0cbefd35eb5034ff15446db1235c7604e9cdb94fdc4e4e0e621