[INFO] updating cached repository mmstick/cargo-deb [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/mmstick/cargo-deb [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/mmstick/cargo-deb" "work/ex/clippy-test-run/sources/stable/gh/mmstick/cargo-deb"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/mmstick/cargo-deb'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/mmstick/cargo-deb" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mmstick/cargo-deb"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mmstick/cargo-deb'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] a23c321000aca2b8f37b2d9025d773fd3208320b [INFO] sha for GitHub repo mmstick/cargo-deb: a23c321000aca2b8f37b2d9025d773fd3208320b [INFO] validating manifest of mmstick/cargo-deb 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 mmstick/cargo-deb 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 mmstick/cargo-deb [INFO] finished frobbing mmstick/cargo-deb [INFO] frobbed toml for mmstick/cargo-deb written to work/ex/clippy-test-run/sources/stable/gh/mmstick/cargo-deb/Cargo.toml [INFO] started frobbing mmstick/cargo-deb [INFO] finished frobbing mmstick/cargo-deb [INFO] frobbed toml for mmstick/cargo-deb written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mmstick/cargo-deb/Cargo.toml [INFO] crate mmstick/cargo-deb 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 mmstick/cargo-deb against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/mmstick/cargo-deb:/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] 38bafabd21452f11bb1e9842021793baf12b3b0e2315bae7fdbe01a6bd046072 [INFO] running `"docker" "start" "-a" "38bafabd21452f11bb1e9842021793baf12b3b0e2315bae7fdbe01a6bd046072"` [INFO] [stderr] Compiling cargo-deb v1.15.0 (/opt/crater/workdir) [INFO] [stderr] Checking md5 v0.6.1 [INFO] [stderr] Compiling lzma-sys v0.1.12 [INFO] [stderr] Checking ar v0.6.2 [INFO] [stderr] Checking filetime v0.2.4 [INFO] [stderr] Checking xattr v0.2.2 [INFO] [stderr] Checking rand v0.4.3 [INFO] [stderr] Compiling syn v0.15.23 [INFO] [stderr] Checking zopfli v0.4.0 [INFO] [stderr] Checking tar v0.4.20 [INFO] [stderr] Checking xz2 v0.1.6 [INFO] [stderr] Checking tempdir v0.3.7 [INFO] [stderr] Compiling serde_derive v1.0.82 [INFO] [stderr] Checking cargo_toml v0.3.0 [INFO] [stderr] warning: parameter of type `HashMap` should be generalized over different hashers [INFO] [stderr] --> src/control.rs:14:68 [INFO] [stderr] | [INFO] [stderr] 14 | pub fn generate_archive(options: &Config, time: u64, asset_hashes: HashMap, listener: &mut Listener) -> CDResult> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::implicit_hasher)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stderr] help: consider adding a type parameter [INFO] [stderr] | [INFO] [stderr] 14 | pub fn generate_archive(options: &Config, time: u64, asset_hashes: HashMap, listener: &mut Listener) -> CDResult> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of `or` followed by a function call [INFO] [stderr] --> src/control.rs:72:55 [INFO] [stderr] | [INFO] [stderr] 72 | if let Some(homepage) = options.homepage.as_ref().or(options.documentation.as_ref()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| options.documentation.as_ref())` [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: use of `or` followed by a function call [INFO] [stderr] --> src/data.rs:42:55 [INFO] [stderr] | [INFO] [stderr] 42 | if let Some(source) = options.repository.as_ref().or(options.homepage.as_ref()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| options.homepage.as_ref())` [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: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/manifest.rs:151:9 [INFO] [stderr] | [INFO] [stderr] 151 | / match self.is_built { [INFO] [stderr] 152 | | true => { [INFO] [stderr] 153 | | // Turn an absolute path into one relative to "/" [INFO] [stderr] 154 | | let relative = match self.target_path.strip_prefix(Path::new("/")) { [INFO] [stderr] ... | [INFO] [stderr] 165 | | false => None, [INFO] [stderr] 166 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 151 | if self.is_built { [INFO] [stderr] 152 | // Turn an absolute path into one relative to "/" [INFO] [stderr] 153 | let relative = match self.target_path.strip_prefix(Path::new("/")) { [INFO] [stderr] 154 | Ok(path) => path, [INFO] [stderr] 155 | Err(_) => self.target_path.as_path(), [INFO] [stderr] 156 | }; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `.filter_map` can be written more simply using `.filter` [INFO] [stderr] --> src/manifest.rs:404:9 [INFO] [stderr] | [INFO] [stderr] 404 | / self.assets [INFO] [stderr] 405 | | .resolved [INFO] [stderr] 406 | | .iter() [INFO] [stderr] 407 | | .filter_map(|asset| { [INFO] [stderr] ... | [INFO] [stderr] 415 | | } [INFO] [stderr] 416 | | }) [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: this function has too many arguments (8/7) [INFO] [stderr] --> src/manifest.rs:486:5 [INFO] [stderr] | [INFO] [stderr] 486 | / fn into_config( [INFO] [stderr] 487 | | mut self, [INFO] [stderr] 488 | | root_package: &CargoMetadataPackage, [INFO] [stderr] 489 | | manifest_dir: &Path, [INFO] [stderr] ... | [INFO] [stderr] 584 | | Ok(config) [INFO] [stderr] 585 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/manifest.rs:515:18 [INFO] [stderr] | [INFO] [stderr] 515 | .ok_or(CargoDebError::VariantNotFound(variant.to_string()))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| CargoDebError::VariantNotFound(variant.to_string()))` [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 `unwrap_or` followed by a function call [INFO] [stderr] --> src/manifest.rs:553:41 [INFO] [stderr] | [INFO] [stderr] 553 | depends: deb.depends.take().unwrap_or("$auto".to_owned()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "$auto".to_owned())` [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 `unwrap_or` followed by a function call [INFO] [stderr] --> src/manifest.rs:559:43 [INFO] [stderr] | [INFO] [stderr] 559 | priority: deb.priority.take().unwrap_or("optional".to_owned()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "optional".to_owned())` [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 `unwrap_or` followed by a function call [INFO] [stderr] --> src/manifest.rs:565:43 [INFO] [stderr] | [INFO] [stderr] 565 | features: deb.features.take().unwrap_or(vec![]), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| 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: parameter of type `HashMap` should be generalized over different hashers [INFO] [stderr] --> src/control.rs:14:68 [INFO] [stderr] | [INFO] [stderr] 14 | pub fn generate_archive(options: &Config, time: u64, asset_hashes: HashMap, listener: &mut Listener) -> CDResult> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::implicit_hasher)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stderr] help: consider adding a type parameter [INFO] [stderr] | [INFO] [stderr] 14 | pub fn generate_archive(options: &Config, time: u64, asset_hashes: HashMap, listener: &mut Listener) -> CDResult> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of `or` followed by a function call [INFO] [stderr] --> src/control.rs:72:55 [INFO] [stderr] | [INFO] [stderr] 72 | if let Some(homepage) = options.homepage.as_ref().or(options.documentation.as_ref()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| options.documentation.as_ref())` [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: use of `or` followed by a function call [INFO] [stderr] --> src/data.rs:42:55 [INFO] [stderr] | [INFO] [stderr] 42 | if let Some(source) = options.repository.as_ref().or(options.homepage.as_ref()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| options.homepage.as_ref())` [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: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/manifest.rs:151:9 [INFO] [stderr] | [INFO] [stderr] 151 | / match self.is_built { [INFO] [stderr] 152 | | true => { [INFO] [stderr] 153 | | // Turn an absolute path into one relative to "/" [INFO] [stderr] 154 | | let relative = match self.target_path.strip_prefix(Path::new("/")) { [INFO] [stderr] ... | [INFO] [stderr] 165 | | false => None, [INFO] [stderr] 166 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 151 | if self.is_built { [INFO] [stderr] 152 | // Turn an absolute path into one relative to "/" [INFO] [stderr] 153 | let relative = match self.target_path.strip_prefix(Path::new("/")) { [INFO] [stderr] 154 | Ok(path) => path, [INFO] [stderr] 155 | Err(_) => self.target_path.as_path(), [INFO] [stderr] 156 | }; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `.filter_map` can be written more simply using `.filter` [INFO] [stderr] --> src/manifest.rs:404:9 [INFO] [stderr] | [INFO] [stderr] 404 | / self.assets [INFO] [stderr] 405 | | .resolved [INFO] [stderr] 406 | | .iter() [INFO] [stderr] 407 | | .filter_map(|asset| { [INFO] [stderr] ... | [INFO] [stderr] 415 | | } [INFO] [stderr] 416 | | }) [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: this function has too many arguments (8/7) [INFO] [stderr] --> src/manifest.rs:486:5 [INFO] [stderr] | [INFO] [stderr] 486 | / fn into_config( [INFO] [stderr] 487 | | mut self, [INFO] [stderr] 488 | | root_package: &CargoMetadataPackage, [INFO] [stderr] 489 | | manifest_dir: &Path, [INFO] [stderr] ... | [INFO] [stderr] 584 | | Ok(config) [INFO] [stderr] 585 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/manifest.rs:515:18 [INFO] [stderr] | [INFO] [stderr] 515 | .ok_or(CargoDebError::VariantNotFound(variant.to_string()))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| CargoDebError::VariantNotFound(variant.to_string()))` [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 `unwrap_or` followed by a function call [INFO] [stderr] --> src/manifest.rs:553:41 [INFO] [stderr] | [INFO] [stderr] 553 | depends: deb.depends.take().unwrap_or("$auto".to_owned()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "$auto".to_owned())` [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 `unwrap_or` followed by a function call [INFO] [stderr] --> src/manifest.rs:559:43 [INFO] [stderr] | [INFO] [stderr] 559 | priority: deb.priority.take().unwrap_or("optional".to_owned()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "optional".to_owned())` [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 `unwrap_or` followed by a function call [INFO] [stderr] --> src/manifest.rs:565:43 [INFO] [stderr] | [INFO] [stderr] 565 | features: deb.features.take().unwrap_or(vec![]), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| 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: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/lib.rs:166:34 [INFO] [stderr] | [INFO] [stderr] 166 | .unwrap_or(Path::new(".cargo/config")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| Path::new(".cargo/config"))` [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 `unwrap_or` followed by a function call [INFO] [stderr] --> src/lib.rs:166:34 [INFO] [stderr] | [INFO] [stderr] 166 | .unwrap_or(Path::new(".cargo/config")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| Path::new(".cargo/config"))` [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: the function has a cyclomatic complexity of 29 [INFO] [stderr] --> tests/command.rs:11:1 [INFO] [stderr] | [INFO] [stderr] 11 | / fn run_cargo_deb_command_on_example_dir() { [INFO] [stderr] 12 | | let root = PathBuf::from(env::var_os("CARGO_MANIFEST_DIR").unwrap()); [INFO] [stderr] 13 | | let cmd_path = root.join("target/debug/cargo-deb"); [INFO] [stderr] 14 | | assert!(cmd_path.exists()); [INFO] [stderr] ... | [INFO] [stderr] 76 | | ); [INFO] [stderr] 77 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 29 [INFO] [stderr] --> tests/command.rs:81:1 [INFO] [stderr] | [INFO] [stderr] 81 | / fn run_cargo_deb_command_on_example_dir_with_variant() { [INFO] [stderr] 82 | | let root = PathBuf::from(env::var_os("CARGO_MANIFEST_DIR").unwrap()); [INFO] [stderr] 83 | | let cmd_path = root.join(format!("target/debug/cargo-deb{}", std::env::consts::EXE_SUFFIX)); [INFO] [stderr] 84 | | assert!(cmd_path.exists()); [INFO] [stderr] ... | [INFO] [stderr] 154 | | assert!(ddir.path().join("usr/bin/example").exists()); [INFO] [stderr] 155 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 40.27s [INFO] running `"docker" "inspect" "38bafabd21452f11bb1e9842021793baf12b3b0e2315bae7fdbe01a6bd046072"` [INFO] running `"docker" "rm" "-f" "38bafabd21452f11bb1e9842021793baf12b3b0e2315bae7fdbe01a6bd046072"` [INFO] [stdout] 38bafabd21452f11bb1e9842021793baf12b3b0e2315bae7fdbe01a6bd046072