[INFO] crate cargo-wix 0.1.0 is already in cache [INFO] extracting crate cargo-wix 0.1.0 into work/ex/clippy-test-run/sources/stable/reg/cargo-wix/0.1.0 [INFO] extracting crate cargo-wix 0.1.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/cargo-wix/0.1.0 [INFO] validating manifest of cargo-wix-0.1.0 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 cargo-wix-0.1.0 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 cargo-wix-0.1.0 [INFO] finished frobbing cargo-wix-0.1.0 [INFO] frobbed toml for cargo-wix-0.1.0 written to work/ex/clippy-test-run/sources/stable/reg/cargo-wix/0.1.0/Cargo.toml [INFO] started frobbing cargo-wix-0.1.0 [INFO] finished frobbing cargo-wix-0.1.0 [INFO] frobbed toml for cargo-wix-0.1.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/cargo-wix/0.1.0/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting cargo-wix-0.1.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/cargo-wix/0.1.0:/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] a33c91c590d8424f1f5464feb2c02ae80e40aad33e6fd35bf050a02808d0b225 [INFO] running `"docker" "start" "-a" "a33c91c590d8424f1f5464feb2c02ae80e40aad33e6fd35bf050a02808d0b225"` [INFO] [stderr] Checking sxd-document v0.3.0 [INFO] [stderr] Checking clap v2.32.0 [INFO] [stderr] Checking float-cmp v0.4.0 [INFO] [stderr] Checking toml v0.4.10 [INFO] [stderr] Checking mustache v0.9.0 [INFO] [stderr] Checking ignore v0.4.6 [INFO] [stderr] Checking predicates v0.9.1 [INFO] [stderr] Checking sxd-xpath v0.4.2 [INFO] [stderr] Checking assert_cmd v0.9.1 [INFO] [stderr] Checking globwalk v0.3.1 [INFO] [stderr] Checking cargo-wix v0.1.0 (/opt/crater/workdir) [INFO] [stderr] Checking assert_fs v0.9.0 [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/create.rs:359:16 [INFO] [stderr] | [INFO] [stderr] 359 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 360 | | if let Some(mut path) = env::var_os(WIX_PATH_KEY).map(|s| { [INFO] [stderr] 361 | | let mut p = PathBuf::from(s); [INFO] [stderr] 362 | | trace!( [INFO] [stderr] ... | [INFO] [stderr] 387 | | } [INFO] [stderr] 388 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 359 | } else if let Some(mut path) = env::var_os(WIX_PATH_KEY).map(|s| { [INFO] [stderr] 360 | let mut p = PathBuf::from(s); [INFO] [stderr] 361 | trace!( [INFO] [stderr] 362 | "Using the '{}' path to the WiX Toolset's '{}' folder for the compiler", [INFO] [stderr] 363 | p.display(), [INFO] [stderr] 364 | BINARY_FOLDER_NAME [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/create.rs:431:16 [INFO] [stderr] | [INFO] [stderr] 431 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 432 | | if let Some(mut path) = env::var_os(WIX_PATH_KEY).map(|s| { [INFO] [stderr] 433 | | let mut p = PathBuf::from(s); [INFO] [stderr] 434 | | trace!( [INFO] [stderr] ... | [INFO] [stderr] 459 | | } [INFO] [stderr] 460 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 431 | } else if let Some(mut path) = env::var_os(WIX_PATH_KEY).map(|s| { [INFO] [stderr] 432 | let mut p = PathBuf::from(s); [INFO] [stderr] 433 | trace!( [INFO] [stderr] 434 | "Using the '{}' path to the WiX Toolset's '{}' folder for the linker", [INFO] [stderr] 435 | p.display(), [INFO] [stderr] 436 | BINARY_FOLDER_NAME [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/eula.rs:73:16 [INFO] [stderr] | [INFO] [stderr] 73 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 74 | | if let Some(license_name) = manifest.get("package") [INFO] [stderr] 75 | | .and_then(|p| p.as_table()) [INFO] [stderr] 76 | | .and_then(|t| t.get("license")) [INFO] [stderr] ... | [INFO] [stderr] 92 | | } [INFO] [stderr] 93 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 73 | } else if let Some(license_name) = manifest.get("package") [INFO] [stderr] 74 | .and_then(|p| p.as_table()) [INFO] [stderr] 75 | .and_then(|t| t.get("license")) [INFO] [stderr] 76 | .and_then(|n| n.as_str()) { [INFO] [stderr] 77 | trace!("The 'license' field is specified in the package's manifest (Cargo.toml)"); [INFO] [stderr] 78 | debug!("license_name = {:?}", license_name); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/sign.rs:285:16 [INFO] [stderr] | [INFO] [stderr] 285 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 286 | | if let Some(mut path) = env::var_os(SIGNTOOL_PATH_KEY).map(|s| { [INFO] [stderr] 287 | | let mut p = PathBuf::from(s); [INFO] [stderr] 288 | | trace!( [INFO] [stderr] ... | [INFO] [stderr] 312 | | } [INFO] [stderr] 313 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 285 | } else if let Some(mut path) = env::var_os(SIGNTOOL_PATH_KEY).map(|s| { [INFO] [stderr] 286 | let mut p = PathBuf::from(s); [INFO] [stderr] 287 | trace!( [INFO] [stderr] 288 | "Using the '{}' path to the Windows SDK '{}' folder for the signer", [INFO] [stderr] 289 | p.display(), [INFO] [stderr] 290 | BINARY_FOLDER_NAME [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 35 [INFO] [stderr] --> src/create.rs:216:5 [INFO] [stderr] | [INFO] [stderr] 216 | / pub fn run(self) -> Result<()> { [INFO] [stderr] 217 | | debug!("bin_path = {:?}", self.bin_path); [INFO] [stderr] 218 | | debug!("capture_output = {:?}", self.capture_output); [INFO] [stderr] 219 | | debug!("culture = {:?}", self.culture); [INFO] [stderr] ... | [INFO] [stderr] 332 | | Ok(()) [INFO] [stderr] 333 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/create.rs:484:72 [INFO] [stderr] | [INFO] [stderr] 484 | fn destination_msi(&self, name: &str, version: &Version, platform: &Platform) -> PathBuf { [INFO] [stderr] | ^^^^^^^^^ help: consider passing by value instead: `Platform` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/create.rs:514:50 [INFO] [stderr] | [INFO] [stderr] 514 | if let Some(p) = self.input.as_ref().map(|s| PathBuf::from(s)) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `PathBuf::from` [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: identical conversion [INFO] [stderr] --> src/eula.rs:58:39 [INFO] [stderr] | [INFO] [stderr] 58 | Ok(Eula::Manifest(license_file_path.into())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `license_file_path` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/print/license.rs:145:14 [INFO] [stderr] | [INFO] [stderr] 145 | .unwrap_or(Utc::now().year().to_string()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| Utc::now().year().to_string())` [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/print/wxs.rs:320:51 [INFO] [stderr] | [INFO] [stderr] 320 | if let Some(url) = self.help_url.as_ref().or(Execution::help_url(&manifest).as_ref()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| Execution::help_url(&manifest).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: use of `or` followed by a function call [INFO] [stderr] --> src/print/wxs.rs:376:72 [INFO] [stderr] | [INFO] [stderr] 376 | .and_then(|t| t.get("documentation").or(t.get("homepage")).or(t.get("repository"))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| t.get("repository"))` [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 `or` followed by a function call [INFO] [stderr] --> src/print/wxs.rs:376:50 [INFO] [stderr] | [INFO] [stderr] 376 | .and_then(|t| t.get("documentation").or(t.get("homepage")).or(t.get("repository"))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| t.get("homepage"))` [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 `or` followed by a function call [INFO] [stderr] --> src/sign.rs:223:31 [INFO] [stderr] | [INFO] [stderr] 223 | self.homepage.clone().or(manifest.get("package") [INFO] [stderr] | _______________________________^ [INFO] [stderr] 224 | | .and_then(|p| p.as_table()) [INFO] [stderr] 225 | | .and_then(|t| t.get("homepage")) [INFO] [stderr] 226 | | .and_then(|d| d.as_str()) [INFO] [stderr] 227 | | .map(|s| String::from(s)) [INFO] [stderr] 228 | | ) [INFO] [stderr] | |_________^ [INFO] [stderr] | [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] 223 | self.homepage.clone().or_else(|| manifest.get("package") [INFO] [stderr] 224 | .and_then(|p| p.as_table()) [INFO] [stderr] 225 | .and_then(|t| t.get("homepage")) [INFO] [stderr] 226 | .and_then(|d| d.as_str()) [INFO] [stderr] 227 | .map(|s| String::from(s))) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/sign.rs:227:18 [INFO] [stderr] | [INFO] [stderr] 227 | .map(|s| String::from(s)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `String::from` [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: use of `or` followed by a function call [INFO] [stderr] --> src/lib.rs:192:17 [INFO] [stderr] | [INFO] [stderr] 192 | description.or(manifest.get("package") [INFO] [stderr] | _________________^ [INFO] [stderr] 193 | | .and_then(|p| p.as_table()) [INFO] [stderr] 194 | | .and_then(|t| t.get("description")) [INFO] [stderr] 195 | | .and_then(|d| d.as_str()) [INFO] [stderr] 196 | | .map(String::from)) [INFO] [stderr] | |___________________________^ [INFO] [stderr] | [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] 192 | description.or_else(|| manifest.get("package") [INFO] [stderr] 193 | .and_then(|p| p.as_table()) [INFO] [stderr] 194 | .and_then(|t| t.get("description")) [INFO] [stderr] 195 | .and_then(|d| d.as_str()) [INFO] [stderr] 196 | .map(String::from)) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lib.rs:445:17 [INFO] [stderr] | [INFO] [stderr] 445 | pub fn arch(&self) -> &'static str { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: the `u @ _` pattern can be written as just `u` [INFO] [stderr] --> src/lib.rs:531:13 [INFO] [stderr] | [INFO] [stderr] 531 | u @ _ => Ok(TimestampServer::Custom(String::from(u))) [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: the `e @ _` pattern can be written as just `e` [INFO] [stderr] --> src/lib.rs:905:13 [INFO] [stderr] | [INFO] [stderr] 905 | e @ _ => Err(Error::Generic(format!("Unknown '{}' culture", e))), [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/create.rs:359:16 [INFO] [stderr] | [INFO] [stderr] 359 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 360 | | if let Some(mut path) = env::var_os(WIX_PATH_KEY).map(|s| { [INFO] [stderr] 361 | | let mut p = PathBuf::from(s); [INFO] [stderr] 362 | | trace!( [INFO] [stderr] ... | [INFO] [stderr] 387 | | } [INFO] [stderr] 388 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 359 | } else if let Some(mut path) = env::var_os(WIX_PATH_KEY).map(|s| { [INFO] [stderr] 360 | let mut p = PathBuf::from(s); [INFO] [stderr] 361 | trace!( [INFO] [stderr] 362 | "Using the '{}' path to the WiX Toolset's '{}' folder for the compiler", [INFO] [stderr] 363 | p.display(), [INFO] [stderr] 364 | BINARY_FOLDER_NAME [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/create.rs:431:16 [INFO] [stderr] | [INFO] [stderr] 431 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 432 | | if let Some(mut path) = env::var_os(WIX_PATH_KEY).map(|s| { [INFO] [stderr] 433 | | let mut p = PathBuf::from(s); [INFO] [stderr] 434 | | trace!( [INFO] [stderr] ... | [INFO] [stderr] 459 | | } [INFO] [stderr] 460 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 431 | } else if let Some(mut path) = env::var_os(WIX_PATH_KEY).map(|s| { [INFO] [stderr] 432 | let mut p = PathBuf::from(s); [INFO] [stderr] 433 | trace!( [INFO] [stderr] 434 | "Using the '{}' path to the WiX Toolset's '{}' folder for the linker", [INFO] [stderr] 435 | p.display(), [INFO] [stderr] 436 | BINARY_FOLDER_NAME [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/eula.rs:73:16 [INFO] [stderr] | [INFO] [stderr] 73 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 74 | | if let Some(license_name) = manifest.get("package") [INFO] [stderr] 75 | | .and_then(|p| p.as_table()) [INFO] [stderr] 76 | | .and_then(|t| t.get("license")) [INFO] [stderr] ... | [INFO] [stderr] 92 | | } [INFO] [stderr] 93 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 73 | } else if let Some(license_name) = manifest.get("package") [INFO] [stderr] 74 | .and_then(|p| p.as_table()) [INFO] [stderr] 75 | .and_then(|t| t.get("license")) [INFO] [stderr] 76 | .and_then(|n| n.as_str()) { [INFO] [stderr] 77 | trace!("The 'license' field is specified in the package's manifest (Cargo.toml)"); [INFO] [stderr] 78 | debug!("license_name = {:?}", license_name); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/sign.rs:285:16 [INFO] [stderr] | [INFO] [stderr] 285 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 286 | | if let Some(mut path) = env::var_os(SIGNTOOL_PATH_KEY).map(|s| { [INFO] [stderr] 287 | | let mut p = PathBuf::from(s); [INFO] [stderr] 288 | | trace!( [INFO] [stderr] ... | [INFO] [stderr] 312 | | } [INFO] [stderr] 313 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 285 | } else if let Some(mut path) = env::var_os(SIGNTOOL_PATH_KEY).map(|s| { [INFO] [stderr] 286 | let mut p = PathBuf::from(s); [INFO] [stderr] 287 | trace!( [INFO] [stderr] 288 | "Using the '{}' path to the Windows SDK '{}' folder for the signer", [INFO] [stderr] 289 | p.display(), [INFO] [stderr] 290 | BINARY_FOLDER_NAME [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 35 [INFO] [stderr] --> src/create.rs:216:5 [INFO] [stderr] | [INFO] [stderr] 216 | / pub fn run(self) -> Result<()> { [INFO] [stderr] 217 | | debug!("bin_path = {:?}", self.bin_path); [INFO] [stderr] 218 | | debug!("capture_output = {:?}", self.capture_output); [INFO] [stderr] 219 | | debug!("culture = {:?}", self.culture); [INFO] [stderr] ... | [INFO] [stderr] 332 | | Ok(()) [INFO] [stderr] 333 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/create.rs:484:72 [INFO] [stderr] | [INFO] [stderr] 484 | fn destination_msi(&self, name: &str, version: &Version, platform: &Platform) -> PathBuf { [INFO] [stderr] | ^^^^^^^^^ help: consider passing by value instead: `Platform` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/create.rs:514:50 [INFO] [stderr] | [INFO] [stderr] 514 | if let Some(p) = self.input.as_ref().map(|s| PathBuf::from(s)) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `PathBuf::from` [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: identical conversion [INFO] [stderr] --> src/eula.rs:58:39 [INFO] [stderr] | [INFO] [stderr] 58 | Ok(Eula::Manifest(license_file_path.into())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `license_file_path` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/print/license.rs:145:14 [INFO] [stderr] | [INFO] [stderr] 145 | .unwrap_or(Utc::now().year().to_string()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| Utc::now().year().to_string())` [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/print/wxs.rs:320:51 [INFO] [stderr] | [INFO] [stderr] 320 | if let Some(url) = self.help_url.as_ref().or(Execution::help_url(&manifest).as_ref()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| Execution::help_url(&manifest).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: use of `or` followed by a function call [INFO] [stderr] --> src/print/wxs.rs:376:72 [INFO] [stderr] | [INFO] [stderr] 376 | .and_then(|t| t.get("documentation").or(t.get("homepage")).or(t.get("repository"))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| t.get("repository"))` [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 `or` followed by a function call [INFO] [stderr] --> src/print/wxs.rs:376:50 [INFO] [stderr] | [INFO] [stderr] 376 | .and_then(|t| t.get("documentation").or(t.get("homepage")).or(t.get("repository"))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| t.get("homepage"))` [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: identical conversion [INFO] [stderr] --> src/print/wxs.rs:693:37 [INFO] [stderr] | [INFO] [stderr] 693 | assert_eq!(actual, Some(String::from(LICENSE_FILE_NAME.to_owned() + "." + RTF_FILE_EXTENSION))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `LICENSE_FILE_NAME.to_owned() + "." + RTF_FILE_EXTENSION` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/print/wxs.rs:700:37 [INFO] [stderr] | [INFO] [stderr] 700 | assert_eq!(actual, Some(String::from(LICENSE_FILE_NAME.to_owned() + "." + RTF_FILE_EXTENSION))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `LICENSE_FILE_NAME.to_owned() + "." + RTF_FILE_EXTENSION` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: use of `or` followed by a function call [INFO] [stderr] --> src/sign.rs:223:31 [INFO] [stderr] | [INFO] [stderr] 223 | self.homepage.clone().or(manifest.get("package") [INFO] [stderr] | _______________________________^ [INFO] [stderr] 224 | | .and_then(|p| p.as_table()) [INFO] [stderr] 225 | | .and_then(|t| t.get("homepage")) [INFO] [stderr] 226 | | .and_then(|d| d.as_str()) [INFO] [stderr] 227 | | .map(|s| String::from(s)) [INFO] [stderr] 228 | | ) [INFO] [stderr] | |_________^ [INFO] [stderr] | [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] 223 | self.homepage.clone().or_else(|| manifest.get("package") [INFO] [stderr] 224 | .and_then(|p| p.as_table()) [INFO] [stderr] 225 | .and_then(|t| t.get("homepage")) [INFO] [stderr] 226 | .and_then(|d| d.as_str()) [INFO] [stderr] 227 | .map(|s| String::from(s))) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/sign.rs:227:18 [INFO] [stderr] | [INFO] [stderr] 227 | .map(|s| String::from(s)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `String::from` [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: use of `or` followed by a function call [INFO] [stderr] --> src/lib.rs:192:17 [INFO] [stderr] | [INFO] [stderr] 192 | description.or(manifest.get("package") [INFO] [stderr] | _________________^ [INFO] [stderr] 193 | | .and_then(|p| p.as_table()) [INFO] [stderr] 194 | | .and_then(|t| t.get("description")) [INFO] [stderr] 195 | | .and_then(|d| d.as_str()) [INFO] [stderr] 196 | | .map(String::from)) [INFO] [stderr] | |___________________________^ [INFO] [stderr] | [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] 192 | description.or_else(|| manifest.get("package") [INFO] [stderr] 193 | .and_then(|p| p.as_table()) [INFO] [stderr] 194 | .and_then(|t| t.get("description")) [INFO] [stderr] 195 | .and_then(|d| d.as_str()) [INFO] [stderr] 196 | .map(String::from)) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lib.rs:445:17 [INFO] [stderr] | [INFO] [stderr] 445 | pub fn arch(&self) -> &'static str { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: the `u @ _` pattern can be written as just `u` [INFO] [stderr] --> src/lib.rs:531:13 [INFO] [stderr] | [INFO] [stderr] 531 | u @ _ => Ok(TimestampServer::Custom(String::from(u))) [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: the `e @ _` pattern can be written as just `e` [INFO] [stderr] --> src/lib.rs:905:13 [INFO] [stderr] | [INFO] [stderr] 905 | e @ _ => Err(Error::Generic(format!("Unknown '{}' culture", e))), [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `common::sxd_xpath::nodeset::Node<'_>: std::convert::From>` is not satisfied [INFO] [stderr] --> tests/common/mod.rs:74:11 [INFO] [stderr] | [INFO] [stderr] 74 | xpath.evaluate(&context, wxs_document.root()).unwrap().string() [INFO] [stderr] | ^^^^^^^^ the trait `std::convert::From>` is not implemented for `common::sxd_xpath::nodeset::Node<'_>` [INFO] [stderr] | [INFO] [stderr] = help: the following implementations were found: [INFO] [stderr] as std::convert::From>> [INFO] [stderr] as std::convert::From>> [INFO] [stderr] as std::convert::From>> [INFO] [stderr] as std::convert::From>> [INFO] [stderr] and 2 others [INFO] [stderr] = note: required because of the requirements on the impl of `std::convert::Into>` for `common::sxd_document::dom::Root<'_>` [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0277`. [INFO] [stderr] error: Could not compile `cargo-wix`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error[E0277]: the trait bound `common::sxd_xpath::nodeset::Node<'_>: std::convert::From>` is not satisfied [INFO] [stderr] --> tests/common/mod.rs:74:11 [INFO] [stderr] | [INFO] [stderr] 74 | xpath.evaluate(&context, wxs_document.root()).unwrap().string() [INFO] [stderr] | ^^^^^^^^ the trait `std::convert::From>` is not implemented for `common::sxd_xpath::nodeset::Node<'_>` [INFO] [stderr] | [INFO] [stderr] = help: the following implementations were found: [INFO] [stderr] as std::convert::From>> [INFO] [stderr] as std::convert::From>> [INFO] [stderr] as std::convert::From>> [INFO] [stderr] as std::convert::From>> [INFO] [stderr] and 2 others [INFO] [stderr] = note: required because of the requirements on the impl of `std::convert::Into>` for `common::sxd_document::dom::Root<'_>` [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0277`. [INFO] [stderr] error: Could not compile `cargo-wix`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "a33c91c590d8424f1f5464feb2c02ae80e40aad33e6fd35bf050a02808d0b225"` [INFO] running `"docker" "rm" "-f" "a33c91c590d8424f1f5464feb2c02ae80e40aad33e6fd35bf050a02808d0b225"` [INFO] [stdout] a33c91c590d8424f1f5464feb2c02ae80e40aad33e6fd35bf050a02808d0b225