[INFO] updating cached repository ubnt-intrepid/ghqrs [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/ubnt-intrepid/ghqrs [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/ubnt-intrepid/ghqrs" "work/ex/clippy-test-run/sources/stable/gh/ubnt-intrepid/ghqrs"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/ubnt-intrepid/ghqrs'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/ubnt-intrepid/ghqrs" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/ubnt-intrepid/ghqrs"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/ubnt-intrepid/ghqrs'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] de272f08b57713803b8ab25eae976bbb40b91b78 [INFO] sha for GitHub repo ubnt-intrepid/ghqrs: de272f08b57713803b8ab25eae976bbb40b91b78 [INFO] validating manifest of ubnt-intrepid/ghqrs 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 ubnt-intrepid/ghqrs 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 ubnt-intrepid/ghqrs [INFO] finished frobbing ubnt-intrepid/ghqrs [INFO] frobbed toml for ubnt-intrepid/ghqrs written to work/ex/clippy-test-run/sources/stable/gh/ubnt-intrepid/ghqrs/Cargo.toml [INFO] started frobbing ubnt-intrepid/ghqrs [INFO] finished frobbing ubnt-intrepid/ghqrs [INFO] frobbed toml for ubnt-intrepid/ghqrs written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/ubnt-intrepid/ghqrs/Cargo.toml [INFO] crate ubnt-intrepid/ghqrs has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting ubnt-intrepid/ghqrs against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/ubnt-intrepid/ghqrs:/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] 38bc5df66989fd27a463063187a47ca8ca003c3ca1a549b1f7baacf87aa84a3e [INFO] running `"docker" "start" "-a" "38bc5df66989fd27a463063187a47ca8ca003c3ca1a549b1f7baacf87aa84a3e"` [INFO] [stderr] Checking unicode-normalization v0.1.2 [INFO] [stderr] Checking vec_map v0.6.0 [INFO] [stderr] Checking strsim v0.5.1 [INFO] [stderr] Checking unicode-segmentation v0.1.2 [INFO] [stderr] Checking rustc-serialize v0.3.21 [INFO] [stderr] Checking shellexpand v0.1.0 [INFO] [stderr] Checking term_size v0.2.1 [INFO] [stderr] Checking unicode-bidi v0.2.3 [INFO] [stderr] Checking regex v0.1.80 [INFO] [stderr] Checking clap v2.18.0 [INFO] [stderr] Checking idna v0.1.0 [INFO] [stderr] Checking url v1.2.3 [INFO] [stderr] Checking toml v0.2.1 [INFO] [stderr] Checking ghqrs v0.1.2 (/opt/crater/workdir) [INFO] [stderr] warning: `cfg_attr` is deprecated for rustfmt and got replaced by tool_attributes [INFO] [stderr] --> src/config.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | #[cfg_attr(rustfmt, rustfmt_skip)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `#[rustfmt::skip]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::deprecated_cfg_attr)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_cfg_attr [INFO] [stderr] [INFO] [stderr] warning: `cfg_attr` is deprecated for rustfmt and got replaced by tool_attributes [INFO] [stderr] --> src/repository.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | #[cfg_attr(rustfmt, rustfmt_skip)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `#[rustfmt::skip]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_cfg_attr [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/repository.rs:50:7 [INFO] [stderr] | [INFO] [stderr] 50 | host: host, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `host` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/repository.rs:51:7 [INFO] [stderr] | [INFO] [stderr] 51 | path: path, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `path` [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/repository.rs:64:9 [INFO] [stderr] | [INFO] [stderr] 64 | host: host, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `host` [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/repository.rs:65:9 [INFO] [stderr] | [INFO] [stderr] 65 | path: path, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `path` [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/repository.rs:85:9 [INFO] [stderr] | [INFO] [stderr] 85 | host: host, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `host` [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/vcs/hg.rs:268:5 [INFO] [stderr] | [INFO] [stderr] 268 | all: all, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `all` [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/vcs/hg.rs:269:5 [INFO] [stderr] | [INFO] [stderr] 269 | applied: applied, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `applied` [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/vcs/hg.rs:270:5 [INFO] [stderr] | [INFO] [stderr] 270 | unapplied: unapplied, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `unapplied` [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/workspace.rs:23:17 [INFO] [stderr] | [INFO] [stderr] 23 | Workspace { repos: repos } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `repos` [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: `cfg_attr` is deprecated for rustfmt and got replaced by tool_attributes [INFO] [stderr] --> src/config.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | #[cfg_attr(rustfmt, rustfmt_skip)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `#[rustfmt::skip]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::deprecated_cfg_attr)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_cfg_attr [INFO] [stderr] [INFO] [stderr] warning: `cfg_attr` is deprecated for rustfmt and got replaced by tool_attributes [INFO] [stderr] --> src/repository.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | #[cfg_attr(rustfmt, rustfmt_skip)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `#[rustfmt::skip]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_cfg_attr [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/repository.rs:50:7 [INFO] [stderr] | [INFO] [stderr] 50 | host: host, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `host` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/repository.rs:51:7 [INFO] [stderr] | [INFO] [stderr] 51 | path: path, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `path` [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/repository.rs:64:9 [INFO] [stderr] | [INFO] [stderr] 64 | host: host, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `host` [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/repository.rs:65:9 [INFO] [stderr] | [INFO] [stderr] 65 | path: path, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `path` [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/repository.rs:85:9 [INFO] [stderr] | [INFO] [stderr] 85 | host: host, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `host` [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/vcs/hg.rs:268:5 [INFO] [stderr] | [INFO] [stderr] 268 | all: all, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `all` [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/vcs/hg.rs:269:5 [INFO] [stderr] | [INFO] [stderr] 269 | applied: applied, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `applied` [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/vcs/hg.rs:270:5 [INFO] [stderr] | [INFO] [stderr] 270 | unapplied: unapplied, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `unapplied` [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/workspace.rs:23:17 [INFO] [stderr] | [INFO] [stderr] 23 | Workspace { repos: repos } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `repos` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/config.rs:11:20 [INFO] [stderr] | [INFO] [stderr] 11 | const CANDIDATES: &'static [&'static str] = &[ [INFO] [stderr] | -^^^^^^^--------------- help: consider removing `'static`: `&[&'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/config.rs:11:30 [INFO] [stderr] | [INFO] [stderr] 11 | const CANDIDATES: &'static [&'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/repository.rs:9:21 [INFO] [stderr] | [INFO] [stderr] 9 | const KNOWN_HOSTS: &'static [(&'static str, usize)] = &[ [INFO] [stderr] | -^^^^^^^------------------------ help: consider removing `'static`: `&[(&'static str, usize)]` [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/repository.rs:9:32 [INFO] [stderr] | [INFO] [stderr] 9 | const KNOWN_HOSTS: &'static [(&'static str, usize)] = &[ [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: unused imports: `Command`, `Stdio` [INFO] [stderr] --> src/vcs/git.rs:4:20 [INFO] [stderr] | [INFO] [stderr] 4 | use std::process::{Command, Stdio}; [INFO] [stderr] | ^^^^^^^ ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/config.rs:11:20 [INFO] [stderr] | [INFO] [stderr] 11 | const CANDIDATES: &'static [&'static str] = &[ [INFO] [stderr] | -^^^^^^^--------------- help: consider removing `'static`: `&[&'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/config.rs:11:30 [INFO] [stderr] | [INFO] [stderr] 11 | const CANDIDATES: &'static [&'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/repository.rs:9:21 [INFO] [stderr] | [INFO] [stderr] 9 | const KNOWN_HOSTS: &'static [(&'static str, usize)] = &[ [INFO] [stderr] | -^^^^^^^------------------------ help: consider removing `'static`: `&[(&'static str, usize)]` [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/repository.rs:9:32 [INFO] [stderr] | [INFO] [stderr] 9 | const KNOWN_HOSTS: &'static [(&'static str, usize)] = &[ [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: unused imports: `Command`, `Stdio` [INFO] [stderr] --> src/vcs/git.rs:4:20 [INFO] [stderr] | [INFO] [stderr] 4 | use std::process::{Command, Stdio}; [INFO] [stderr] | ^^^^^^^ ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: called `filter(p).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(p)` instead. [INFO] [stderr] --> src/config.rs:50:14 [INFO] [stderr] | [INFO] [stderr] 50 | let path = paths.iter() [INFO] [stderr] | ______________^ [INFO] [stderr] 51 | | .map(|s| expand_full(s).unwrap()) [INFO] [stderr] 52 | | .map(PathBuf::from) [INFO] [stderr] 53 | | .filter(|ref p| p.is_file()) [INFO] [stderr] 54 | | .next(); [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::filter_next)] on by default [INFO] [stderr] = note: replace `filter(|ref p| p.is_file()).next()` with `find(|ref p| p.is_file())` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/repository.rs:36:40 [INFO] [stderr] | [INFO] [stderr] 36 | let path_depth = splitted[1].split("/").count(); [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: called `filter(p).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(p)` instead. [INFO] [stderr] --> src/config.rs:50:14 [INFO] [stderr] | [INFO] [stderr] 50 | let path = paths.iter() [INFO] [stderr] | ______________^ [INFO] [stderr] 51 | | .map(|s| expand_full(s).unwrap()) [INFO] [stderr] 52 | | .map(PathBuf::from) [INFO] [stderr] 53 | | .filter(|ref p| p.is_file()) [INFO] [stderr] 54 | | .next(); [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::filter_next)] on by default [INFO] [stderr] = note: replace `filter(|ref p| p.is_file()).next()` with `find(|ref p| p.is_file())` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/repository.rs:58:47 [INFO] [stderr] | [INFO] [stderr] 58 | let path = url.path().trim_left_matches("/").trim_right_matches(".git").to_owned(); [INFO] [stderr] | ^^^ help: try using a char instead: `'/'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/repository.rs:69:34 [INFO] [stderr] | [INFO] [stderr] 69 | let path: Vec<_> = s.split("/").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `'/'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/repository.rs:36:40 [INFO] [stderr] | [INFO] [stderr] 36 | let path_depth = splitted[1].split("/").count(); [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/repository.rs:58:47 [INFO] [stderr] | [INFO] [stderr] 58 | let path = url.path().trim_left_matches("/").trim_right_matches(".git").to_owned(); [INFO] [stderr] | ^^^ help: try using a char instead: `'/'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/repository.rs:69:34 [INFO] [stderr] | [INFO] [stderr] 69 | let path: Vec<_> = s.split("/").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `'/'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/vcs/git.rs:185:19 [INFO] [stderr] | [INFO] [stderr] 185 | Ok(stdout.split("\n").count() - 1) [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/vcs/git.rs:224:7 [INFO] [stderr] | [INFO] [stderr] 224 | for ref caps in (&lines[1..]).iter().filter_map(|ref line| re.captures(line)) { [INFO] [stderr] | ^^^^^^^^ ------------------------------------------------------------- help: try: `let caps = &(&lines[1..]).iter().filter_map(|ref line| re.captures(line));` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/vcs/git.rs:185:19 [INFO] [stderr] | [INFO] [stderr] 185 | Ok(stdout.split("\n").count() - 1) [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/vcs/git.rs:224:7 [INFO] [stderr] | [INFO] [stderr] 224 | for ref caps in (&lines[1..]).iter().filter_map(|ref line| re.captures(line)) { [INFO] [stderr] | ^^^^^^^^ ------------------------------------------------------------- help: try: `let caps = &(&lines[1..]).iter().filter_map(|ref line| re.captures(line));` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/vcs/hg.rs:47:18 [INFO] [stderr] | [INFO] [stderr] 47 | .split(" ") [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: length comparison to zero [INFO] [stderr] --> src/vcs/hg.rs:50:16 [INFO] [stderr] | [INFO] [stderr] 50 | if trimmed.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!trimmed.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: single-character string constant used as pattern [INFO] [stderr] --> src/vcs/hg.rs:95:20 [INFO] [stderr] | [INFO] [stderr] 95 | .split(" ") [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: length comparison to zero [INFO] [stderr] --> src/vcs/hg.rs:98:18 [INFO] [stderr] | [INFO] [stderr] 98 | if trimmed.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!trimmed.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/vcs/hg.rs:113:30 [INFO] [stderr] | [INFO] [stderr] 113 | for token in m.split(",") { [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/vcs/hg.rs:158:34 [INFO] [stderr] | [INFO] [stderr] 158 | if line.trim().starts_with("*") { [INFO] [stderr] | ^^^ help: try using a char instead: `'*'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/vcs/hg.rs:159:36 [INFO] [stderr] | [INFO] [stderr] 159 | status.active = line.split(" ").nth(2).unwrap().to_owned(); [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: length comparison to zero [INFO] [stderr] --> src/vcs/hg.rs:189:8 [INFO] [stderr] | [INFO] [stderr] 189 | if self.tags.len() > 0 || self.active != "" { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.tags.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/vcs/hg.rs:193:12 [INFO] [stderr] | [INFO] [stderr] 193 | if self.tags.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.tags.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/vcs/hg.rs:210:12 [INFO] [stderr] | [INFO] [stderr] 210 | if patches.all.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!patches.all.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/vcs/hg.rs:219:14 [INFO] [stderr] | [INFO] [stderr] 219 | if patches.unapplied.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!patches.unapplied.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/vcs/hg.rs:253:29 [INFO] [stderr] | [INFO] [stderr] 253 | let status = line.split(" ").nth(1).unwrap().to_owned(); [INFO] [stderr] | ^^^ help: try using a char instead: `' '` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/vcs/hg.rs:47:18 [INFO] [stderr] | [INFO] [stderr] 47 | .split(" ") [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: length comparison to zero [INFO] [stderr] --> src/vcs/hg.rs:50:16 [INFO] [stderr] | [INFO] [stderr] 50 | if trimmed.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!trimmed.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: single-character string constant used as pattern [INFO] [stderr] --> src/vcs/hg.rs:254:27 [INFO] [stderr] | [INFO] [stderr] 254 | let name = line.split(" ").nth(2).unwrap().to_owned(); [INFO] [stderr] | ^^^ help: try using a char instead: `' '` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/vcs/hg.rs:95:20 [INFO] [stderr] | [INFO] [stderr] 95 | .split(" ") [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: length comparison to zero [INFO] [stderr] --> src/vcs/hg.rs:98:18 [INFO] [stderr] | [INFO] [stderr] 98 | if trimmed.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!trimmed.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/vcs/hg.rs:113:30 [INFO] [stderr] | [INFO] [stderr] 113 | for token in m.split(",") { [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/vcs/hg.rs:158:34 [INFO] [stderr] | [INFO] [stderr] 158 | if line.trim().starts_with("*") { [INFO] [stderr] | ^^^ help: try using a char instead: `'*'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/vcs/hg.rs:159:36 [INFO] [stderr] | [INFO] [stderr] 159 | status.active = line.split(" ").nth(2).unwrap().to_owned(); [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: length comparison to zero [INFO] [stderr] --> src/vcs/hg.rs:189:8 [INFO] [stderr] | [INFO] [stderr] 189 | if self.tags.len() > 0 || self.active != "" { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.tags.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/vcs/hg.rs:193:12 [INFO] [stderr] | [INFO] [stderr] 193 | if self.tags.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.tags.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/vcs/hg.rs:210:12 [INFO] [stderr] | [INFO] [stderr] 210 | if patches.all.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!patches.all.is_empty()` [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/vcs/svn.rs:81:7 [INFO] [stderr] | [INFO] [stderr] 81 | / match line.chars().nth(4) { [INFO] [stderr] 82 | | Some('X') => s.external += 1, [INFO] [stderr] 83 | | _ => (), [INFO] [stderr] 84 | | } [INFO] [stderr] | |_______^ help: try this: `if let Some('X') = line.chars().nth(4) { s.external += 1 }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/vcs/svn.rs:85:7 [INFO] [stderr] | [INFO] [stderr] 85 | / match line.chars().nth(6) { [INFO] [stderr] 86 | | Some('C') => { [INFO] [stderr] 87 | | has_diff = true; [INFO] [stderr] 88 | | diff.conflicted += 1 [INFO] [stderr] 89 | | } [INFO] [stderr] 90 | | _ => (), [INFO] [stderr] 91 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 85 | if let Some('C') = line.chars().nth(6) { [INFO] [stderr] 86 | has_diff = true; [INFO] [stderr] 87 | diff.conflicted += 1 [INFO] [stderr] 88 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/vcs/hg.rs:219:14 [INFO] [stderr] | [INFO] [stderr] 219 | if patches.unapplied.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!patches.unapplied.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/vcs/svn.rs:92:7 [INFO] [stderr] | [INFO] [stderr] 92 | / match line.chars().nth(8) { [INFO] [stderr] 93 | | Some('*') => s.incoming += 1, [INFO] [stderr] 94 | | _ => (), [INFO] [stderr] 95 | | } [INFO] [stderr] | |_______^ help: try this: `if let Some('*') = line.chars().nth(8) { s.incoming += 1 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: this `.filter_map` can be written more simply using `.filter` [INFO] [stderr] --> src/vcs/svn.rs:114:27 [INFO] [stderr] | [INFO] [stderr] 114 | let path_bits: Vec<_> = url.split("/") [INFO] [stderr] | ___________________________^ [INFO] [stderr] 115 | | .filter_map(|line| if line.trim().len() > 0 { [INFO] [stderr] 116 | | Some(line) [INFO] [stderr] 117 | | } else { [INFO] [stderr] 118 | | None [INFO] [stderr] 119 | | }) [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_filter_map)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_filter_map [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/vcs/svn.rs:114:37 [INFO] [stderr] | [INFO] [stderr] 114 | let path_bits: Vec<_> = url.split("/") [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: length comparison to zero [INFO] [stderr] --> src/vcs/svn.rs:115:27 [INFO] [stderr] | [INFO] [stderr] 115 | .filter_map(|line| if line.trim().len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!line.trim().is_empty()` [INFO] [stderr] | [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/vcs/hg.rs:253:29 [INFO] [stderr] | [INFO] [stderr] 253 | let status = line.split(" ").nth(1).unwrap().to_owned(); [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#len_zero [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/vcs/hg.rs:254:27 [INFO] [stderr] | [INFO] [stderr] 254 | let name = line.split(" ").nth(2).unwrap().to_owned(); [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: length comparison to zero [INFO] [stderr] --> src/vcs/svn.rs:123:6 [INFO] [stderr] | [INFO] [stderr] 123 | if path_bits.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!path_bits.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/vcs/svn.rs:81:7 [INFO] [stderr] | [INFO] [stderr] 81 | / match line.chars().nth(4) { [INFO] [stderr] 82 | | Some('X') => s.external += 1, [INFO] [stderr] 83 | | _ => (), [INFO] [stderr] 84 | | } [INFO] [stderr] | |_______^ help: try this: `if let Some('X') = line.chars().nth(4) { s.external += 1 }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/vcs/svn.rs:85:7 [INFO] [stderr] | [INFO] [stderr] 85 | / match line.chars().nth(6) { [INFO] [stderr] 86 | | Some('C') => { [INFO] [stderr] 87 | | has_diff = true; [INFO] [stderr] 88 | | diff.conflicted += 1 [INFO] [stderr] 89 | | } [INFO] [stderr] 90 | | _ => (), [INFO] [stderr] 91 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 85 | if let Some('C') = line.chars().nth(6) { [INFO] [stderr] 86 | has_diff = true; [INFO] [stderr] 87 | diff.conflicted += 1 [INFO] [stderr] 88 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/vcs/svn.rs:92:7 [INFO] [stderr] | [INFO] [stderr] 92 | / match line.chars().nth(8) { [INFO] [stderr] 93 | | Some('*') => s.incoming += 1, [INFO] [stderr] 94 | | _ => (), [INFO] [stderr] 95 | | } [INFO] [stderr] | |_______^ help: try this: `if let Some('*') = line.chars().nth(8) { s.incoming += 1 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: this `.filter_map` can be written more simply using `.filter` [INFO] [stderr] --> src/vcs/svn.rs:114:27 [INFO] [stderr] | [INFO] [stderr] 114 | let path_bits: Vec<_> = url.split("/") [INFO] [stderr] | ___________________________^ [INFO] [stderr] 115 | | .filter_map(|line| if line.trim().len() > 0 { [INFO] [stderr] 116 | | Some(line) [INFO] [stderr] 117 | | } else { [INFO] [stderr] 118 | | None [INFO] [stderr] 119 | | }) [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_filter_map)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_filter_map [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/vcs/svn.rs:114:37 [INFO] [stderr] | [INFO] [stderr] 114 | let path_bits: Vec<_> = url.split("/") [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: length comparison to zero [INFO] [stderr] --> src/vcs/svn.rs:115:27 [INFO] [stderr] | [INFO] [stderr] 115 | .filter_map(|line| if line.trim().len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!line.trim().is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/vcs/svn.rs:123:6 [INFO] [stderr] | [INFO] [stderr] 123 | if path_bits.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!path_bits.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/vcs/mod.rs:30:41 [INFO] [stderr] | [INFO] [stderr] 30 | git::current_status().map(|s| s.map(|s| Status::Git(s))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Status::Git` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/vcs/mod.rs:32:40 [INFO] [stderr] | [INFO] [stderr] 32 | hg::current_status().map(|s| s.map(|s| Status::Hg(s))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Status::Hg` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/vcs/mod.rs:34:41 [INFO] [stderr] | [INFO] [stderr] 34 | svn::current_status().map(|s| s.map(|s| Status::Svn(s))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Status::Svn` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/vcs/mod.rs:30:41 [INFO] [stderr] | [INFO] [stderr] 30 | git::current_status().map(|s| s.map(|s| Status::Git(s))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Status::Git` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/vcs/mod.rs:32:40 [INFO] [stderr] | [INFO] [stderr] 32 | hg::current_status().map(|s| s.map(|s| Status::Hg(s))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Status::Hg` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/vcs/mod.rs:62:16 [INFO] [stderr] | [INFO] [stderr] 62 | .map(|e| format!("{}", &e[1..])) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `&e[1..].to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/vcs/mod.rs:34:41 [INFO] [stderr] | [INFO] [stderr] 34 | svn::current_status().map(|s| s.map(|s| Status::Svn(s))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Status::Svn` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] error: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> src/vcs/mod.rs:87:6 [INFO] [stderr] | [INFO] [stderr] 87 | .into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::into_iter_on_array)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/vcs/mod.rs:62:16 [INFO] [stderr] | [INFO] [stderr] 62 | .map(|e| format!("{}", &e[1..])) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `&e[1..].to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> src/vcs/mod.rs:87:6 [INFO] [stderr] | [INFO] [stderr] 87 | .into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::into_iter_on_array)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [INFO] [stderr] [INFO] [stderr] error: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> src/workspace.rs:75:39 [INFO] [stderr] | [INFO] [stderr] 75 | [".git", ".svn", ".hg", "_dacrs"].into_iter().any(|v| vcs::is_vcs_subdir(&path.join(v))) [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/util.rs:15:18 [INFO] [stderr] | [INFO] [stderr] 15 | self.split("\n").map(ToOwned::to_owned).collect() [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [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] error: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> src/workspace.rs:75:39 [INFO] [stderr] | [INFO] [stderr] 75 | [".git", ".svn", ".hg", "_dacrs"].into_iter().any(|v| vcs::is_vcs_subdir(&path.join(v))) [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/util.rs:15:18 [INFO] [stderr] | [INFO] [stderr] 15 | self.split("\n").map(ToOwned::to_owned).collect() [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [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: use of `ok_or` followed by a function call [INFO] [stderr] --> src/util.rs:32:6 [INFO] [stderr] | [INFO] [stderr] 32 | .ok_or(io::Error::new(io::ErrorKind::Other, [INFO] [stderr] | ______^ [INFO] [stderr] 33 | | "The process was terminated by a signal"))?; [INFO] [stderr] | |____________________________________________________________________^ [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] help: try this [INFO] [stderr] | [INFO] [stderr] 32 | .ok_or_else(|| io::Error::new(io::ErrorKind::Other, [INFO] [stderr] 33 | "The process was terminated by a signal"))?; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/util.rs:32:6 [INFO] [stderr] | [INFO] [stderr] 32 | .ok_or(io::Error::new(io::ErrorKind::Other, [INFO] [stderr] | ______^ [INFO] [stderr] 33 | | "The process was terminated by a signal"))?; [INFO] [stderr] | |____________________________________________________________________^ [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] help: try this [INFO] [stderr] | [INFO] [stderr] 32 | .ok_or_else(|| io::Error::new(io::ErrorKind::Other, [INFO] [stderr] 33 | "The process was terminated by a signal"))?; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/util.rs:61:30 [INFO] [stderr] | [INFO] [stderr] 61 | .and_then(|st| st.code().ok_or(io::Error::new(io::ErrorKind::Other, ""))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| io::Error::new(io::ErrorKind::Other, ""))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/util.rs:61:30 [INFO] [stderr] | [INFO] [stderr] 61 | .and_then(|st| st.code().ok_or(io::Error::new(io::ErrorKind::Other, ""))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| io::Error::new(io::ErrorKind::Other, ""))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `ghqrs`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: Could not compile `ghqrs`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "38bc5df66989fd27a463063187a47ca8ca003c3ca1a549b1f7baacf87aa84a3e"` [INFO] running `"docker" "rm" "-f" "38bc5df66989fd27a463063187a47ca8ca003c3ca1a549b1f7baacf87aa84a3e"` [INFO] [stdout] 38bc5df66989fd27a463063187a47ca8ca003c3ca1a549b1f7baacf87aa84a3e