[INFO] updating cached repository b1zzu/scog [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/b1zzu/scog [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/b1zzu/scog" "work/ex/clippy-test-run/sources/stable/gh/b1zzu/scog"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/b1zzu/scog'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/b1zzu/scog" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/b1zzu/scog"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/b1zzu/scog'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 02cfaf33738e2f99e53c0afed74edb999f4e2a95 [INFO] sha for GitHub repo b1zzu/scog: 02cfaf33738e2f99e53c0afed74edb999f4e2a95 [INFO] validating manifest of b1zzu/scog 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 b1zzu/scog 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 b1zzu/scog [INFO] finished frobbing b1zzu/scog [INFO] frobbed toml for b1zzu/scog written to work/ex/clippy-test-run/sources/stable/gh/b1zzu/scog/Cargo.toml [INFO] started frobbing b1zzu/scog [INFO] finished frobbing b1zzu/scog [INFO] frobbed toml for b1zzu/scog written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/b1zzu/scog/Cargo.toml [INFO] crate b1zzu/scog 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 b1zzu/scog 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/gh/b1zzu/scog:/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] c12a2211b9cda77ef8460e0dedb81a7c3da8fce8d268c8dd2881696ce8c53912 [INFO] running `"docker" "start" "-a" "c12a2211b9cda77ef8460e0dedb81a7c3da8fce8d268c8dd2881696ce8c53912"` [INFO] [stderr] Compiling cmake v0.1.30 [INFO] [stderr] Compiling libz-sys v1.0.18 [INFO] [stderr] Compiling curl-sys v0.4.5 [INFO] [stderr] Checking serde_yaml v0.7.3 [INFO] [stderr] Compiling libssh2-sys v0.2.6 [INFO] [stderr] Compiling libgit2-sys v0.7.1 [INFO] [stderr] Checking git2 v0.7.1 [INFO] [stderr] Checking scog v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: use of deprecated item 'std::env::home_dir': This function's behavior is unexpected and probably not what you want. Consider using the home_dir function from https://crates.io/crates/dirs instead. [INFO] [stderr] --> src/core/repository.rs:22:24 [INFO] [stderr] | [INFO] [stderr] 22 | let home_dir = env::home_dir().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::env::home_dir': This function's behavior is unexpected and probably not what you want. Consider using the home_dir function from https://crates.io/crates/dirs instead. [INFO] [stderr] --> src/core/repository.rs:22:24 [INFO] [stderr] | [INFO] [stderr] 22 | let home_dir = env::home_dir().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/commands/clone.rs:7:25 [INFO] [stderr] | [INFO] [stderr] 7 | let error = format!( [INFO] [stderr] | _________________________^ [INFO] [stderr] 8 | | "\ [INFO] [stderr] 9 | | 'clone' requires REPO argument. [INFO] [stderr] 10 | | Usage: scog clone REPO. [INFO] [stderr] 11 | | " [INFO] [stderr] 12 | | ); [INFO] [stderr] | |_____________^ [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] help: consider using .to_string() [INFO] [stderr] | [INFO] [stderr] 7 | let error = "\ [INFO] [stderr] 8 | 'clone' requires REPO argument. [INFO] [stderr] 9 | Usage: scog clone REPO. [INFO] [stderr] 10 | ".to_string(); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/commands/checkout.rs:8:25 [INFO] [stderr] | [INFO] [stderr] 8 | let error = format!( [INFO] [stderr] | _________________________^ [INFO] [stderr] 9 | | "\ [INFO] [stderr] 10 | | 'checkout' requires BRANCH argument. [INFO] [stderr] 11 | | Usage: bog checkout BRANCH. [INFO] [stderr] 12 | | " [INFO] [stderr] 13 | | ); [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] help: consider using .to_string() [INFO] [stderr] | [INFO] [stderr] 8 | let error = "\ [INFO] [stderr] 9 | 'checkout' requires BRANCH argument. [INFO] [stderr] 10 | Usage: bog checkout BRANCH. [INFO] [stderr] 11 | ".to_string(); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/commands/mod.rs:10:27 [INFO] [stderr] | [INFO] [stderr] 10 | pub fn exec(cmd: &str) -> Option) -> Result<(), Error>> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/validate.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | / match is_backup(branch_name) { [INFO] [stderr] 7 | | true => Err(format!("can not pull or push from backup branch: '{}'.", branch_name))?, [INFO] [stderr] 8 | | false => Ok(()), [INFO] [stderr] 9 | | } [INFO] [stderr] | |_____^ help: consider using an if/else expression: `if is_backup(branch_name) { Err(format!("can not pull or push from backup branch: '{}'.", branch_name))? } else { Ok(()) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/validate.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | / match git.is_dirty()? { [INFO] [stderr] 14 | | true => Err("can not pull or push if repository is dirty".to_string())?, [INFO] [stderr] 15 | | false => Ok(()), [INFO] [stderr] 16 | | } [INFO] [stderr] | |_____^ help: consider using an if/else expression: `if git.is_dirty()? { Err("can not pull or push if repository is dirty".to_string())? } else { Ok(()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/utils/git.rs:57:13 [INFO] [stderr] | [INFO] [stderr] 57 | / match remote { [INFO] [stderr] 58 | | Some(remote) => { [INFO] [stderr] 59 | | let branch = self.find_local_branch(format!("{}/{}", remote, branch_name).as_str()); [INFO] [stderr] 60 | | match branch { [INFO] [stderr] ... | [INFO] [stderr] 70 | | None => {}, [INFO] [stderr] 71 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 57 | if let Some(remote) = remote { [INFO] [stderr] 58 | let branch = self.find_local_branch(format!("{}/{}", remote, branch_name).as_str()); [INFO] [stderr] 59 | match branch { [INFO] [stderr] 60 | Ok(branch) => return Ok(branch), [INFO] [stderr] 61 | Err(error) => { [INFO] [stderr] 62 | match error.code() { [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/utils/git.rs:137:13 [INFO] [stderr] | [INFO] [stderr] 137 | / match remote { [INFO] [stderr] 138 | | Some(remote) => { [INFO] [stderr] 139 | | let mut remote = self.repository.find_remote(remote)?; [INFO] [stderr] 140 | | // Fetch all branches [INFO] [stderr] ... | [INFO] [stderr] 143 | | None => {} [INFO] [stderr] 144 | | } [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] 137 | if let Some(remote) = remote { [INFO] [stderr] 138 | let mut remote = self.repository.find_remote(remote)?; [INFO] [stderr] 139 | // Fetch all branches [INFO] [stderr] 140 | remote.fetch(&[], Some(&mut fetch_options), None)?; [INFO] [stderr] 141 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/utils/git.rs:198:9 [INFO] [stderr] | [INFO] [stderr] 198 | / match head.is_branch() { [INFO] [stderr] 199 | | true => Ok(head.shorthand().unwrap_or_default().to_owned()), [INFO] [stderr] 200 | | false => Err("HEAD is not attached to a branch".to_string())?, [INFO] [stderr] 201 | | } [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if head.is_branch() { Ok(head.shorthand().unwrap_or_default().to_owned()) } else { Err("HEAD is not attached to a branch".to_string())? }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/utils/git.rs:237:13 [INFO] [stderr] | [INFO] [stderr] 237 | / match remote { [INFO] [stderr] 238 | | Some(remote) => { [INFO] [stderr] 239 | | let mut remote = self.repository.find_remote(remote)?; [INFO] [stderr] 240 | | // Push only the passed branch all remotes [INFO] [stderr] ... | [INFO] [stderr] 243 | | None => {} [INFO] [stderr] 244 | | } [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] 237 | if let Some(remote) = remote { [INFO] [stderr] 238 | let mut remote = self.repository.find_remote(remote)?; [INFO] [stderr] 239 | // Push only the passed branch all remotes [INFO] [stderr] 240 | remote.push(&[branch.get().name().unwrap_or_default()], Some(&mut push_options))?; [INFO] [stderr] 241 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/utils/backup.rs:5:16 [INFO] [stderr] | [INFO] [stderr] 5 | Regex::new(r"^_backup_").unwrap().is_match(branch_name) [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/utils/copy.rs:39:9 [INFO] [stderr] | [INFO] [stderr] 39 | / match destination.parent() { [INFO] [stderr] 40 | | Some(parent) => { [INFO] [stderr] 41 | | if !parent.exists() { [INFO] [stderr] 42 | | fs::create_dir_all(parent)?; [INFO] [stderr] ... | [INFO] [stderr] 45 | | None => {} [INFO] [stderr] 46 | | } [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] 39 | if let Some(parent) = destination.parent() { [INFO] [stderr] 40 | if !parent.exists() { [INFO] [stderr] 41 | fs::create_dir_all(parent)?; [INFO] [stderr] 42 | } [INFO] [stderr] 43 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:36:8 [INFO] [stderr] | [INFO] [stderr] 36 | if args.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!args.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: useless use of `format!` [INFO] [stderr] --> src/main.rs:47:13 [INFO] [stderr] | [INFO] [stderr] 47 | Err(format!("no COMMAND defined."))? [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"no COMMAND defined.".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/commands/clone.rs:7:25 [INFO] [stderr] | [INFO] [stderr] 7 | let error = format!( [INFO] [stderr] | _________________________^ [INFO] [stderr] 8 | | "\ [INFO] [stderr] 9 | | 'clone' requires REPO argument. [INFO] [stderr] 10 | | Usage: scog clone REPO. [INFO] [stderr] 11 | | " [INFO] [stderr] 12 | | ); [INFO] [stderr] | |_____________^ [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] help: consider using .to_string() [INFO] [stderr] | [INFO] [stderr] 7 | let error = "\ [INFO] [stderr] 8 | 'clone' requires REPO argument. [INFO] [stderr] 9 | Usage: scog clone REPO. [INFO] [stderr] 10 | ".to_string(); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/commands/checkout.rs:8:25 [INFO] [stderr] | [INFO] [stderr] 8 | let error = format!( [INFO] [stderr] | _________________________^ [INFO] [stderr] 9 | | "\ [INFO] [stderr] 10 | | 'checkout' requires BRANCH argument. [INFO] [stderr] 11 | | Usage: bog checkout BRANCH. [INFO] [stderr] 12 | | " [INFO] [stderr] 13 | | ); [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] help: consider using .to_string() [INFO] [stderr] | [INFO] [stderr] 8 | let error = "\ [INFO] [stderr] 9 | 'checkout' requires BRANCH argument. [INFO] [stderr] 10 | Usage: bog checkout BRANCH. [INFO] [stderr] 11 | ".to_string(); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/commands/mod.rs:10:27 [INFO] [stderr] | [INFO] [stderr] 10 | pub fn exec(cmd: &str) -> Option) -> Result<(), Error>> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/validate.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | / match is_backup(branch_name) { [INFO] [stderr] 7 | | true => Err(format!("can not pull or push from backup branch: '{}'.", branch_name))?, [INFO] [stderr] 8 | | false => Ok(()), [INFO] [stderr] 9 | | } [INFO] [stderr] | |_____^ help: consider using an if/else expression: `if is_backup(branch_name) { Err(format!("can not pull or push from backup branch: '{}'.", branch_name))? } else { Ok(()) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/validate.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | / match git.is_dirty()? { [INFO] [stderr] 14 | | true => Err("can not pull or push if repository is dirty".to_string())?, [INFO] [stderr] 15 | | false => Ok(()), [INFO] [stderr] 16 | | } [INFO] [stderr] | |_____^ help: consider using an if/else expression: `if git.is_dirty()? { Err("can not pull or push if repository is dirty".to_string())? } else { Ok(()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/utils/git.rs:57:13 [INFO] [stderr] | [INFO] [stderr] 57 | / match remote { [INFO] [stderr] 58 | | Some(remote) => { [INFO] [stderr] 59 | | let branch = self.find_local_branch(format!("{}/{}", remote, branch_name).as_str()); [INFO] [stderr] 60 | | match branch { [INFO] [stderr] ... | [INFO] [stderr] 70 | | None => {}, [INFO] [stderr] 71 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 57 | if let Some(remote) = remote { [INFO] [stderr] 58 | let branch = self.find_local_branch(format!("{}/{}", remote, branch_name).as_str()); [INFO] [stderr] 59 | match branch { [INFO] [stderr] 60 | Ok(branch) => return Ok(branch), [INFO] [stderr] 61 | Err(error) => { [INFO] [stderr] 62 | match error.code() { [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/utils/git.rs:137:13 [INFO] [stderr] | [INFO] [stderr] 137 | / match remote { [INFO] [stderr] 138 | | Some(remote) => { [INFO] [stderr] 139 | | let mut remote = self.repository.find_remote(remote)?; [INFO] [stderr] 140 | | // Fetch all branches [INFO] [stderr] ... | [INFO] [stderr] 143 | | None => {} [INFO] [stderr] 144 | | } [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] 137 | if let Some(remote) = remote { [INFO] [stderr] 138 | let mut remote = self.repository.find_remote(remote)?; [INFO] [stderr] 139 | // Fetch all branches [INFO] [stderr] 140 | remote.fetch(&[], Some(&mut fetch_options), None)?; [INFO] [stderr] 141 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/utils/git.rs:198:9 [INFO] [stderr] | [INFO] [stderr] 198 | / match head.is_branch() { [INFO] [stderr] 199 | | true => Ok(head.shorthand().unwrap_or_default().to_owned()), [INFO] [stderr] 200 | | false => Err("HEAD is not attached to a branch".to_string())?, [INFO] [stderr] 201 | | } [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if head.is_branch() { Ok(head.shorthand().unwrap_or_default().to_owned()) } else { Err("HEAD is not attached to a branch".to_string())? }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/utils/git.rs:237:13 [INFO] [stderr] | [INFO] [stderr] 237 | / match remote { [INFO] [stderr] 238 | | Some(remote) => { [INFO] [stderr] 239 | | let mut remote = self.repository.find_remote(remote)?; [INFO] [stderr] 240 | | // Push only the passed branch all remotes [INFO] [stderr] ... | [INFO] [stderr] 243 | | None => {} [INFO] [stderr] 244 | | } [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] 237 | if let Some(remote) = remote { [INFO] [stderr] 238 | let mut remote = self.repository.find_remote(remote)?; [INFO] [stderr] 239 | // Push only the passed branch all remotes [INFO] [stderr] 240 | remote.push(&[branch.get().name().unwrap_or_default()], Some(&mut push_options))?; [INFO] [stderr] 241 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/utils/backup.rs:5:16 [INFO] [stderr] | [INFO] [stderr] 5 | Regex::new(r"^_backup_").unwrap().is_match(branch_name) [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: trivial regex [INFO] [stderr] --> src/utils/backup.rs:20:28 [INFO] [stderr] | [INFO] [stderr] 20 | assert!(Regex::new(r"^_backup_test_").unwrap().is_match(backup_branch_name("test").as_str())); [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/utils/copy.rs:39:9 [INFO] [stderr] | [INFO] [stderr] 39 | / match destination.parent() { [INFO] [stderr] 40 | | Some(parent) => { [INFO] [stderr] 41 | | if !parent.exists() { [INFO] [stderr] 42 | | fs::create_dir_all(parent)?; [INFO] [stderr] ... | [INFO] [stderr] 45 | | None => {} [INFO] [stderr] 46 | | } [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] 39 | if let Some(parent) = destination.parent() { [INFO] [stderr] 40 | if !parent.exists() { [INFO] [stderr] 41 | fs::create_dir_all(parent)?; [INFO] [stderr] 42 | } [INFO] [stderr] 43 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:36:8 [INFO] [stderr] | [INFO] [stderr] 36 | if args.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!args.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: useless use of `format!` [INFO] [stderr] --> src/main.rs:47:13 [INFO] [stderr] | [INFO] [stderr] 47 | Err(format!("no COMMAND defined."))? [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"no COMMAND defined.".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 2m 57s [INFO] running `"docker" "inspect" "c12a2211b9cda77ef8460e0dedb81a7c3da8fce8d268c8dd2881696ce8c53912"` [INFO] running `"docker" "rm" "-f" "c12a2211b9cda77ef8460e0dedb81a7c3da8fce8d268c8dd2881696ce8c53912"` [INFO] [stdout] c12a2211b9cda77ef8460e0dedb81a7c3da8fce8d268c8dd2881696ce8c53912