[INFO] crate docopt 1.0.2 is already in cache [INFO] extracting crate docopt 1.0.2 into work/ex/clippy-test-run/sources/stable/reg/docopt/1.0.2 [INFO] extracting crate docopt 1.0.2 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/docopt/1.0.2 [INFO] validating manifest of docopt-1.0.2 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 docopt-1.0.2 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 docopt-1.0.2 [INFO] finished frobbing docopt-1.0.2 [INFO] frobbed toml for docopt-1.0.2 written to work/ex/clippy-test-run/sources/stable/reg/docopt/1.0.2/Cargo.toml [INFO] started frobbing docopt-1.0.2 [INFO] finished frobbing docopt-1.0.2 [INFO] frobbed toml for docopt-1.0.2 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/docopt/1.0.2/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 docopt-1.0.2 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-5/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/docopt/1.0.2:/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] 0761043aaaca4534159963e12dece9df9fcfa3b568aab982670127006c595e7f [INFO] running `"docker" "start" "-a" "0761043aaaca4534159963e12dece9df9fcfa3b568aab982670127006c595e7f"` [INFO] [stderr] Checking docopt v1.0.2 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dopt.rs:196:20 [INFO] [stderr] | [INFO] [stderr] 196 | p: p, [INFO] [stderr] | ^^^^ help: replace it with: `p` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/dopt.rs:532:25 [INFO] [stderr] | [INFO] [stderr] 532 | if !first { write!(f, "\n")?; } else { first = false; } [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dopt.rs:673:23 [INFO] [stderr] | [INFO] [stderr] 673 | struct_field: struct_field, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `struct_field` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dopt.rs:899:27 [INFO] [stderr] | [INFO] [stderr] 899 | struct_field: struct_field, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `struct_field` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dopt.rs:952:27 [INFO] [stderr] | [INFO] [stderr] 952 | SeqDeserializer { de: de, len: len } [INFO] [stderr] | ^^^^^^ help: replace it with: `de` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dopt.rs:952:35 [INFO] [stderr] | [INFO] [stderr] 952 | SeqDeserializer { de: de, len: len } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `len` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dopt.rs:982:13 [INFO] [stderr] | [INFO] [stderr] 982 | de: de, [INFO] [stderr] | ^^^^^^ help: replace it with: `de` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dopt.rs:983:13 [INFO] [stderr] | [INFO] [stderr] 983 | fields: fields, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `fields` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parse.rs:371:13 [INFO] [stderr] | [INFO] [stderr] 371 | dopt: dopt, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `dopt` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parse.rs:865:33 [INFO] [stderr] | [INFO] [stderr] 865 | Options { repeats: rep, arg: arg, is_desc: false, } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `arg` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parse.rs:909:13 [INFO] [stderr] | [INFO] [stderr] 909 | dopt: dopt, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `dopt` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parse.rs:912:13 [INFO] [stderr] | [INFO] [stderr] 912 | options_first: options_first, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `options_first` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parse.rs:973:45 [INFO] [stderr] | [INFO] [stderr] 973 | self.flags.push(ArgvToken { atom: atom, arg: arg }); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `atom` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parse.rs:973:57 [INFO] [stderr] | [INFO] [stderr] 973 | self.flags.push(ArgvToken { atom: atom, arg: arg }); [INFO] [stderr] | ^^^^^^^^ help: replace it with: `arg` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parse.rs:1181:27 [INFO] [stderr] | [INFO] [stderr] 1181 | let m = Matcher { argv: argv }; [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `argv` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dopt.rs:196:20 [INFO] [stderr] | [INFO] [stderr] 196 | p: p, [INFO] [stderr] | ^^^^ help: replace it with: `p` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/dopt.rs:532:25 [INFO] [stderr] | [INFO] [stderr] 532 | if !first { write!(f, "\n")?; } else { first = false; } [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dopt.rs:673:23 [INFO] [stderr] | [INFO] [stderr] 673 | struct_field: struct_field, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `struct_field` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dopt.rs:899:27 [INFO] [stderr] | [INFO] [stderr] 899 | struct_field: struct_field, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `struct_field` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dopt.rs:952:27 [INFO] [stderr] | [INFO] [stderr] 952 | SeqDeserializer { de: de, len: len } [INFO] [stderr] | ^^^^^^ help: replace it with: `de` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dopt.rs:952:35 [INFO] [stderr] | [INFO] [stderr] 952 | SeqDeserializer { de: de, len: len } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `len` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dopt.rs:982:13 [INFO] [stderr] | [INFO] [stderr] 982 | de: de, [INFO] [stderr] | ^^^^^^ help: replace it with: `de` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dopt.rs:983:13 [INFO] [stderr] | [INFO] [stderr] 983 | fields: fields, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `fields` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parse.rs:371:13 [INFO] [stderr] | [INFO] [stderr] 371 | dopt: dopt, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `dopt` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parse.rs:865:33 [INFO] [stderr] | [INFO] [stderr] 865 | Options { repeats: rep, arg: arg, is_desc: false, } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `arg` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parse.rs:909:13 [INFO] [stderr] | [INFO] [stderr] 909 | dopt: dopt, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `dopt` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parse.rs:912:13 [INFO] [stderr] | [INFO] [stderr] 912 | options_first: options_first, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `options_first` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parse.rs:973:45 [INFO] [stderr] | [INFO] [stderr] 973 | self.flags.push(ArgvToken { atom: atom, arg: arg }); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `atom` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parse.rs:973:57 [INFO] [stderr] | [INFO] [stderr] 973 | self.flags.push(ArgvToken { atom: atom, arg: arg }); [INFO] [stderr] | ^^^^^^^^ help: replace it with: `arg` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parse.rs:1181:27 [INFO] [stderr] | [INFO] [stderr] 1181 | let m = Matcher { argv: argv }; [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `argv` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/dopt.rs:970:9 [INFO] [stderr] | [INFO] [stderr] 970 | return Some(self.len); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(self.len)` [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/dopt.rs:1003:9 [INFO] [stderr] | [INFO] [stderr] 1003 | return Some(self.fields.len()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(self.fields.len())` [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 `else { if .. }` block can be collapsed [INFO] [stderr] --> src/parse.rs:974:20 [INFO] [stderr] | [INFO] [stderr] 974 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 975 | | if !seen_double_dash && self.cur() == "--" { [INFO] [stderr] 976 | | seen_double_dash = true; [INFO] [stderr] 977 | | } else { [INFO] [stderr] ... | [INFO] [stderr] 987 | | } [INFO] [stderr] 988 | | } [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] 974 | } else if !seen_double_dash && self.cur() == "--" { [INFO] [stderr] 975 | seen_double_dash = true; [INFO] [stderr] 976 | } else { [INFO] [stderr] 977 | // Yup, we *always* insert a positional argument, which [INFO] [stderr] 978 | // means we completely neglect `Command` here. [INFO] [stderr] 979 | // This is because we can't tell whether something is a [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/dopt.rs:970:9 [INFO] [stderr] | [INFO] [stderr] 970 | return Some(self.len); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(self.len)` [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/dopt.rs:1003:9 [INFO] [stderr] | [INFO] [stderr] 1003 | return Some(self.fields.len()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(self.fields.len())` [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 `else { if .. }` block can be collapsed [INFO] [stderr] --> src/parse.rs:974:20 [INFO] [stderr] | [INFO] [stderr] 974 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 975 | | if !seen_double_dash && self.cur() == "--" { [INFO] [stderr] 976 | | seen_double_dash = true; [INFO] [stderr] 977 | | } else { [INFO] [stderr] ... | [INFO] [stderr] 987 | | } [INFO] [stderr] 988 | | } [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] 974 | } else if !seen_double_dash && self.cur() == "--" { [INFO] [stderr] 975 | seen_double_dash = true; [INFO] [stderr] 976 | } else { [INFO] [stderr] 977 | // Yup, we *always* insert a positional argument, which [INFO] [stderr] 978 | // means we completely neglect `Command` here. [INFO] [stderr] 979 | // This is because we can't tell whether something is a [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/test/mod.rs:74:19 [INFO] [stderr] | [INFO] [stderr] 74 | const USAGE: &'static str = " [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/test/mod.rs:100:19 [INFO] [stderr] | [INFO] [stderr] 100 | const USAGE: &'static str = " [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/test/mod.rs:119:19 [INFO] [stderr] | [INFO] [stderr] 119 | const USAGE: &'static str = " [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/test/mod.rs:132:19 [INFO] [stderr] | [INFO] [stderr] 132 | const USAGE: &'static str = " [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [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: item `dopt::ArgvMap` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/dopt.rs:342:1 [INFO] [stderr] | [INFO] [stderr] 342 | / impl ArgvMap { [INFO] [stderr] 343 | | /// Tries to deserialize the map of values into a struct. [INFO] [stderr] 344 | | /// [INFO] [stderr] 345 | | /// This method should always be called to deserialize a `ArgvMap` into [INFO] [stderr] ... | [INFO] [stderr] 515 | | } [INFO] [stderr] 516 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_without_is_empty)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/dopt.rs:422:44 [INFO] [stderr] | [INFO] [stderr] 422 | self.find(key).map(|v| v.as_vec()).unwrap_or(vec!()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| vec!())` [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: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/dopt.rs:445:36 [INFO] [stderr] | [INFO] [stderr] 445 | static ref RE: Regex = regex!( [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 446 | | r"^(?:--?(?P\S+)|(?:(?P\p{Lu}+)|<(?P[^>]+)>)|(?P\S+))$" [INFO] [stderr] 447 | | ); [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::regex_macro)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/dopt.rs:484:38 [INFO] [stderr] | [INFO] [stderr] 484 | static ref FLAG: Regex = regex!(r"^flag_"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/dopt.rs:484:45 [INFO] [stderr] | [INFO] [stderr] 484 | static ref FLAG: Regex = regex!(r"^flag_"); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivial_regex)] on by default [INFO] [stderr] = help: consider using `str::starts_with` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/dopt.rs:485:37 [INFO] [stderr] | [INFO] [stderr] 485 | static ref ARG: Regex = regex!(r"^arg_"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/dopt.rs:485:44 [INFO] [stderr] | [INFO] [stderr] 485 | static ref ARG: Regex = regex!(r"^arg_"); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using `str::starts_with` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/dopt.rs:486:41 [INFO] [stderr] | [INFO] [stderr] 486 | static ref LETTERS: Regex = regex!(r"^\p{Lu}+$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/dopt.rs:487:37 [INFO] [stderr] | [INFO] [stderr] 487 | static ref CMD: Regex = regex!(r"^cmd_"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/dopt.rs:487:44 [INFO] [stderr] | [INFO] [stderr] 487 | static ref CMD: Regex = regex!(r"^cmd_"); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using `str::starts_with` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/dopt.rs:704:21 [INFO] [stderr] | [INFO] [stderr] 704 | fn to_number(&mut self, expect: &str) -> Result [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/dopt.rs:729:17 [INFO] [stderr] | [INFO] [stderr] 729 | fn to_float(&mut self, expect: &str) -> Result { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/dopt.rs:893:24 [INFO] [stderr] | [INFO] [stderr] 893 | let list = val.unwrap_or(List(vec![])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| List(vec![]))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/dopt.rs:994:12 [INFO] [stderr] | [INFO] [stderr] 994 | if self.fields.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.fields.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: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:183:41 [INFO] [stderr] | [INFO] [stderr] 183 | static ref OPTIONS: Regex = regex!(r"^\s*(?i:options:)\s*"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:184:40 [INFO] [stderr] | [INFO] [stderr] 184 | static ref ISFLAG: Regex = regex!(r"^(-\S|--\S)"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:185:45 [INFO] [stderr] | [INFO] [stderr] 185 | static ref REMOVE_DESC: Regex = regex!(r" .*$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:186:49 [INFO] [stderr] | [INFO] [stderr] 186 | static ref NORMALIZE_FLAGS: Regex = regex!(r"([^-\s]), -"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:187:44 [INFO] [stderr] | [INFO] [stderr] 187 | static ref FIND_FLAGS: Regex = regex!(r"(?x) [INFO] [stderr] | ____________________________________________^ [INFO] [stderr] 188 | | (?:(?P--[^\x20\t=]+)|(?P-[^\x20\t=]+)) [INFO] [stderr] 189 | | (?:(?:\x20|=)(?P[^.-]\S*))? [INFO] [stderr] 190 | | (?P\x20\.\.\.)? [INFO] [stderr] 191 | | "); [INFO] [stderr] | |______________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:262:46 [INFO] [stderr] | [INFO] [stderr] 262 | static ref FIND_DEFAULT: Regex = regex!( [INFO] [stderr] | ______________________________________________^ [INFO] [stderr] 263 | | r"\[(?i:default):(?P.*)\]" [INFO] [stderr] 264 | | ); [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/parse.rs:775:30 [INFO] [stderr] | [INFO] [stderr] 775 | if s.starts_with("<") && s.ends_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: single-character string constant used as pattern [INFO] [stderr] --> src/parse.rs:775:50 [INFO] [stderr] | [INFO] [stderr] 775 | if s.starts_with("<") && s.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: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:789:36 [INFO] [stderr] | [INFO] [stderr] 789 | static ref RE: Regex = regex!(r"^-[^-]\S*$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:796:36 [INFO] [stderr] | [INFO] [stderr] 796 | static ref RE: Regex = regex!(r"^--\S+(?:<[^>]+>)?$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:803:36 [INFO] [stderr] | [INFO] [stderr] 803 | static ref RE: Regex = regex!(r"^--\S+(=.+)?$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:810:36 [INFO] [stderr] | [INFO] [stderr] 810 | static ref RE: Regex = regex!(r"^(\p{Lu}+|<[^>]+>)$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:817:36 [INFO] [stderr] | [INFO] [stderr] 817 | static ref RE: Regex = regex!(r"^(-|--|[^-]\S*)$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: called `cloned().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stderr] --> src/parse.rs:910:19 [INFO] [stderr] | [INFO] [stderr] 910 | argv: argv.iter().cloned().collect(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::iter_cloned_collect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:1234:45 [INFO] [stderr] | [INFO] [stderr] 1234 | static ref SPLIT_SPACE: Regex = regex!(r"\s+"); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/parse.rs:1281:29 [INFO] [stderr] | [INFO] [stderr] 1281 | |(flag, count)| count <= &state.max_counts[flag]) [INFO] [stderr] | ^^^^^^^^^----------------------- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `state.max_counts[flag]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/parse.rs:1317:43 [INFO] [stderr] | [INFO] [stderr] 1317 | &Repeat(ref b) => match &**b { [INFO] [stderr] | ___________________________________________^ [INFO] [stderr] 1318 | | &PatAtom(ref a @ Short(_)) [INFO] [stderr] 1319 | | | &PatAtom(ref a @ Long(_)) => { [INFO] [stderr] 1320 | | let argv_count = self.argv.counts.get(a) [INFO] [stderr] ... | [INFO] [stderr] 1332 | | } [INFO] [stderr] 1333 | | }, [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: try [INFO] [stderr] | [INFO] [stderr] 1317 | &Repeat(ref b) => match **b { [INFO] [stderr] 1318 | PatAtom(ref a @ Short(_)) [INFO] [stderr] 1319 | | PatAtom(ref a @ Long(_)) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/parse.rs:1353:32 [INFO] [stderr] | [INFO] [stderr] 1353 | Repeat(ref p) => { match &**p { [INFO] [stderr] | ________________________________^ [INFO] [stderr] 1354 | | &PatAtom(ref a @ Short(_)) [INFO] [stderr] 1355 | | | &PatAtom(ref a @ Long(_)) => { [INFO] [stderr] 1356 | | let mut bases = self.states(&**p, init); [INFO] [stderr] ... | [INFO] [stderr] 1389 | | } [INFO] [stderr] 1390 | | }} [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: try [INFO] [stderr] | [INFO] [stderr] 1353 | Repeat(ref p) => { match **p { [INFO] [stderr] 1354 | PatAtom(ref a @ Short(_)) [INFO] [stderr] 1355 | | PatAtom(ref a @ Long(_)) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:1442:40 [INFO] [stderr] | [INFO] [stderr] 1442 | static ref LONG_EQUAL: Regex = regex!("^(?P[^=]+)=(?P.+)$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:1459:40 [INFO] [stderr] | [INFO] [stderr] 1459 | static ref LONG_EQUAL: Regex = regex!("^(?P[^=]+)=(?P.*)$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:1478:39 [INFO] [stderr] | [INFO] [stderr] 1478 | static ref NORMALIZE: Regex = regex!(r"\.\.\.|\[|\]|\(|\)|\|"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:1479:35 [INFO] [stderr] | [INFO] [stderr] 1479 | static ref WORDS: Regex = regex!(r"--\S+?=<[^>]+>|<[^>]+>|\S+"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `synonym::SynonymMap` [INFO] [stderr] --> src/synonym.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | / pub fn new() -> SynonymMap { [INFO] [stderr] 16 | | SynonymMap { [INFO] [stderr] 17 | | vals: HashMap::new(), [INFO] [stderr] 18 | | syns: HashMap::new(), [INFO] [stderr] 19 | | } [INFO] [stderr] 20 | | } [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] 9 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/synonym.rs:78:9 [INFO] [stderr] | [INFO] [stderr] 78 | / if self.syns.contains_key(&k) { [INFO] [stderr] 79 | | let old = self.vals.get_mut(&k).unwrap(); [INFO] [stderr] 80 | | mem::swap(old, &mut new); [INFO] [stderr] 81 | | Some(new) [INFO] [stderr] 82 | | } else { [INFO] [stderr] 83 | | self.vals.insert(k, new) [INFO] [stderr] 84 | | } [INFO] [stderr] | |_________^ help: consider using: `self.syns.entry(k)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_entry)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dopt.rs:196:20 [INFO] [stderr] | [INFO] [stderr] 196 | p: p, [INFO] [stderr] | ^^^^ help: replace it with: `p` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/dopt.rs:532:25 [INFO] [stderr] | [INFO] [stderr] 532 | if !first { write!(f, "\n")?; } else { first = false; } [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dopt.rs:673:23 [INFO] [stderr] | [INFO] [stderr] 673 | struct_field: struct_field, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `struct_field` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dopt.rs:899:27 [INFO] [stderr] | [INFO] [stderr] 899 | struct_field: struct_field, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `struct_field` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dopt.rs:952:27 [INFO] [stderr] | [INFO] [stderr] 952 | SeqDeserializer { de: de, len: len } [INFO] [stderr] | ^^^^^^ help: replace it with: `de` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dopt.rs:952:35 [INFO] [stderr] | [INFO] [stderr] 952 | SeqDeserializer { de: de, len: len } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `len` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dopt.rs:982:13 [INFO] [stderr] | [INFO] [stderr] 982 | de: de, [INFO] [stderr] | ^^^^^^ help: replace it with: `de` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dopt.rs:983:13 [INFO] [stderr] | [INFO] [stderr] 983 | fields: fields, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `fields` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parse.rs:371:13 [INFO] [stderr] | [INFO] [stderr] 371 | dopt: dopt, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `dopt` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parse.rs:865:33 [INFO] [stderr] | [INFO] [stderr] 865 | Options { repeats: rep, arg: arg, is_desc: false, } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `arg` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parse.rs:909:13 [INFO] [stderr] | [INFO] [stderr] 909 | dopt: dopt, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `dopt` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parse.rs:912:13 [INFO] [stderr] | [INFO] [stderr] 912 | options_first: options_first, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `options_first` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parse.rs:973:45 [INFO] [stderr] | [INFO] [stderr] 973 | self.flags.push(ArgvToken { atom: atom, arg: arg }); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `atom` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parse.rs:973:57 [INFO] [stderr] | [INFO] [stderr] 973 | self.flags.push(ArgvToken { atom: atom, arg: arg }); [INFO] [stderr] | ^^^^^^^^ help: replace it with: `arg` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parse.rs:1181:27 [INFO] [stderr] | [INFO] [stderr] 1181 | let m = Matcher { argv: argv }; [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `argv` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dopt.rs:196:20 [INFO] [stderr] | [INFO] [stderr] 196 | p: p, [INFO] [stderr] | ^^^^ help: replace it with: `p` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/dopt.rs:532:25 [INFO] [stderr] | [INFO] [stderr] 532 | if !first { write!(f, "\n")?; } else { first = false; } [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dopt.rs:673:23 [INFO] [stderr] | [INFO] [stderr] 673 | struct_field: struct_field, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `struct_field` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dopt.rs:899:27 [INFO] [stderr] | [INFO] [stderr] 899 | struct_field: struct_field, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `struct_field` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dopt.rs:952:27 [INFO] [stderr] | [INFO] [stderr] 952 | SeqDeserializer { de: de, len: len } [INFO] [stderr] | ^^^^^^ help: replace it with: `de` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dopt.rs:952:35 [INFO] [stderr] | [INFO] [stderr] 952 | SeqDeserializer { de: de, len: len } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `len` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dopt.rs:982:13 [INFO] [stderr] | [INFO] [stderr] 982 | de: de, [INFO] [stderr] | ^^^^^^ help: replace it with: `de` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dopt.rs:983:13 [INFO] [stderr] | [INFO] [stderr] 983 | fields: fields, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `fields` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parse.rs:371:13 [INFO] [stderr] | [INFO] [stderr] 371 | dopt: dopt, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `dopt` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parse.rs:865:33 [INFO] [stderr] | [INFO] [stderr] 865 | Options { repeats: rep, arg: arg, is_desc: false, } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `arg` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parse.rs:909:13 [INFO] [stderr] | [INFO] [stderr] 909 | dopt: dopt, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `dopt` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parse.rs:912:13 [INFO] [stderr] | [INFO] [stderr] 912 | options_first: options_first, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `options_first` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parse.rs:973:45 [INFO] [stderr] | [INFO] [stderr] 973 | self.flags.push(ArgvToken { atom: atom, arg: arg }); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `atom` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parse.rs:973:57 [INFO] [stderr] | [INFO] [stderr] 973 | self.flags.push(ArgvToken { atom: atom, arg: arg }); [INFO] [stderr] | ^^^^^^^^ help: replace it with: `arg` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parse.rs:1181:27 [INFO] [stderr] | [INFO] [stderr] 1181 | let m = Matcher { argv: argv }; [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `argv` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: item `dopt::ArgvMap` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/dopt.rs:342:1 [INFO] [stderr] | [INFO] [stderr] 342 | / impl ArgvMap { [INFO] [stderr] 343 | | /// Tries to deserialize the map of values into a struct. [INFO] [stderr] 344 | | /// [INFO] [stderr] 345 | | /// This method should always be called to deserialize a `ArgvMap` into [INFO] [stderr] ... | [INFO] [stderr] 515 | | } [INFO] [stderr] 516 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_without_is_empty)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/dopt.rs:422:44 [INFO] [stderr] | [INFO] [stderr] 422 | self.find(key).map(|v| v.as_vec()).unwrap_or(vec!()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| vec!())` [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: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/dopt.rs:445:36 [INFO] [stderr] | [INFO] [stderr] 445 | static ref RE: Regex = regex!( [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 446 | | r"^(?:--?(?P\S+)|(?:(?P\p{Lu}+)|<(?P[^>]+)>)|(?P\S+))$" [INFO] [stderr] 447 | | ); [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::regex_macro)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/dopt.rs:484:38 [INFO] [stderr] | [INFO] [stderr] 484 | static ref FLAG: Regex = regex!(r"^flag_"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/dopt.rs:484:45 [INFO] [stderr] | [INFO] [stderr] 484 | static ref FLAG: Regex = regex!(r"^flag_"); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivial_regex)] on by default [INFO] [stderr] = help: consider using `str::starts_with` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/dopt.rs:485:37 [INFO] [stderr] | [INFO] [stderr] 485 | static ref ARG: Regex = regex!(r"^arg_"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/dopt.rs:485:44 [INFO] [stderr] | [INFO] [stderr] 485 | static ref ARG: Regex = regex!(r"^arg_"); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using `str::starts_with` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/dopt.rs:486:41 [INFO] [stderr] | [INFO] [stderr] 486 | static ref LETTERS: Regex = regex!(r"^\p{Lu}+$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/dopt.rs:487:37 [INFO] [stderr] | [INFO] [stderr] 487 | static ref CMD: Regex = regex!(r"^cmd_"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/dopt.rs:487:44 [INFO] [stderr] | [INFO] [stderr] 487 | static ref CMD: Regex = regex!(r"^cmd_"); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using `str::starts_with` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/dopt.rs:704:21 [INFO] [stderr] | [INFO] [stderr] 704 | fn to_number(&mut self, expect: &str) -> Result [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/dopt.rs:729:17 [INFO] [stderr] | [INFO] [stderr] 729 | fn to_float(&mut self, expect: &str) -> Result { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/dopt.rs:893:24 [INFO] [stderr] | [INFO] [stderr] 893 | let list = val.unwrap_or(List(vec![])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| List(vec![]))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/dopt.rs:994:12 [INFO] [stderr] | [INFO] [stderr] 994 | if self.fields.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.fields.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: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:183:41 [INFO] [stderr] | [INFO] [stderr] 183 | static ref OPTIONS: Regex = regex!(r"^\s*(?i:options:)\s*"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:184:40 [INFO] [stderr] | [INFO] [stderr] 184 | static ref ISFLAG: Regex = regex!(r"^(-\S|--\S)"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:185:45 [INFO] [stderr] | [INFO] [stderr] 185 | static ref REMOVE_DESC: Regex = regex!(r" .*$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:186:49 [INFO] [stderr] | [INFO] [stderr] 186 | static ref NORMALIZE_FLAGS: Regex = regex!(r"([^-\s]), -"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:187:44 [INFO] [stderr] | [INFO] [stderr] 187 | static ref FIND_FLAGS: Regex = regex!(r"(?x) [INFO] [stderr] | ____________________________________________^ [INFO] [stderr] 188 | | (?:(?P--[^\x20\t=]+)|(?P-[^\x20\t=]+)) [INFO] [stderr] 189 | | (?:(?:\x20|=)(?P[^.-]\S*))? [INFO] [stderr] 190 | | (?P\x20\.\.\.)? [INFO] [stderr] 191 | | "); [INFO] [stderr] | |______________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:262:46 [INFO] [stderr] | [INFO] [stderr] 262 | static ref FIND_DEFAULT: Regex = regex!( [INFO] [stderr] | ______________________________________________^ [INFO] [stderr] 263 | | r"\[(?i:default):(?P.*)\]" [INFO] [stderr] 264 | | ); [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/parse.rs:775:30 [INFO] [stderr] | [INFO] [stderr] 775 | if s.starts_with("<") && s.ends_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: single-character string constant used as pattern [INFO] [stderr] --> src/parse.rs:775:50 [INFO] [stderr] | [INFO] [stderr] 775 | if s.starts_with("<") && s.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: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:789:36 [INFO] [stderr] | [INFO] [stderr] 789 | static ref RE: Regex = regex!(r"^-[^-]\S*$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:796:36 [INFO] [stderr] | [INFO] [stderr] 796 | static ref RE: Regex = regex!(r"^--\S+(?:<[^>]+>)?$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:803:36 [INFO] [stderr] | [INFO] [stderr] 803 | static ref RE: Regex = regex!(r"^--\S+(=.+)?$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:810:36 [INFO] [stderr] | [INFO] [stderr] 810 | static ref RE: Regex = regex!(r"^(\p{Lu}+|<[^>]+>)$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:817:36 [INFO] [stderr] | [INFO] [stderr] 817 | static ref RE: Regex = regex!(r"^(-|--|[^-]\S*)$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: called `cloned().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stderr] --> src/parse.rs:910:19 [INFO] [stderr] | [INFO] [stderr] 910 | argv: argv.iter().cloned().collect(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::iter_cloned_collect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:1234:45 [INFO] [stderr] | [INFO] [stderr] 1234 | static ref SPLIT_SPACE: Regex = regex!(r"\s+"); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/parse.rs:1281:29 [INFO] [stderr] | [INFO] [stderr] 1281 | |(flag, count)| count <= &state.max_counts[flag]) [INFO] [stderr] | ^^^^^^^^^----------------------- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `state.max_counts[flag]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/parse.rs:1317:43 [INFO] [stderr] | [INFO] [stderr] 1317 | &Repeat(ref b) => match &**b { [INFO] [stderr] | ___________________________________________^ [INFO] [stderr] 1318 | | &PatAtom(ref a @ Short(_)) [INFO] [stderr] 1319 | | | &PatAtom(ref a @ Long(_)) => { [INFO] [stderr] 1320 | | let argv_count = self.argv.counts.get(a) [INFO] [stderr] ... | [INFO] [stderr] 1332 | | } [INFO] [stderr] 1333 | | }, [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: try [INFO] [stderr] | [INFO] [stderr] 1317 | &Repeat(ref b) => match **b { [INFO] [stderr] 1318 | PatAtom(ref a @ Short(_)) [INFO] [stderr] 1319 | | PatAtom(ref a @ Long(_)) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/parse.rs:1353:32 [INFO] [stderr] | [INFO] [stderr] 1353 | Repeat(ref p) => { match &**p { [INFO] [stderr] | ________________________________^ [INFO] [stderr] 1354 | | &PatAtom(ref a @ Short(_)) [INFO] [stderr] 1355 | | | &PatAtom(ref a @ Long(_)) => { [INFO] [stderr] 1356 | | let mut bases = self.states(&**p, init); [INFO] [stderr] ... | [INFO] [stderr] 1389 | | } [INFO] [stderr] 1390 | | }} [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: try [INFO] [stderr] | [INFO] [stderr] 1353 | Repeat(ref p) => { match **p { [INFO] [stderr] 1354 | PatAtom(ref a @ Short(_)) [INFO] [stderr] 1355 | | PatAtom(ref a @ Long(_)) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:1442:40 [INFO] [stderr] | [INFO] [stderr] 1442 | static ref LONG_EQUAL: Regex = regex!("^(?P[^=]+)=(?P.+)$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:1459:40 [INFO] [stderr] | [INFO] [stderr] 1459 | static ref LONG_EQUAL: Regex = regex!("^(?P[^=]+)=(?P.*)$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:1478:39 [INFO] [stderr] | [INFO] [stderr] 1478 | static ref NORMALIZE: Regex = regex!(r"\.\.\.|\[|\]|\(|\)|\|"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:1479:35 [INFO] [stderr] | [INFO] [stderr] 1479 | static ref WORDS: Regex = regex!(r"--\S+?=<[^>]+>|<[^>]+>|\S+"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `synonym::SynonymMap` [INFO] [stderr] --> src/synonym.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | / pub fn new() -> SynonymMap { [INFO] [stderr] 16 | | SynonymMap { [INFO] [stderr] 17 | | vals: HashMap::new(), [INFO] [stderr] 18 | | syns: HashMap::new(), [INFO] [stderr] 19 | | } [INFO] [stderr] 20 | | } [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] 9 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/synonym.rs:78:9 [INFO] [stderr] | [INFO] [stderr] 78 | / if self.syns.contains_key(&k) { [INFO] [stderr] 79 | | let old = self.vals.get_mut(&k).unwrap(); [INFO] [stderr] 80 | | mem::swap(old, &mut new); [INFO] [stderr] 81 | | Some(new) [INFO] [stderr] 82 | | } else { [INFO] [stderr] 83 | | self.vals.insert(k, new) [INFO] [stderr] 84 | | } [INFO] [stderr] | |_________^ help: consider using: `self.syns.entry(k)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_entry)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/dopt.rs:970:9 [INFO] [stderr] | [INFO] [stderr] 970 | return Some(self.len); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(self.len)` [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/dopt.rs:1003:9 [INFO] [stderr] | [INFO] [stderr] 1003 | return Some(self.fields.len()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(self.fields.len())` [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 `else { if .. }` block can be collapsed [INFO] [stderr] --> src/parse.rs:974:20 [INFO] [stderr] | [INFO] [stderr] 974 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 975 | | if !seen_double_dash && self.cur() == "--" { [INFO] [stderr] 976 | | seen_double_dash = true; [INFO] [stderr] 977 | | } else { [INFO] [stderr] ... | [INFO] [stderr] 987 | | } [INFO] [stderr] 988 | | } [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] 974 | } else if !seen_double_dash && self.cur() == "--" { [INFO] [stderr] 975 | seen_double_dash = true; [INFO] [stderr] 976 | } else { [INFO] [stderr] 977 | // Yup, we *always* insert a positional argument, which [INFO] [stderr] 978 | // means we completely neglect `Command` here. [INFO] [stderr] 979 | // This is because we can't tell whether something is a [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/wordlist.rs:40:15 [INFO] [stderr] | [INFO] [stderr] 40 | const USAGE: &'static str = " [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> examples/decode.rs:7:15 [INFO] [stderr] | [INFO] [stderr] 7 | const USAGE: &'static str = " [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> examples/optional_command.rs:17:15 [INFO] [stderr] | [INFO] [stderr] 17 | const USAGE: &'static str = " [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> examples/cargo.rs:8:15 [INFO] [stderr] | [INFO] [stderr] 8 | const USAGE: &'static str = " [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> examples/cp.rs:8:15 [INFO] [stderr] | [INFO] [stderr] 8 | const USAGE: &'static str = " [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/dopt.rs:970:9 [INFO] [stderr] | [INFO] [stderr] 970 | return Some(self.len); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(self.len)` [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/dopt.rs:1003:9 [INFO] [stderr] | [INFO] [stderr] 1003 | return Some(self.fields.len()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(self.fields.len())` [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 `else { if .. }` block can be collapsed [INFO] [stderr] --> src/parse.rs:974:20 [INFO] [stderr] | [INFO] [stderr] 974 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 975 | | if !seen_double_dash && self.cur() == "--" { [INFO] [stderr] 976 | | seen_double_dash = true; [INFO] [stderr] 977 | | } else { [INFO] [stderr] ... | [INFO] [stderr] 987 | | } [INFO] [stderr] 988 | | } [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] 974 | } else if !seen_double_dash && self.cur() == "--" { [INFO] [stderr] 975 | seen_double_dash = true; [INFO] [stderr] 976 | } else { [INFO] [stderr] 977 | // Yup, we *always* insert a positional argument, which [INFO] [stderr] 978 | // means we completely neglect `Command` here. [INFO] [stderr] 979 | // This is because we can't tell whether something is a [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/wordlist.rs:40:15 [INFO] [stderr] | [INFO] [stderr] 40 | const USAGE: &'static str = " [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: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/dopt.rs:422:44 [INFO] [stderr] | [INFO] [stderr] 422 | self.find(key).map(|v| v.as_vec()).unwrap_or(vec!()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| vec!())` [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: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/dopt.rs:445:36 [INFO] [stderr] | [INFO] [stderr] 445 | static ref RE: Regex = regex!( [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 446 | | r"^(?:--?(?P\S+)|(?:(?P\p{Lu}+)|<(?P[^>]+)>)|(?P\S+))$" [INFO] [stderr] 447 | | ); [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::regex_macro)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/dopt.rs:484:38 [INFO] [stderr] | [INFO] [stderr] 484 | static ref FLAG: Regex = regex!(r"^flag_"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/dopt.rs:484:45 [INFO] [stderr] | [INFO] [stderr] 484 | static ref FLAG: Regex = regex!(r"^flag_"); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivial_regex)] on by default [INFO] [stderr] = help: consider using `str::starts_with` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/dopt.rs:485:37 [INFO] [stderr] | [INFO] [stderr] 485 | static ref ARG: Regex = regex!(r"^arg_"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/dopt.rs:485:44 [INFO] [stderr] | [INFO] [stderr] 485 | static ref ARG: Regex = regex!(r"^arg_"); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using `str::starts_with` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/dopt.rs:486:41 [INFO] [stderr] | [INFO] [stderr] 486 | static ref LETTERS: Regex = regex!(r"^\p{Lu}+$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/dopt.rs:487:37 [INFO] [stderr] | [INFO] [stderr] 487 | static ref CMD: Regex = regex!(r"^cmd_"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/dopt.rs:487:44 [INFO] [stderr] | [INFO] [stderr] 487 | static ref CMD: Regex = regex!(r"^cmd_"); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using `str::starts_with` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/dopt.rs:704:21 [INFO] [stderr] | [INFO] [stderr] 704 | fn to_number(&mut self, expect: &str) -> Result [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/dopt.rs:729:17 [INFO] [stderr] | [INFO] [stderr] 729 | fn to_float(&mut self, expect: &str) -> Result { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/dopt.rs:893:24 [INFO] [stderr] | [INFO] [stderr] 893 | let list = val.unwrap_or(List(vec![])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| List(vec![]))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/dopt.rs:994:12 [INFO] [stderr] | [INFO] [stderr] 994 | if self.fields.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.fields.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: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:183:41 [INFO] [stderr] | [INFO] [stderr] 183 | static ref OPTIONS: Regex = regex!(r"^\s*(?i:options:)\s*"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:184:40 [INFO] [stderr] | [INFO] [stderr] 184 | static ref ISFLAG: Regex = regex!(r"^(-\S|--\S)"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:185:45 [INFO] [stderr] | [INFO] [stderr] 185 | static ref REMOVE_DESC: Regex = regex!(r" .*$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:186:49 [INFO] [stderr] | [INFO] [stderr] 186 | static ref NORMALIZE_FLAGS: Regex = regex!(r"([^-\s]), -"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:187:44 [INFO] [stderr] | [INFO] [stderr] 187 | static ref FIND_FLAGS: Regex = regex!(r"(?x) [INFO] [stderr] | ____________________________________________^ [INFO] [stderr] 188 | | (?:(?P--[^\x20\t=]+)|(?P-[^\x20\t=]+)) [INFO] [stderr] 189 | | (?:(?:\x20|=)(?P[^.-]\S*))? [INFO] [stderr] 190 | | (?P\x20\.\.\.)? [INFO] [stderr] 191 | | "); [INFO] [stderr] | |______________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:262:46 [INFO] [stderr] | [INFO] [stderr] 262 | static ref FIND_DEFAULT: Regex = regex!( [INFO] [stderr] | ______________________________________________^ [INFO] [stderr] 263 | | r"\[(?i:default):(?P.*)\]" [INFO] [stderr] 264 | | ); [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/parse.rs:775:30 [INFO] [stderr] | [INFO] [stderr] 775 | if s.starts_with("<") && s.ends_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: single-character string constant used as pattern [INFO] [stderr] --> src/parse.rs:775:50 [INFO] [stderr] | [INFO] [stderr] 775 | if s.starts_with("<") && s.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: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:789:36 [INFO] [stderr] | [INFO] [stderr] 789 | static ref RE: Regex = regex!(r"^-[^-]\S*$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:796:36 [INFO] [stderr] | [INFO] [stderr] 796 | static ref RE: Regex = regex!(r"^--\S+(?:<[^>]+>)?$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:803:36 [INFO] [stderr] | [INFO] [stderr] 803 | static ref RE: Regex = regex!(r"^--\S+(=.+)?$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:810:36 [INFO] [stderr] | [INFO] [stderr] 810 | static ref RE: Regex = regex!(r"^(\p{Lu}+|<[^>]+>)$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:817:36 [INFO] [stderr] | [INFO] [stderr] 817 | static ref RE: Regex = regex!(r"^(-|--|[^-]\S*)$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: called `cloned().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stderr] --> src/parse.rs:910:19 [INFO] [stderr] | [INFO] [stderr] 910 | argv: argv.iter().cloned().collect(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::iter_cloned_collect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:1234:45 [INFO] [stderr] | [INFO] [stderr] 1234 | static ref SPLIT_SPACE: Regex = regex!(r"\s+"); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/parse.rs:1281:29 [INFO] [stderr] | [INFO] [stderr] 1281 | |(flag, count)| count <= &state.max_counts[flag]) [INFO] [stderr] | ^^^^^^^^^----------------------- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `state.max_counts[flag]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/parse.rs:1317:43 [INFO] [stderr] | [INFO] [stderr] 1317 | &Repeat(ref b) => match &**b { [INFO] [stderr] | ___________________________________________^ [INFO] [stderr] 1318 | | &PatAtom(ref a @ Short(_)) [INFO] [stderr] 1319 | | | &PatAtom(ref a @ Long(_)) => { [INFO] [stderr] 1320 | | let argv_count = self.argv.counts.get(a) [INFO] [stderr] ... | [INFO] [stderr] 1332 | | } [INFO] [stderr] 1333 | | }, [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: try [INFO] [stderr] | [INFO] [stderr] 1317 | &Repeat(ref b) => match **b { [INFO] [stderr] 1318 | PatAtom(ref a @ Short(_)) [INFO] [stderr] 1319 | | PatAtom(ref a @ Long(_)) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/parse.rs:1353:32 [INFO] [stderr] | [INFO] [stderr] 1353 | Repeat(ref p) => { match &**p { [INFO] [stderr] | ________________________________^ [INFO] [stderr] 1354 | | &PatAtom(ref a @ Short(_)) [INFO] [stderr] 1355 | | | &PatAtom(ref a @ Long(_)) => { [INFO] [stderr] 1356 | | let mut bases = self.states(&**p, init); [INFO] [stderr] ... | [INFO] [stderr] 1389 | | } [INFO] [stderr] 1390 | | }} [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: try [INFO] [stderr] | [INFO] [stderr] 1353 | Repeat(ref p) => { match **p { [INFO] [stderr] 1354 | PatAtom(ref a @ Short(_)) [INFO] [stderr] 1355 | | PatAtom(ref a @ Long(_)) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:1442:40 [INFO] [stderr] | [INFO] [stderr] 1442 | static ref LONG_EQUAL: Regex = regex!("^(?P[^=]+)=(?P.+)$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:1459:40 [INFO] [stderr] | [INFO] [stderr] 1459 | static ref LONG_EQUAL: Regex = regex!("^(?P[^=]+)=(?P.*)$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:1478:39 [INFO] [stderr] | [INFO] [stderr] 1478 | static ref NORMALIZE: Regex = regex!(r"\.\.\.|\[|\]|\(|\)|\|"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:1479:35 [INFO] [stderr] | [INFO] [stderr] 1479 | static ref WORDS: Regex = regex!(r"--\S+?=<[^>]+>|<[^>]+>|\S+"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/synonym.rs:78:9 [INFO] [stderr] | [INFO] [stderr] 78 | / if self.syns.contains_key(&k) { [INFO] [stderr] 79 | | let old = self.vals.get_mut(&k).unwrap(); [INFO] [stderr] 80 | | mem::swap(old, &mut new); [INFO] [stderr] 81 | | Some(new) [INFO] [stderr] 82 | | } else { [INFO] [stderr] 83 | | self.vals.insert(k, new) [INFO] [stderr] 84 | | } [INFO] [stderr] | |_________^ help: consider using: `self.syns.entry(k)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_entry)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/wordlist.rs:99:30 [INFO] [stderr] | [INFO] [stderr] 99 | words.extend(choices.iter().map(|s| s.clone())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `choices.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> examples/verbose_multiple.rs:14:15 [INFO] [stderr] | [INFO] [stderr] 14 | const USAGE: &'static str = " [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: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/dopt.rs:422:44 [INFO] [stderr] | [INFO] [stderr] 422 | self.find(key).map(|v| v.as_vec()).unwrap_or(vec!()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| vec!())` [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: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/dopt.rs:445:36 [INFO] [stderr] | [INFO] [stderr] 445 | static ref RE: Regex = regex!( [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 446 | | r"^(?:--?(?P\S+)|(?:(?P\p{Lu}+)|<(?P[^>]+)>)|(?P\S+))$" [INFO] [stderr] 447 | | ); [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::regex_macro)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/dopt.rs:484:38 [INFO] [stderr] | [INFO] [stderr] 484 | static ref FLAG: Regex = regex!(r"^flag_"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/dopt.rs:484:45 [INFO] [stderr] | [INFO] [stderr] 484 | static ref FLAG: Regex = regex!(r"^flag_"); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivial_regex)] on by default [INFO] [stderr] = help: consider using `str::starts_with` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/dopt.rs:485:37 [INFO] [stderr] | [INFO] [stderr] 485 | static ref ARG: Regex = regex!(r"^arg_"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/dopt.rs:485:44 [INFO] [stderr] | [INFO] [stderr] 485 | static ref ARG: Regex = regex!(r"^arg_"); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using `str::starts_with` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/dopt.rs:486:41 [INFO] [stderr] | [INFO] [stderr] 486 | static ref LETTERS: Regex = regex!(r"^\p{Lu}+$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/dopt.rs:487:37 [INFO] [stderr] | [INFO] [stderr] 487 | static ref CMD: Regex = regex!(r"^cmd_"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/dopt.rs:487:44 [INFO] [stderr] | [INFO] [stderr] 487 | static ref CMD: Regex = regex!(r"^cmd_"); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using `str::starts_with` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/dopt.rs:704:21 [INFO] [stderr] | [INFO] [stderr] 704 | fn to_number(&mut self, expect: &str) -> Result [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/dopt.rs:729:17 [INFO] [stderr] | [INFO] [stderr] 729 | fn to_float(&mut self, expect: &str) -> Result { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/dopt.rs:893:24 [INFO] [stderr] | [INFO] [stderr] 893 | let list = val.unwrap_or(List(vec![])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| List(vec![]))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/dopt.rs:994:12 [INFO] [stderr] | [INFO] [stderr] 994 | if self.fields.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.fields.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: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:183:41 [INFO] [stderr] | [INFO] [stderr] 183 | static ref OPTIONS: Regex = regex!(r"^\s*(?i:options:)\s*"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:184:40 [INFO] [stderr] | [INFO] [stderr] 184 | static ref ISFLAG: Regex = regex!(r"^(-\S|--\S)"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:185:45 [INFO] [stderr] | [INFO] [stderr] 185 | static ref REMOVE_DESC: Regex = regex!(r" .*$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:186:49 [INFO] [stderr] | [INFO] [stderr] 186 | static ref NORMALIZE_FLAGS: Regex = regex!(r"([^-\s]), -"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:187:44 [INFO] [stderr] | [INFO] [stderr] 187 | static ref FIND_FLAGS: Regex = regex!(r"(?x) [INFO] [stderr] | ____________________________________________^ [INFO] [stderr] 188 | | (?:(?P--[^\x20\t=]+)|(?P-[^\x20\t=]+)) [INFO] [stderr] 189 | | (?:(?:\x20|=)(?P[^.-]\S*))? [INFO] [stderr] 190 | | (?P\x20\.\.\.)? [INFO] [stderr] 191 | | "); [INFO] [stderr] | |______________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:262:46 [INFO] [stderr] | [INFO] [stderr] 262 | static ref FIND_DEFAULT: Regex = regex!( [INFO] [stderr] | ______________________________________________^ [INFO] [stderr] 263 | | r"\[(?i:default):(?P.*)\]" [INFO] [stderr] 264 | | ); [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/parse.rs:775:30 [INFO] [stderr] | [INFO] [stderr] 775 | if s.starts_with("<") && s.ends_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: single-character string constant used as pattern [INFO] [stderr] --> src/parse.rs:775:50 [INFO] [stderr] | [INFO] [stderr] 775 | if s.starts_with("<") && s.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: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:789:36 [INFO] [stderr] | [INFO] [stderr] 789 | static ref RE: Regex = regex!(r"^-[^-]\S*$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:796:36 [INFO] [stderr] | [INFO] [stderr] 796 | static ref RE: Regex = regex!(r"^--\S+(?:<[^>]+>)?$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:803:36 [INFO] [stderr] | [INFO] [stderr] 803 | static ref RE: Regex = regex!(r"^--\S+(=.+)?$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:810:36 [INFO] [stderr] | [INFO] [stderr] 810 | static ref RE: Regex = regex!(r"^(\p{Lu}+|<[^>]+>)$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:817:36 [INFO] [stderr] | [INFO] [stderr] 817 | static ref RE: Regex = regex!(r"^(-|--|[^-]\S*)$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: called `cloned().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stderr] --> src/parse.rs:910:19 [INFO] [stderr] | [INFO] [stderr] 910 | argv: argv.iter().cloned().collect(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::iter_cloned_collect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:1234:45 [INFO] [stderr] | [INFO] [stderr] 1234 | static ref SPLIT_SPACE: Regex = regex!(r"\s+"); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/parse.rs:1281:29 [INFO] [stderr] | [INFO] [stderr] 1281 | |(flag, count)| count <= &state.max_counts[flag]) [INFO] [stderr] | ^^^^^^^^^----------------------- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `state.max_counts[flag]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/parse.rs:1317:43 [INFO] [stderr] | [INFO] [stderr] 1317 | &Repeat(ref b) => match &**b { [INFO] [stderr] | ___________________________________________^ [INFO] [stderr] 1318 | | &PatAtom(ref a @ Short(_)) [INFO] [stderr] 1319 | | | &PatAtom(ref a @ Long(_)) => { [INFO] [stderr] 1320 | | let argv_count = self.argv.counts.get(a) [INFO] [stderr] ... | [INFO] [stderr] 1332 | | } [INFO] [stderr] 1333 | | }, [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: try [INFO] [stderr] | [INFO] [stderr] 1317 | &Repeat(ref b) => match **b { [INFO] [stderr] 1318 | PatAtom(ref a @ Short(_)) [INFO] [stderr] 1319 | | PatAtom(ref a @ Long(_)) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/parse.rs:1353:32 [INFO] [stderr] | [INFO] [stderr] 1353 | Repeat(ref p) => { match &**p { [INFO] [stderr] | ________________________________^ [INFO] [stderr] 1354 | | &PatAtom(ref a @ Short(_)) [INFO] [stderr] 1355 | | | &PatAtom(ref a @ Long(_)) => { [INFO] [stderr] 1356 | | let mut bases = self.states(&**p, init); [INFO] [stderr] ... | [INFO] [stderr] 1389 | | } [INFO] [stderr] 1390 | | }} [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: try [INFO] [stderr] | [INFO] [stderr] 1353 | Repeat(ref p) => { match **p { [INFO] [stderr] 1354 | PatAtom(ref a @ Short(_)) [INFO] [stderr] 1355 | | PatAtom(ref a @ Long(_)) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:1442:40 [INFO] [stderr] | [INFO] [stderr] 1442 | static ref LONG_EQUAL: Regex = regex!("^(?P[^=]+)=(?P.+)$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:1459:40 [INFO] [stderr] | [INFO] [stderr] 1459 | static ref LONG_EQUAL: Regex = regex!("^(?P[^=]+)=(?P.*)$"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:1478:39 [INFO] [stderr] | [INFO] [stderr] 1478 | static ref NORMALIZE: Regex = regex!(r"\.\.\.|\[|\]|\(|\)|\|"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: `regex!(_)` found. Please use `Regex::new(_)`, which is faster for now. [INFO] [stderr] --> src/parse.rs:1479:35 [INFO] [stderr] | [INFO] [stderr] 1479 | static ref WORDS: Regex = regex!(r"--\S+?=<[^>]+>|<[^>]+>|\S+"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_macro [INFO] [stderr] [INFO] [stderr] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/synonym.rs:78:9 [INFO] [stderr] | [INFO] [stderr] 78 | / if self.syns.contains_key(&k) { [INFO] [stderr] 79 | | let old = self.vals.get_mut(&k).unwrap(); [INFO] [stderr] 80 | | mem::swap(old, &mut new); [INFO] [stderr] 81 | | Some(new) [INFO] [stderr] 82 | | } else { [INFO] [stderr] 83 | | self.vals.insert(k, new) [INFO] [stderr] 84 | | } [INFO] [stderr] | |_________^ help: consider using: `self.syns.entry(k)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_entry)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/wordlist.rs:99:30 [INFO] [stderr] | [INFO] [stderr] 99 | words.extend(choices.iter().map(|s| s.clone())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `choices.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> examples/hashmap.rs:5:15 [INFO] [stderr] | [INFO] [stderr] 5 | const USAGE: &'static str = " [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] Finished dev [unoptimized + debuginfo] target(s) in 9.53s [INFO] running `"docker" "inspect" "0761043aaaca4534159963e12dece9df9fcfa3b568aab982670127006c595e7f"` [INFO] running `"docker" "rm" "-f" "0761043aaaca4534159963e12dece9df9fcfa3b568aab982670127006c595e7f"` [INFO] [stdout] 0761043aaaca4534159963e12dece9df9fcfa3b568aab982670127006c595e7f