[INFO] crate shipcat 0.66.0 is already in cache [INFO] extracting crate shipcat 0.66.0 into work/ex/clippy-test-run/sources/stable/reg/shipcat/0.66.0 [INFO] extracting crate shipcat 0.66.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/shipcat/0.66.0 [INFO] validating manifest of shipcat-0.66.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 shipcat-0.66.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 shipcat-0.66.0 [INFO] finished frobbing shipcat-0.66.0 [INFO] frobbed toml for shipcat-0.66.0 written to work/ex/clippy-test-run/sources/stable/reg/shipcat/0.66.0/Cargo.toml [INFO] started frobbing shipcat-0.66.0 [INFO] finished frobbing shipcat-0.66.0 [INFO] frobbed toml for shipcat-0.66.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/shipcat/0.66.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 shipcat-0.66.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-0/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/shipcat/0.66.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] c254ce5eda36dac092d663dafd616e978afe7009810a1dd943479a612f8b370c [INFO] running `"docker" "start" "-a" "c254ce5eda36dac092d663dafd616e978afe7009810a1dd943479a612f8b370c"` [INFO] [stderr] Compiling pest v2.1.0 [INFO] [stderr] Checking loggerv v0.7.1 [INFO] [stderr] Compiling error-chain v0.12.0 [INFO] [stderr] Checking petgraph v0.4.13 [INFO] [stderr] Compiling rand_pcg v0.1.1 [INFO] [stderr] Checking uuid v0.7.2 [INFO] [stderr] Checking tokio-reactor v0.1.8 [INFO] [stderr] Checking tokio-threadpool v0.1.11 [INFO] [stderr] Compiling rand v0.6.5 [INFO] [stderr] Compiling cargo_metadata v0.6.4 [INFO] [stderr] Compiling pest_meta v2.1.0 [INFO] [stderr] Checking tokio-tcp v0.1.3 [INFO] [stderr] Compiling phf_generator v0.7.24 [INFO] [stderr] Checking tokio v0.1.15 [INFO] [stderr] Compiling phf_codegen v0.7.24 [INFO] [stderr] Compiling skeptic v0.13.4 [INFO] [stderr] Compiling pest_generator v2.1.0 [INFO] [stderr] Compiling mime_guess v2.0.0-alpha.6 [INFO] [stderr] Checking hyper v0.12.23 [INFO] [stderr] Compiling pest_derive v2.1.0 [INFO] [stderr] Compiling jenkins_api v0.5.2 [INFO] [stderr] Checking tera v0.11.20 [INFO] [stderr] Checking hyper-tls v0.3.1 [INFO] [stderr] Checking reqwest v0.9.9 [INFO] [stderr] Checking slack-hook-clux v0.7.1 [INFO] [stderr] Checking shipcat v0.66.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structs/kongfig.rs:453:13 [INFO] [stderr] | [INFO] [stderr] 453 | plugins: plugins, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `plugins` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/manifest/manifest.rs:407:9 [INFO] [stderr] | [INFO] [stderr] 407 | print!("{}\n", serde_yaml::to_string(self)?); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::print_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/manifest/filebacked.rs:246:5 [INFO] [stderr] | [INFO] [stderr] 246 | print!("{}\n", encoded); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/product/product.rs:276:5 [INFO] [stderr] | [INFO] [stderr] 276 | print!("{}\n", encoded); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/gdpr.rs:22:9 [INFO] [stderr] | [INFO] [stderr] 22 | print!("{}\n", out); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/gdpr.rs:36:9 [INFO] [stderr] | [INFO] [stderr] 36 | print!("{}\n", out); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/kube.rs:170:21 [INFO] [stderr] | [INFO] [stderr] 170 | print!("{}\n", l); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/kube.rs:191:21 [INFO] [stderr] | [INFO] [stderr] 191 | print!("{}\n", o.split_off(idx)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/helm/direct.rs:327:9 [INFO] [stderr] | [INFO] [stderr] 327 | print!("{}\n", smalldiff); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/helm/direct.rs:343:9 [INFO] [stderr] | [INFO] [stderr] 343 | write!(f, "{}\n", encoded)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/helm/direct.rs:346:9 [INFO] [stderr] | [INFO] [stderr] 346 | print!("{}\n", encoded); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/helm/direct.rs:389:9 [INFO] [stderr] | [INFO] [stderr] 389 | write!(f, "{}\n", tpl)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/helm/direct.rs:392:9 [INFO] [stderr] | [INFO] [stderr] 392 | print!("{}\n", tpl); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/kong.rs:143:5 [INFO] [stderr] | [INFO] [stderr] 143 | write!(f, "{}\n", output)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/kong.rs:176:5 [INFO] [stderr] | [INFO] [stderr] 176 | write!(f, "{}\n", output)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/graph.rs:108:5 [INFO] [stderr] | [INFO] [stderr] 108 | print!("{}\n", out); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/graph.rs:149:5 [INFO] [stderr] | [INFO] [stderr] 149 | print!("{}\n", out); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/get.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | print!("{}\n", serde_json::to_string_pretty(&output)?); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/get.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | print!("{}\n", serde_json::to_string_pretty(&output)?); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/get.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | print!("{}\n", output); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/get.rs:74:5 [INFO] [stderr] | [INFO] [stderr] 74 | print!("{}\n", serde_json::to_string_pretty(&ci)?); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/get.rs:140:5 [INFO] [stderr] | [INFO] [stderr] 140 | print!("{}\n", serde_json::to_string_pretty(&output)?); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/get.rs:198:5 [INFO] [stderr] | [INFO] [stderr] 198 | print!("{}\n", serde_yaml::to_string(&bd)?); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/get.rs:245:5 [INFO] [stderr] | [INFO] [stderr] 245 | print!("{}\n", serde_yaml::to_string(&bd)?); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/structs/kongfig.rs:453:13 [INFO] [stderr] | [INFO] [stderr] 453 | plugins: plugins, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `plugins` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/manifest/manifest.rs:407:9 [INFO] [stderr] | [INFO] [stderr] 407 | print!("{}\n", serde_yaml::to_string(self)?); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::print_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/manifest/filebacked.rs:246:5 [INFO] [stderr] | [INFO] [stderr] 246 | print!("{}\n", encoded); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/product/product.rs:276:5 [INFO] [stderr] | [INFO] [stderr] 276 | print!("{}\n", encoded); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/gdpr.rs:22:9 [INFO] [stderr] | [INFO] [stderr] 22 | print!("{}\n", out); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/gdpr.rs:36:9 [INFO] [stderr] | [INFO] [stderr] 36 | print!("{}\n", out); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/kube.rs:170:21 [INFO] [stderr] | [INFO] [stderr] 170 | print!("{}\n", l); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/kube.rs:191:21 [INFO] [stderr] | [INFO] [stderr] 191 | print!("{}\n", o.split_off(idx)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/helm/direct.rs:327:9 [INFO] [stderr] | [INFO] [stderr] 327 | print!("{}\n", smalldiff); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/helm/direct.rs:343:9 [INFO] [stderr] | [INFO] [stderr] 343 | write!(f, "{}\n", encoded)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/helm/direct.rs:346:9 [INFO] [stderr] | [INFO] [stderr] 346 | print!("{}\n", encoded); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/helm/direct.rs:389:9 [INFO] [stderr] | [INFO] [stderr] 389 | write!(f, "{}\n", tpl)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/helm/direct.rs:392:9 [INFO] [stderr] | [INFO] [stderr] 392 | print!("{}\n", tpl); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/kong.rs:143:5 [INFO] [stderr] | [INFO] [stderr] 143 | write!(f, "{}\n", output)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/kong.rs:176:5 [INFO] [stderr] | [INFO] [stderr] 176 | write!(f, "{}\n", output)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/graph.rs:108:5 [INFO] [stderr] | [INFO] [stderr] 108 | print!("{}\n", out); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/graph.rs:149:5 [INFO] [stderr] | [INFO] [stderr] 149 | print!("{}\n", out); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/get.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | print!("{}\n", serde_json::to_string_pretty(&output)?); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/get.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | print!("{}\n", serde_json::to_string_pretty(&output)?); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/get.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | print!("{}\n", output); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/get.rs:74:5 [INFO] [stderr] | [INFO] [stderr] 74 | print!("{}\n", serde_json::to_string_pretty(&ci)?); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/get.rs:140:5 [INFO] [stderr] | [INFO] [stderr] 140 | print!("{}\n", serde_json::to_string_pretty(&output)?); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/get.rs:198:5 [INFO] [stderr] | [INFO] [stderr] 198 | print!("{}\n", serde_yaml::to_string(&bd)?); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> src/get.rs:245:5 [INFO] [stderr] | [INFO] [stderr] 245 | print!("{}\n", serde_yaml::to_string(&bd)?); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/config.rs:421:17 [INFO] [stderr] | [INFO] [stderr] 421 | return Err(e.into()) // propagate normal error [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(e.into())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/structs/env.rs:17:23 [INFO] [stderr] | [INFO] [stderr] 17 | for (k, v) in *&self { [INFO] [stderr] | ^^^^^^ help: try this: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::deref_addrof)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/manifest/mod.rs:18:1 [INFO] [stderr] | [INFO] [stderr] 18 | pub mod manifest; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/product/mod.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | pub mod product; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/graph.rs:137:17 [INFO] [stderr] | [INFO] [stderr] 137 | depidx [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/graph.rs:136:30 [INFO] [stderr] | [INFO] [stderr] 136 | let depidx = graph.add_node(depnode); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/config.rs:421:17 [INFO] [stderr] | [INFO] [stderr] 421 | return Err(e.into()) // propagate normal error [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(e.into())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/structs/env.rs:17:23 [INFO] [stderr] | [INFO] [stderr] 17 | for (k, v) in *&self { [INFO] [stderr] | ^^^^^^ help: try this: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::deref_addrof)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/manifest/mod.rs:18:1 [INFO] [stderr] | [INFO] [stderr] 18 | pub mod manifest; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/product/mod.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | pub mod product; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/graph.rs:137:17 [INFO] [stderr] | [INFO] [stderr] 137 | depidx [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/graph.rs:136:30 [INFO] [stderr] | [INFO] [stderr] 136 | let depidx = graph.add_node(depnode); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/vault.rs:175:38 [INFO] [stderr] | [INFO] [stderr] 175 | .filter(|e| !e.ends_with("/")) // skip sub folders [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: you seem to want to iterate on a map's keys [INFO] [stderr] --> src/list.rs:7:19 [INFO] [stderr] | [INFO] [stderr] 7 | for (r, _) in &conf.regions { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::for_kv_map)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 7 | for r in conf.regions.keys() { [INFO] [stderr] | ^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's keys [INFO] [stderr] --> src/list.rs:15:19 [INFO] [stderr] | [INFO] [stderr] 15 | for (r, _) in &conf.locations { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 15 | for r in conf.locations.keys() { [INFO] [stderr] | ^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/slack.rs:158:9 [INFO] [stderr] | [INFO] [stderr] 158 | format!("{}", &ver[..8]) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `&ver[..8].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: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/slack.rs:166:45 [INFO] [stderr] | [INFO] [stderr] 166 | let tag = md.version_template(&ver).unwrap_or(ver.to_string()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| ver.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 `unwrap_or` followed by a function call [INFO] [stderr] --> src/slack.rs:176:47 [INFO] [stderr] | [INFO] [stderr] 176 | let v0 = md.version_template(&vers.0).unwrap_or(vers.0.to_string()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| vers.0.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/slack.rs:177:47 [INFO] [stderr] | [INFO] [stderr] 177 | let v1 = md.version_template(&vers.1).unwrap_or(vers.1.to_string()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| vers.1.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: you seem to want to iterate on a map's values [INFO] [stderr] --> src/config.rs:341:27 [INFO] [stderr] | [INFO] [stderr] 341 | for (_, v) in &data.base_urls { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 341 | for v in data.base_urls.values() { [INFO] [stderr] | ^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/config.rs:364:12 [INFO] [stderr] | [INFO] [stderr] 364 | if ver > ¤t { [INFO] [stderr] | ^^^^^^-------- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `current` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/config.rs:441:16 [INFO] [stderr] | [INFO] [stderr] 441 | if let Some(_) = self.regions.get(&context) { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 442 | | return Ok(context); [INFO] [stderr] 443 | | } [INFO] [stderr] | |_________- help: try this: `if self.regions.get(&context).is_some()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/structs/kongfig.rs:151:23 [INFO] [stderr] | [INFO] [stderr] 151 | port: port.into(), [INFO] [stderr] | ^^^^^^^^^^^ help: consider removing `.into()`: `port` [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: large size difference between variants [INFO] [stderr] --> src/structs/kongfig.rs:346:5 [INFO] [stderr] | [INFO] [stderr] 346 | ResponseTransformer(PluginBase), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::large_enum_variant)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] | [INFO] [stderr] 346 | ResponseTransformer(Box>), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/structs/kongfig.rs:374:17 [INFO] [stderr] | [INFO] [stderr] 374 | value.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: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/structs/kongfig.rs:399:28 [INFO] [stderr] | [INFO] [stderr] 399 | let en = if v.auth.unwrap_or("".into()) != "none" { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".into())` [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/structs/kongfig.rs:478:27 [INFO] [stderr] | [INFO] [stderr] 478 | name: v.username.into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `v.username` [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/structs/kongfig.rs:479:32 [INFO] [stderr] | [INFO] [stderr] 479 | client_id: v.oauth_client_id.into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `v.oauth_client_id` [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/structs/kongfig.rs:480:36 [INFO] [stderr] | [INFO] [stderr] 480 | client_secret: v.oauth_client_secret.into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `v.oauth_client_secret` [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: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/structs/resources.rs:90:44 [INFO] [stderr] | [INFO] [stderr] 90 | memory: self.requests.memory * (scalar as f64), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(scalar)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/structs/resources.rs:91:38 [INFO] [stderr] | [INFO] [stderr] 91 | cpu: self.requests.cpu * (scalar as f64), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(scalar)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/structs/resources.rs:94:42 [INFO] [stderr] | [INFO] [stderr] 94 | memory: self.limits.memory * (scalar as f64), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(scalar)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/structs/resources.rs:95:36 [INFO] [stderr] | [INFO] [stderr] 95 | cpu: self.limits.cpu * (scalar as f64), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(scalar)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/structs/rollingupdate.rs:16:20 [INFO] [stderr] | [INFO] [stderr] 16 | if n > &maxNumber { [INFO] [stderr] | ^^^^---------- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `maxNumber` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/structs/metadata.rs:25:36 [INFO] [stderr] | [INFO] [stderr] 25 | if !self.slack.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/structs/metadata.rs:28:32 [INFO] [stderr] | [INFO] [stderr] 28 | if self.slack.contains("|") { [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/structs/metadata.rs:32:31 [INFO] [stderr] | [INFO] [stderr] 32 | if gh.starts_with("@") || gh.contains("/") { [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/structs/metadata.rs:32:51 [INFO] [stderr] | [INFO] [stderr] 32 | if gh.starts_with("@") || gh.contains("/") { [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/structs/security.rs:119:9 [INFO] [stderr] | [INFO] [stderr] 119 | / match self { [INFO] [stderr] 120 | | &DataFieldType::HealthCheck => false, [INFO] [stderr] 121 | | _ => true [INFO] [stderr] 122 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 119 | match *self { [INFO] [stderr] 120 | DataFieldType::HealthCheck => false, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/structs/security.rs:125:9 [INFO] [stderr] | [INFO] [stderr] 125 | / match self { [INFO] [stderr] 126 | | &DataFieldType::FullName => false, [INFO] [stderr] 127 | | &DataFieldType::HomeAddress => false, [INFO] [stderr] 128 | | &DataFieldType::DateOfBirth => false, [INFO] [stderr] ... | [INFO] [stderr] 133 | | _ => self.is_pii() [INFO] [stderr] 134 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 125 | match *self { [INFO] [stderr] 126 | DataFieldType::FullName => false, [INFO] [stderr] 127 | DataFieldType::HomeAddress => false, [INFO] [stderr] 128 | DataFieldType::DateOfBirth => false, [INFO] [stderr] 129 | DataFieldType::BabylonUserId => false, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/vault.rs:175:38 [INFO] [stderr] | [INFO] [stderr] 175 | .filter(|e| !e.ends_with("/")) // skip sub folders [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: you seem to want to iterate on a map's keys [INFO] [stderr] --> src/list.rs:7:19 [INFO] [stderr] | [INFO] [stderr] 7 | for (r, _) in &conf.regions { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::for_kv_map)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 7 | for r in conf.regions.keys() { [INFO] [stderr] | ^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's keys [INFO] [stderr] --> src/list.rs:15:19 [INFO] [stderr] | [INFO] [stderr] 15 | for (r, _) in &conf.locations { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 15 | for r in conf.locations.keys() { [INFO] [stderr] | ^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/slack.rs:158:9 [INFO] [stderr] | [INFO] [stderr] 158 | format!("{}", &ver[..8]) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `&ver[..8].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: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/slack.rs:166:45 [INFO] [stderr] | [INFO] [stderr] 166 | let tag = md.version_template(&ver).unwrap_or(ver.to_string()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| ver.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 `unwrap_or` followed by a function call [INFO] [stderr] --> src/slack.rs:176:47 [INFO] [stderr] | [INFO] [stderr] 176 | let v0 = md.version_template(&vers.0).unwrap_or(vers.0.to_string()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| vers.0.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/slack.rs:177:47 [INFO] [stderr] | [INFO] [stderr] 177 | let v1 = md.version_template(&vers.1).unwrap_or(vers.1.to_string()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| vers.1.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: useless use of `format!` [INFO] [stderr] --> src/slack.rs:233:28 [INFO] [stderr] | [INFO] [stderr] 233 | code: Some(format!("Pod changed: [INFO] [stderr] | ____________________________^ [INFO] [stderr] 234 | | - image: \"blah:e7c1e5dd5de74b2b5da5eef76eb5bf12bdc2ac19\" [INFO] [stderr] 235 | | + image: \"blah:d4f01f5143643e75d9cc2d5e3221e82a9e1c12e5\"")), [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] 233 | code: Some("Pod changed: [INFO] [stderr] 234 | - image: \"blah:e7c1e5dd5de74b2b5da5eef76eb5bf12bdc2ac19\" [INFO] [stderr] 235 | + image: \"blah:d4f01f5143643e75d9cc2d5e3221e82a9e1c12e5\"".to_string()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/slack.rs:243:28 [INFO] [stderr] | [INFO] [stderr] 243 | code: Some(format!("Pod changed: [INFO] [stderr] | ____________________________^ [INFO] [stderr] 244 | | - value: \"somedeletedvar\" [INFO] [stderr] 245 | | - image: \"blah:abc12345678\" [INFO] [stderr] 246 | | + image: \"blah:abc23456789\"")), [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] 243 | code: Some("Pod changed: [INFO] [stderr] 244 | - value: \"somedeletedvar\" [INFO] [stderr] 245 | - image: \"blah:abc12345678\" [INFO] [stderr] 246 | + image: \"blah:abc23456789\"".to_string()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's keys [INFO] [stderr] --> src/manifest/manifest.rs:488:23 [INFO] [stderr] | [INFO] [stderr] 488 | for (k, _) in &self.env { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 488 | for k in self.env.keys() { [INFO] [stderr] | ^ ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/manifest/manifest.rs:492:27 [INFO] [stderr] | [INFO] [stderr] 492 | if k.contains("-") { [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: the function has a cyclomatic complexity of 39 [INFO] [stderr] --> src/manifest/merge.rs:78:5 [INFO] [stderr] | [INFO] [stderr] 78 | / pub fn merge(&mut self, mf: Manifest) -> Result<()> { [INFO] [stderr] 79 | | if mf.name != "" { [INFO] [stderr] 80 | | bail!("Cannot override service names in other environments"); [INFO] [stderr] 81 | | } [INFO] [stderr] ... | [INFO] [stderr] 218 | | Ok(()) [INFO] [stderr] 219 | | } [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: you seem to want to iterate on a map's values [INFO] [stderr] --> src/config.rs:341:27 [INFO] [stderr] | [INFO] [stderr] 341 | for (_, v) in &data.base_urls { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 341 | for v in data.base_urls.values() { [INFO] [stderr] | ^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/config.rs:364:12 [INFO] [stderr] | [INFO] [stderr] 364 | if ver > ¤t { [INFO] [stderr] | ^^^^^^-------- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `current` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/manifest/math.rs:22:33 [INFO] [stderr] | [INFO] [stderr] 22 | let pulltimeestimate = (((self.imageSize.unwrap()*120) as f64)/(1024 as f64)) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.imageSize.unwrap()*120)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/manifest/math.rs:22:72 [INFO] [stderr] | [INFO] [stderr] 22 | let pulltimeestimate = (((self.imageSize.unwrap()*120) as f64)/(1024 as f64)) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(1024)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/manifest/math.rs:46:13 [INFO] [stderr] | [INFO] [stderr] 46 | base = base + (res.clone() * ascale.minReplicas); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `base += (res.clone() * ascale.minReplicas)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/manifest/math.rs:47:13 [INFO] [stderr] | [INFO] [stderr] 47 | extra = extra + (res.clone() * (ascale.maxReplicas - ascale.minReplicas)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `extra += (res.clone() * (ascale.maxReplicas - ascale.minReplicas))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/manifest/math.rs:51:13 [INFO] [stderr] | [INFO] [stderr] 51 | base = base + (res.clone() * rc); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `base += (res.clone() * rc)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/manifest/math.rs:55:21 [INFO] [stderr] | [INFO] [stderr] 55 | base = base + scrsc.normalised()? * rc; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `base += scrsc.normalised()? * rc` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/manifest/math.rs:63:13 [INFO] [stderr] | [INFO] [stderr] 63 | base = base + (w.resources.normalised()? * w.replicaCount); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `base += (w.resources.normalised()? * w.replicaCount)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/manifest/math.rs:70:21 [INFO] [stderr] | [INFO] [stderr] 70 | base = base + scrsc.normalised()? * w.replicaCount; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `base += scrsc.normalised()? * w.replicaCount` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/config.rs:441:16 [INFO] [stderr] | [INFO] [stderr] 441 | if let Some(_) = self.regions.get(&context) { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 442 | | return Ok(context); [INFO] [stderr] 443 | | } [INFO] [stderr] | |_________- help: try this: `if self.regions.get(&context).is_some()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's values [INFO] [stderr] --> src/manifest/template.rs:178:23 [INFO] [stderr] | [INFO] [stderr] 178 | for (_, v) in &mut self.env { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 178 | for v in self.env.values_mut() { [INFO] [stderr] | ^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/gdpr.rs:21:73 [INFO] [stderr] | [INFO] [stderr] 21 | let out = serde_yaml::to_string(&mf.dataHandling.unwrap_or_else(|| DataHandling::default()))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `DataHandling::default` [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: you should use the `starts_with` method [INFO] [stderr] --> src/kube.rs:25:25 [INFO] [stderr] | [INFO] [stderr] 25 | if out.len() > 2 && out.chars().next() == Some('\'') { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: like this: `out.starts_with('\'')` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::chars_next_cmp)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#chars_next_cmp [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/kube.rs:119:9 [INFO] [stderr] | [INFO] [stderr] 119 | format!("--no-headers"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"--no-headers".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: needlessly taken reference of both operands [INFO] [stderr] --> src/kube.rs:132:16 [INFO] [stderr] | [INFO] [stderr] 132 | if &caps["ready"] != &caps["total"] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] help: use the values directly [INFO] [stderr] | [INFO] [stderr] 132 | if caps["ready"] != caps["total"] { [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/kube.rs:162:13 [INFO] [stderr] | [INFO] [stderr] 162 | format!("--tail=30").into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `format!("--tail=30")` [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: useless use of `format!` [INFO] [stderr] --> src/kube.rs:162:13 [INFO] [stderr] | [INFO] [stderr] 162 | format!("--tail=30").into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"--tail=30".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: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/helm/parallel.rs:41:9 [INFO] [stderr] | [INFO] [stderr] 41 | / match &r { [INFO] [stderr] 42 | | &Ok(Some(ref ud)) => debug!("{} {}", ud.mode, ud.name), [INFO] [stderr] 43 | | &Ok(None) => {}, [INFO] [stderr] 44 | | &Err(ref e) => warn!("{} error: {}", umode, e), [INFO] [stderr] 45 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 41 | match r { [INFO] [stderr] 42 | Ok(Some(ref ud)) => debug!("{} {}", ud.mode, ud.name), [INFO] [stderr] 43 | Ok(None) => {}, [INFO] [stderr] 44 | Err(ref e) => warn!("{} error: {}", umode, e), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/helm/direct.rs:44:9 [INFO] [stderr] | [INFO] [stderr] 44 | / match self { [INFO] [stderr] 45 | | &UpgradeMode::DiffOnly => write!(f, "diff"), [INFO] [stderr] 46 | | &UpgradeMode::UpgradeWait => write!(f, "blindly upgrade"), [INFO] [stderr] 47 | | &UpgradeMode::UpgradeRecreateWait => write!(f, "recreate"), [INFO] [stderr] ... | [INFO] [stderr] 51 | | &UpgradeMode::Apply => write!(f, "apply"), [INFO] [stderr] 52 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 44 | match *self { [INFO] [stderr] 45 | UpgradeMode::DiffOnly => write!(f, "diff"), [INFO] [stderr] 46 | UpgradeMode::UpgradeWait => write!(f, "blindly upgrade"), [INFO] [stderr] 47 | UpgradeMode::UpgradeRecreateWait => write!(f, "recreate"), [INFO] [stderr] 48 | UpgradeMode::UpgradeInstall => write!(f, "install"), [INFO] [stderr] 49 | UpgradeMode::UpgradeWaitMaybeRollback => write!(f, "upgrade"), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/helm/direct.rs:58:9 [INFO] [stderr] | [INFO] [stderr] 58 | / match self { [INFO] [stderr] 59 | | &UpgradeMode::DiffOnly => "diffed", [INFO] [stderr] 60 | | &UpgradeMode::UpgradeWait => "blindly upgraded", [INFO] [stderr] 61 | | &UpgradeMode::UpgradeRecreateWait => "recreated pods for", [INFO] [stderr] ... | [INFO] [stderr] 65 | | &UpgradeMode::Apply => "applied", [INFO] [stderr] 66 | | }.into() [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 58 | match *self { [INFO] [stderr] 59 | UpgradeMode::DiffOnly => "diffed", [INFO] [stderr] 60 | UpgradeMode::UpgradeWait => "blindly upgraded", [INFO] [stderr] 61 | UpgradeMode::UpgradeRecreateWait => "recreated pods for", [INFO] [stderr] 62 | UpgradeMode::UpgradeInstall => "installed", [INFO] [stderr] 63 | UpgradeMode::UpgradeWaitMaybeRollback => "upgraded", [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/helm/direct.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | assert!(ud.namespace.len() > 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!ud.namespace.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: identical conversion [INFO] [stderr] --> src/structs/kongfig.rs:151:23 [INFO] [stderr] | [INFO] [stderr] 151 | port: port.into(), [INFO] [stderr] | ^^^^^^^^^^^ help: consider removing `.into()`: `port` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/helm/direct.rs:274:9 [INFO] [stderr] | [INFO] [stderr] 274 | / match self { [INFO] [stderr] 275 | | &DiffMode::Upgrade => write!(f, "upgrade"), [INFO] [stderr] 276 | | //&DiffMode::Rollback => write!(f, "rollback"), [INFO] [stderr] 277 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 274 | match *self { [INFO] [stderr] 275 | DiffMode::Upgrade => write!(f, "upgrade"), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/helm/direct.rs:308:26 [INFO] [stderr] | [INFO] [stderr] 308 | let reason = format!("to let you be able to retry the install/reconcile"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"to let you be able to retry the install/reconcile".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: single-character string constant used as pattern [INFO] [stderr] --> src/helm/helpers.rs:10:16 [INFO] [stderr] | [INFO] [stderr] 10 | diff.split("\n").filter(|l| { [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: single-character string constant used as pattern [INFO] [stderr] --> src/helm/helpers.rs:20:27 [INFO] [stderr] | [INFO] [stderr] 20 | if !l.starts_with("+") && !l.starts_with("-") && l.contains("has changed:") { [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/helm/helpers.rs:20:50 [INFO] [stderr] | [INFO] [stderr] 20 | if !l.starts_with("+") && !l.starts_with("-") && l.contains("has changed:") { [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: identical conversion [INFO] [stderr] --> src/kong.rs:34:19 [INFO] [stderr] | [INFO] [stderr] 34 | host: data.kong.clone().config_url.into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `data.kong.clone().config_url` [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: large size difference between variants [INFO] [stderr] --> src/structs/kongfig.rs:346:5 [INFO] [stderr] | [INFO] [stderr] 346 | ResponseTransformer(PluginBase), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::large_enum_variant)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] | [INFO] [stderr] 346 | ResponseTransformer(Box>), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/kong.rs:148:43 [INFO] [stderr] | [INFO] [stderr] 148 | env::var("KONG_CONFIGURATOR_DIR").unwrap_or("/kong-configurator".into()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| "/kong-configurator".into())` [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: single-character string constant used as pattern [INFO] [stderr] --> src/structs/kongfig.rs:374:17 [INFO] [stderr] | [INFO] [stderr] 374 | value.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: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/structs/kongfig.rs:399:28 [INFO] [stderr] | [INFO] [stderr] 399 | let en = if v.auth.unwrap_or("".into()) != "none" { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".into())` [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/structs/kongfig.rs:478:27 [INFO] [stderr] | [INFO] [stderr] 478 | name: v.username.into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `v.username` [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/structs/kongfig.rs:479:32 [INFO] [stderr] | [INFO] [stderr] 479 | client_id: v.oauth_client_id.into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `v.oauth_client_id` [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/structs/kongfig.rs:480:36 [INFO] [stderr] | [INFO] [stderr] 480 | client_secret: v.oauth_client_secret.into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `v.oauth_client_secret` [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: useless use of `format!` [INFO] [stderr] --> src/graph.rs:106:9 [INFO] [stderr] | [INFO] [stderr] 106 | format!("{}", serde_yaml::to_string(&graph)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `serde_yaml::to_string(&graph)?.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] = 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: useless use of `format!` [INFO] [stderr] --> src/graph.rs:147:9 [INFO] [stderr] | [INFO] [stderr] 147 | format!("{}", serde_yaml::to_string(&graph)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `serde_yaml::to_string(&graph)?.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] = 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: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/get.rs:120:34 [INFO] [stderr] | [INFO] [stderr] 120 | uris: k.uris.unwrap_or("".into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".into())` [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/get.rs:121:36 [INFO] [stderr] | [INFO] [stderr] 121 | hosts: k.hosts.unwrap_or("".into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".into())` [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/get.rs:132:28 [INFO] [stderr] | [INFO] [stderr] 132 | uris: api.uris.unwrap_or("".into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".into())` [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/get.rs:133:30 [INFO] [stderr] | [INFO] [stderr] 133 | hosts: api.hosts.unwrap_or("".into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".into())` [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 want to iterate on a map's values [INFO] [stderr] --> src/get.rs:188:29 [INFO] [stderr] | [INFO] [stderr] 188 | for (_, mut teamtot) in &mut bd.teams { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 188 | for mut teamtot in bd.teams.values_mut() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's values [INFO] [stderr] --> src/get.rs:235:29 [INFO] [stderr] | [INFO] [stderr] 235 | for (_, mut teamtot) in &mut bd.teams { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 235 | for mut teamtot in bd.teams.values_mut() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/structs/resources.rs:90:44 [INFO] [stderr] | [INFO] [stderr] 90 | memory: self.requests.memory * (scalar as f64), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(scalar)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/structs/resources.rs:91:38 [INFO] [stderr] | [INFO] [stderr] 91 | cpu: self.requests.cpu * (scalar as f64), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(scalar)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/structs/resources.rs:94:42 [INFO] [stderr] | [INFO] [stderr] 94 | memory: self.limits.memory * (scalar as f64), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(scalar)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/structs/resources.rs:95:36 [INFO] [stderr] | [INFO] [stderr] 95 | cpu: self.limits.cpu * (scalar as f64), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(scalar)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/structs/rollingupdate.rs:16:20 [INFO] [stderr] | [INFO] [stderr] 16 | if n > &maxNumber { [INFO] [stderr] | ^^^^---------- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `maxNumber` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/structs/metadata.rs:25:36 [INFO] [stderr] | [INFO] [stderr] 25 | if !self.slack.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/structs/metadata.rs:28:32 [INFO] [stderr] | [INFO] [stderr] 28 | if self.slack.contains("|") { [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/structs/metadata.rs:32:31 [INFO] [stderr] | [INFO] [stderr] 32 | if gh.starts_with("@") || gh.contains("/") { [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/structs/metadata.rs:32:51 [INFO] [stderr] | [INFO] [stderr] 32 | if gh.starts_with("@") || gh.contains("/") { [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/structs/security.rs:119:9 [INFO] [stderr] | [INFO] [stderr] 119 | / match self { [INFO] [stderr] 120 | | &DataFieldType::HealthCheck => false, [INFO] [stderr] 121 | | _ => true [INFO] [stderr] 122 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 119 | match *self { [INFO] [stderr] 120 | DataFieldType::HealthCheck => false, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/structs/security.rs:125:9 [INFO] [stderr] | [INFO] [stderr] 125 | / match self { [INFO] [stderr] 126 | | &DataFieldType::FullName => false, [INFO] [stderr] 127 | | &DataFieldType::HomeAddress => false, [INFO] [stderr] 128 | | &DataFieldType::DateOfBirth => false, [INFO] [stderr] ... | [INFO] [stderr] 133 | | _ => self.is_pii() [INFO] [stderr] 134 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 125 | match *self { [INFO] [stderr] 126 | DataFieldType::FullName => false, [INFO] [stderr] 127 | DataFieldType::HomeAddress => false, [INFO] [stderr] 128 | DataFieldType::DateOfBirth => false, [INFO] [stderr] 129 | DataFieldType::BabylonUserId => false, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's keys [INFO] [stderr] --> src/manifest/manifest.rs:488:23 [INFO] [stderr] | [INFO] [stderr] 488 | for (k, _) in &self.env { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 488 | for k in self.env.keys() { [INFO] [stderr] | ^ ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/manifest/manifest.rs:492:27 [INFO] [stderr] | [INFO] [stderr] 492 | if k.contains("-") { [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: identical conversion [INFO] [stderr] --> src/manifest/filebacked.rs:261:61 [INFO] [stderr] | [INFO] [stderr] 261 | let mf = Manifest::completed("fake-storage", &conf, "dev-uk".into()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"dev-uk"` [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/manifest/filebacked.rs:276:57 [INFO] [stderr] | [INFO] [stderr] 276 | let mf = Manifest::completed("fake-ask", &conf, "dev-uk".into()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"dev-uk"` [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: the function has a cyclomatic complexity of 39 [INFO] [stderr] --> src/manifest/merge.rs:78:5 [INFO] [stderr] | [INFO] [stderr] 78 | / pub fn merge(&mut self, mf: Manifest) -> Result<()> { [INFO] [stderr] 79 | | if mf.name != "" { [INFO] [stderr] 80 | | bail!("Cannot override service names in other environments"); [INFO] [stderr] 81 | | } [INFO] [stderr] ... | [INFO] [stderr] 218 | | Ok(()) [INFO] [stderr] 219 | | } [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: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/manifest/math.rs:22:33 [INFO] [stderr] | [INFO] [stderr] 22 | let pulltimeestimate = (((self.imageSize.unwrap()*120) as f64)/(1024 as f64)) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.imageSize.unwrap()*120)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/manifest/math.rs:22:72 [INFO] [stderr] | [INFO] [stderr] 22 | let pulltimeestimate = (((self.imageSize.unwrap()*120) as f64)/(1024 as f64)) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(1024)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/manifest/math.rs:46:13 [INFO] [stderr] | [INFO] [stderr] 46 | base = base + (res.clone() * ascale.minReplicas); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `base += (res.clone() * ascale.minReplicas)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/manifest/math.rs:47:13 [INFO] [stderr] | [INFO] [stderr] 47 | extra = extra + (res.clone() * (ascale.maxReplicas - ascale.minReplicas)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `extra += (res.clone() * (ascale.maxReplicas - ascale.minReplicas))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/manifest/math.rs:51:13 [INFO] [stderr] | [INFO] [stderr] 51 | base = base + (res.clone() * rc); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `base += (res.clone() * rc)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/manifest/math.rs:55:21 [INFO] [stderr] | [INFO] [stderr] 55 | base = base + scrsc.normalised()? * rc; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `base += scrsc.normalised()? * rc` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/manifest/math.rs:63:13 [INFO] [stderr] | [INFO] [stderr] 63 | base = base + (w.resources.normalised()? * w.replicaCount); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `base += (w.resources.normalised()? * w.replicaCount)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/manifest/math.rs:70:21 [INFO] [stderr] | [INFO] [stderr] 70 | base = base + scrsc.normalised()? * w.replicaCount; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `base += scrsc.normalised()? * w.replicaCount` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's values [INFO] [stderr] --> src/manifest/template.rs:178:23 [INFO] [stderr] | [INFO] [stderr] 178 | for (_, v) in &mut self.env { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 178 | for v in self.env.values_mut() { [INFO] [stderr] | ^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/gdpr.rs:21:73 [INFO] [stderr] | [INFO] [stderr] 21 | let out = serde_yaml::to_string(&mf.dataHandling.unwrap_or_else(|| DataHandling::default()))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `DataHandling::default` [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: you should use the `starts_with` method [INFO] [stderr] --> src/kube.rs:25:25 [INFO] [stderr] | [INFO] [stderr] 25 | if out.len() > 2 && out.chars().next() == Some('\'') { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: like this: `out.starts_with('\'')` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::chars_next_cmp)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#chars_next_cmp [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/kube.rs:119:9 [INFO] [stderr] | [INFO] [stderr] 119 | format!("--no-headers"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"--no-headers".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: needlessly taken reference of both operands [INFO] [stderr] --> src/kube.rs:132:16 [INFO] [stderr] | [INFO] [stderr] 132 | if &caps["ready"] != &caps["total"] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] help: use the values directly [INFO] [stderr] | [INFO] [stderr] 132 | if caps["ready"] != caps["total"] { [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/kube.rs:162:13 [INFO] [stderr] | [INFO] [stderr] 162 | format!("--tail=30").into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `format!("--tail=30")` [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: useless use of `format!` [INFO] [stderr] --> src/kube.rs:162:13 [INFO] [stderr] | [INFO] [stderr] 162 | format!("--tail=30").into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"--tail=30".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: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/helm/parallel.rs:41:9 [INFO] [stderr] | [INFO] [stderr] 41 | / match &r { [INFO] [stderr] 42 | | &Ok(Some(ref ud)) => debug!("{} {}", ud.mode, ud.name), [INFO] [stderr] 43 | | &Ok(None) => {}, [INFO] [stderr] 44 | | &Err(ref e) => warn!("{} error: {}", umode, e), [INFO] [stderr] 45 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 41 | match r { [INFO] [stderr] 42 | Ok(Some(ref ud)) => debug!("{} {}", ud.mode, ud.name), [INFO] [stderr] 43 | Ok(None) => {}, [INFO] [stderr] 44 | Err(ref e) => warn!("{} error: {}", umode, e), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/helm/direct.rs:44:9 [INFO] [stderr] | [INFO] [stderr] 44 | / match self { [INFO] [stderr] 45 | | &UpgradeMode::DiffOnly => write!(f, "diff"), [INFO] [stderr] 46 | | &UpgradeMode::UpgradeWait => write!(f, "blindly upgrade"), [INFO] [stderr] 47 | | &UpgradeMode::UpgradeRecreateWait => write!(f, "recreate"), [INFO] [stderr] ... | [INFO] [stderr] 51 | | &UpgradeMode::Apply => write!(f, "apply"), [INFO] [stderr] 52 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 44 | match *self { [INFO] [stderr] 45 | UpgradeMode::DiffOnly => write!(f, "diff"), [INFO] [stderr] 46 | UpgradeMode::UpgradeWait => write!(f, "blindly upgrade"), [INFO] [stderr] 47 | UpgradeMode::UpgradeRecreateWait => write!(f, "recreate"), [INFO] [stderr] 48 | UpgradeMode::UpgradeInstall => write!(f, "install"), [INFO] [stderr] 49 | UpgradeMode::UpgradeWaitMaybeRollback => write!(f, "upgrade"), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/helm/direct.rs:58:9 [INFO] [stderr] | [INFO] [stderr] 58 | / match self { [INFO] [stderr] 59 | | &UpgradeMode::DiffOnly => "diffed", [INFO] [stderr] 60 | | &UpgradeMode::UpgradeWait => "blindly upgraded", [INFO] [stderr] 61 | | &UpgradeMode::UpgradeRecreateWait => "recreated pods for", [INFO] [stderr] ... | [INFO] [stderr] 65 | | &UpgradeMode::Apply => "applied", [INFO] [stderr] 66 | | }.into() [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 58 | match *self { [INFO] [stderr] 59 | UpgradeMode::DiffOnly => "diffed", [INFO] [stderr] 60 | UpgradeMode::UpgradeWait => "blindly upgraded", [INFO] [stderr] 61 | UpgradeMode::UpgradeRecreateWait => "recreated pods for", [INFO] [stderr] 62 | UpgradeMode::UpgradeInstall => "installed", [INFO] [stderr] 63 | UpgradeMode::UpgradeWaitMaybeRollback => "upgraded", [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/helm/direct.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | assert!(ud.namespace.len() > 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!ud.namespace.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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/helm/direct.rs:274:9 [INFO] [stderr] | [INFO] [stderr] 274 | / match self { [INFO] [stderr] 275 | | &DiffMode::Upgrade => write!(f, "upgrade"), [INFO] [stderr] 276 | | //&DiffMode::Rollback => write!(f, "rollback"), [INFO] [stderr] 277 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 274 | match *self { [INFO] [stderr] 275 | DiffMode::Upgrade => write!(f, "upgrade"), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/helm/direct.rs:308:26 [INFO] [stderr] | [INFO] [stderr] 308 | let reason = format!("to let you be able to retry the install/reconcile"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"to let you be able to retry the install/reconcile".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: identical conversion [INFO] [stderr] --> src/helm/direct.rs:559:55 [INFO] [stderr] | [INFO] [stderr] 559 | let mf = Manifest::stubbed("fake-ask", &conf, "dev-uk".into()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"dev-uk"` [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: single-character string constant used as pattern [INFO] [stderr] --> src/helm/helpers.rs:10:16 [INFO] [stderr] | [INFO] [stderr] 10 | diff.split("\n").filter(|l| { [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: single-character string constant used as pattern [INFO] [stderr] --> src/helm/helpers.rs:20:27 [INFO] [stderr] | [INFO] [stderr] 20 | if !l.starts_with("+") && !l.starts_with("-") && l.contains("has changed:") { [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/helm/helpers.rs:20:50 [INFO] [stderr] | [INFO] [stderr] 20 | if !l.starts_with("+") && !l.starts_with("-") && l.contains("has changed:") { [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: identical conversion [INFO] [stderr] --> src/kong.rs:34:19 [INFO] [stderr] | [INFO] [stderr] 34 | host: data.kong.clone().config_url.into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `data.kong.clone().config_url` [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 `unwrap_or` followed by a function call [INFO] [stderr] --> src/kong.rs:148:43 [INFO] [stderr] | [INFO] [stderr] 148 | env::var("KONG_CONFIGURATOR_DIR").unwrap_or("/kong-configurator".into()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| "/kong-configurator".into())` [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: useless use of `format!` [INFO] [stderr] --> src/graph.rs:106:9 [INFO] [stderr] | [INFO] [stderr] 106 | format!("{}", serde_yaml::to_string(&graph)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `serde_yaml::to_string(&graph)?.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] = 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: useless use of `format!` [INFO] [stderr] --> src/graph.rs:147:9 [INFO] [stderr] | [INFO] [stderr] 147 | format!("{}", serde_yaml::to_string(&graph)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `serde_yaml::to_string(&graph)?.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] = 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: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/get.rs:120:34 [INFO] [stderr] | [INFO] [stderr] 120 | uris: k.uris.unwrap_or("".into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".into())` [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/get.rs:121:36 [INFO] [stderr] | [INFO] [stderr] 121 | hosts: k.hosts.unwrap_or("".into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".into())` [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/get.rs:132:28 [INFO] [stderr] | [INFO] [stderr] 132 | uris: api.uris.unwrap_or("".into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".into())` [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/get.rs:133:30 [INFO] [stderr] | [INFO] [stderr] 133 | hosts: api.hosts.unwrap_or("".into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".into())` [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 want to iterate on a map's values [INFO] [stderr] --> src/get.rs:188:29 [INFO] [stderr] | [INFO] [stderr] 188 | for (_, mut teamtot) in &mut bd.teams { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 188 | for mut teamtot in bd.teams.values_mut() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's values [INFO] [stderr] --> src/get.rs:235:29 [INFO] [stderr] | [INFO] [stderr] 235 | for (_, mut teamtot) in &mut bd.teams { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 235 | for mut teamtot in bd.teams.values_mut() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> src/main.rs:20:12 [INFO] [stderr] | [INFO] [stderr] 20 | if let Ok(_) = env::var("CIRCLECI") { [INFO] [stderr] | _____- ^^^^^ [INFO] [stderr] 21 | | // https://github.com/Babylonpartners/shipcat/issues/160 [INFO] [stderr] 22 | | // only print debug implementation rather than unwinding [INFO] [stderr] 23 | | warn!("{:?}", e); [INFO] [stderr] ... | [INFO] [stderr] 28 | | } [INFO] [stderr] 29 | | } [INFO] [stderr] | |_____- help: try this: `if env::var("CIRCLECI").is_ok()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> src/main.rs:20:12 [INFO] [stderr] | [INFO] [stderr] 20 | if let Ok(_) = env::var("CIRCLECI") { [INFO] [stderr] | _____- ^^^^^ [INFO] [stderr] 21 | | // https://github.com/Babylonpartners/shipcat/issues/160 [INFO] [stderr] 22 | | // only print debug implementation rather than unwinding [INFO] [stderr] 23 | | warn!("{:?}", e); [INFO] [stderr] ... | [INFO] [stderr] 28 | | } [INFO] [stderr] 29 | | } [INFO] [stderr] | |_____- help: try this: `if env::var("CIRCLECI").is_ok()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:422:16 [INFO] [stderr] | [INFO] [stderr] 422 | if let Some(_) = a.subcommand_matches("resources") { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 423 | | if let Some(r) = a.value_of("region") { [INFO] [stderr] 424 | | let res = shipcat::get::resources(&conf, r.into()); [INFO] [stderr] 425 | | result_exit(args.subcommand_name().unwrap(), res) [INFO] [stderr] ... | [INFO] [stderr] 429 | | } [INFO] [stderr] 430 | | } [INFO] [stderr] | |_________- help: try this: `if a.subcommand_matches("resources").is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/main.rs:424:58 [INFO] [stderr] | [INFO] [stderr] 424 | let res = shipcat::get::resources(&conf, r.into()); [INFO] [stderr] | ^^^^^^^^ help: consider removing `.into()`: `r` [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: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:435:16 [INFO] [stderr] | [INFO] [stderr] 435 | if let Some(_) = a.subcommand_matches("versions") { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 436 | | let res = shipcat::get::versions(&conf, ®ion); [INFO] [stderr] 437 | | result_exit(args.subcommand_name().unwrap(), res) [INFO] [stderr] 438 | | } [INFO] [stderr] | |_________- help: try this: `if a.subcommand_matches("versions").is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:439:16 [INFO] [stderr] | [INFO] [stderr] 439 | if let Some(_) = a.subcommand_matches("images") { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 440 | | let res = shipcat::get::images(&conf, ®ion); [INFO] [stderr] 441 | | result_exit(args.subcommand_name().unwrap(), res) [INFO] [stderr] 442 | | } [INFO] [stderr] | |_________- help: try this: `if a.subcommand_matches("images").is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:443:16 [INFO] [stderr] | [INFO] [stderr] 443 | if let Some(_) = a.subcommand_matches("codeowners") { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 444 | | let res = shipcat::get::codeowners(&conf, ®ion); [INFO] [stderr] 445 | | result_exit(args.subcommand_name().unwrap(), res) [INFO] [stderr] 446 | | } [INFO] [stderr] | |_________- help: try this: `if a.subcommand_matches("codeowners").is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:447:16 [INFO] [stderr] | [INFO] [stderr] 447 | if let Some(_) = a.subcommand_matches("apistatus") { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 448 | | let res = shipcat::get::apistatus(&conf, ®ion); [INFO] [stderr] 449 | | result_exit(args.subcommand_name().unwrap(), res) [INFO] [stderr] 450 | | } [INFO] [stderr] | |_________- help: try this: `if a.subcommand_matches("apistatus").is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:451:16 [INFO] [stderr] | [INFO] [stderr] 451 | if let Some(_) = a.subcommand_matches("clusterinfo") { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 452 | | assert!(a.is_present("region"), "explicit region needed for clusterinfo"); [INFO] [stderr] 453 | | let res = shipcat::get::clusterinfo(&conf, ®ion); [INFO] [stderr] 454 | | result_exit(args.subcommand_name().unwrap(), res); [INFO] [stderr] 455 | | } [INFO] [stderr] | |_________- help: try this: `if a.subcommand_matches("clusterinfo").is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 30 [INFO] [stderr] --> src/main.rs:513:1 [INFO] [stderr] | [INFO] [stderr] 513 | / fn handle_secret_using_commands(args: &ArgMatches, region: &str, conf: &mut Config) { [INFO] [stderr] 514 | | // Read and validate shipcat.conf [INFO] [stderr] 515 | | // Note that we do not fill in secrets unless ew are in the few subcommands that need it: [INFO] [stderr] 516 | | // 1. validate --secret + secret verify-region [INFO] [stderr] ... | [INFO] [stderr] 675 | | } [INFO] [stderr] 676 | | } [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: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:592:16 [INFO] [stderr] | [INFO] [stderr] 592 | if let Some(_) = a.subcommand_matches("history") { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 593 | | let res = shipcat::helm::history(&svc, &conf, ®ion); [INFO] [stderr] 594 | | result_exit(a.subcommand_name().unwrap(), res) [INFO] [stderr] 595 | | } [INFO] [stderr] | |_________- help: try this: `if a.subcommand_matches("history").is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:597:16 [INFO] [stderr] | [INFO] [stderr] 597 | if let Some(_) = a.subcommand_matches("rollback") { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 598 | | let res = shipcat::helm::direct::rollback_wrapper(&svc, &conf, ®ion); [INFO] [stderr] 599 | | result_exit(a.subcommand_name().unwrap(), res) [INFO] [stderr] 600 | | } [INFO] [stderr] | |_________- help: try this: `if a.subcommand_matches("rollback").is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:602:16 [INFO] [stderr] | [INFO] [stderr] 602 | if let Some(_) = a.subcommand_matches("values") { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 603 | | //let _output = b.value_of("output").map(String::from); [INFO] [stderr] 604 | | let res = shipcat::helm::direct::values_wrapper(svc, [INFO] [stderr] 605 | | ®ion, &conf, ver.clone()); [INFO] [stderr] 606 | | result_exit(a.subcommand_name().unwrap(), res) [INFO] [stderr] 607 | | } [INFO] [stderr] | |_________- help: try this: `if a.subcommand_matches("values").is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:608:16 [INFO] [stderr] | [INFO] [stderr] 608 | if let Some(_) = a.subcommand_matches("template") { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 609 | | //let _output = b.value_of("output").map(String::from); [INFO] [stderr] 610 | | let output = None; [INFO] [stderr] 611 | | let mock = false; // not with this entry point [INFO] [stderr] ... | [INFO] [stderr] 614 | | result_exit(a.subcommand_name().unwrap(), res) [INFO] [stderr] 615 | | } [INFO] [stderr] | |_________- help: try this: `if a.subcommand_matches("template").is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:629:21 [INFO] [stderr] | [INFO] [stderr] 629 | else if let Some(_) = a.subcommand_matches("install") { [INFO] [stderr] | ______________- ^^^^^^^ [INFO] [stderr] 630 | | shipcat::helm::UpgradeMode::UpgradeInstall [INFO] [stderr] 631 | | } [INFO] [stderr] 632 | | else if let Some(_) = a.subcommand_matches("diff") { [INFO] [stderr] ... | [INFO] [stderr] 639 | | unreachable!("Helm Subcommand valid, but not implemented") [INFO] [stderr] 640 | | }; [INFO] [stderr] | |_________- help: try this: `if a.subcommand_matches("install").is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:632:21 [INFO] [stderr] | [INFO] [stderr] 632 | else if let Some(_) = a.subcommand_matches("diff") { [INFO] [stderr] | ______________- ^^^^^^^ [INFO] [stderr] 633 | | shipcat::helm::UpgradeMode::DiffOnly [INFO] [stderr] 634 | | } [INFO] [stderr] 635 | | else if let Some(_) = a.subcommand_matches("recreate") { [INFO] [stderr] ... | [INFO] [stderr] 639 | | unreachable!("Helm Subcommand valid, but not implemented") [INFO] [stderr] 640 | | }; [INFO] [stderr] | |_________- help: try this: `if a.subcommand_matches("diff").is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:635:21 [INFO] [stderr] | [INFO] [stderr] 635 | else if let Some(_) = a.subcommand_matches("recreate") { [INFO] [stderr] | ______________- ^^^^^^^ [INFO] [stderr] 636 | | shipcat::helm::UpgradeMode::UpgradeRecreateWait [INFO] [stderr] 637 | | } [INFO] [stderr] 638 | | else { [INFO] [stderr] 639 | | unreachable!("Helm Subcommand valid, but not implemented") [INFO] [stderr] 640 | | }; [INFO] [stderr] | |_________- help: try this: `if a.subcommand_matches("recreate").is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:666:20 [INFO] [stderr] | [INFO] [stderr] 666 | if let Some(_) = b.subcommand_matches("diff") { [INFO] [stderr] | _____________- ^^^^^^^ [INFO] [stderr] 667 | | let res = shipcat::cluster::helm_diff(&conf, ®ion, jobs); [INFO] [stderr] 668 | | result_exit(args.subcommand_name().unwrap(), res) [INFO] [stderr] 669 | | } [INFO] [stderr] ... | [INFO] [stderr] 672 | | result_exit(args.subcommand_name().unwrap(), res) [INFO] [stderr] 673 | | } [INFO] [stderr] | |_____________- help: try this: `if b.subcommand_matches("diff").is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:670:25 [INFO] [stderr] | [INFO] [stderr] 670 | else if let Some(_) = b.subcommand_matches("reconcile") { [INFO] [stderr] | __________________- ^^^^^^^ [INFO] [stderr] 671 | | let res = shipcat::cluster::helm_reconcile(&conf, ®ion, jobs); [INFO] [stderr] 672 | | result_exit(args.subcommand_name().unwrap(), res) [INFO] [stderr] 673 | | } [INFO] [stderr] | |_____________- help: try this: `if b.subcommand_matches("reconcile").is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:716:16 [INFO] [stderr] | [INFO] [stderr] 716 | if let Some(_) = a.subcommand_matches("latest") { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 717 | | let res = shipcat::jenkins::latest_build(&svc, ®ion); [INFO] [stderr] 718 | | result_exit(a.subcommand_name().unwrap(), res) [INFO] [stderr] 719 | | } [INFO] [stderr] | |_________- help: try this: `if a.subcommand_matches("latest").is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:729:16 [INFO] [stderr] | [INFO] [stderr] 729 | if let Some(_) = a.subcommand_matches("history") { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 730 | | let res = shipcat::jenkins::history(&svc, ®ion); [INFO] [stderr] 731 | | result_exit(a.subcommand_name().unwrap(), res) [INFO] [stderr] 732 | | } [INFO] [stderr] | |_________- help: try this: `if a.subcommand_matches("history").is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:422:16 [INFO] [stderr] | [INFO] [stderr] 422 | if let Some(_) = a.subcommand_matches("resources") { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 423 | | if let Some(r) = a.value_of("region") { [INFO] [stderr] 424 | | let res = shipcat::get::resources(&conf, r.into()); [INFO] [stderr] 425 | | result_exit(args.subcommand_name().unwrap(), res) [INFO] [stderr] ... | [INFO] [stderr] 429 | | } [INFO] [stderr] 430 | | } [INFO] [stderr] | |_________- help: try this: `if a.subcommand_matches("resources").is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/main.rs:424:58 [INFO] [stderr] | [INFO] [stderr] 424 | let res = shipcat::get::resources(&conf, r.into()); [INFO] [stderr] | ^^^^^^^^ help: consider removing `.into()`: `r` [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: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:435:16 [INFO] [stderr] | [INFO] [stderr] 435 | if let Some(_) = a.subcommand_matches("versions") { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 436 | | let res = shipcat::get::versions(&conf, ®ion); [INFO] [stderr] 437 | | result_exit(args.subcommand_name().unwrap(), res) [INFO] [stderr] 438 | | } [INFO] [stderr] | |_________- help: try this: `if a.subcommand_matches("versions").is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:439:16 [INFO] [stderr] | [INFO] [stderr] 439 | if let Some(_) = a.subcommand_matches("images") { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 440 | | let res = shipcat::get::images(&conf, ®ion); [INFO] [stderr] 441 | | result_exit(args.subcommand_name().unwrap(), res) [INFO] [stderr] 442 | | } [INFO] [stderr] | |_________- help: try this: `if a.subcommand_matches("images").is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:443:16 [INFO] [stderr] | [INFO] [stderr] 443 | if let Some(_) = a.subcommand_matches("codeowners") { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 444 | | let res = shipcat::get::codeowners(&conf, ®ion); [INFO] [stderr] 445 | | result_exit(args.subcommand_name().unwrap(), res) [INFO] [stderr] 446 | | } [INFO] [stderr] | |_________- help: try this: `if a.subcommand_matches("codeowners").is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:447:16 [INFO] [stderr] | [INFO] [stderr] 447 | if let Some(_) = a.subcommand_matches("apistatus") { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 448 | | let res = shipcat::get::apistatus(&conf, ®ion); [INFO] [stderr] 449 | | result_exit(args.subcommand_name().unwrap(), res) [INFO] [stderr] 450 | | } [INFO] [stderr] | |_________- help: try this: `if a.subcommand_matches("apistatus").is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:451:16 [INFO] [stderr] | [INFO] [stderr] 451 | if let Some(_) = a.subcommand_matches("clusterinfo") { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 452 | | assert!(a.is_present("region"), "explicit region needed for clusterinfo"); [INFO] [stderr] 453 | | let res = shipcat::get::clusterinfo(&conf, ®ion); [INFO] [stderr] 454 | | result_exit(args.subcommand_name().unwrap(), res); [INFO] [stderr] 455 | | } [INFO] [stderr] | |_________- help: try this: `if a.subcommand_matches("clusterinfo").is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 30 [INFO] [stderr] --> src/main.rs:513:1 [INFO] [stderr] | [INFO] [stderr] 513 | / fn handle_secret_using_commands(args: &ArgMatches, region: &str, conf: &mut Config) { [INFO] [stderr] 514 | | // Read and validate shipcat.conf [INFO] [stderr] 515 | | // Note that we do not fill in secrets unless ew are in the few subcommands that need it: [INFO] [stderr] 516 | | // 1. validate --secret + secret verify-region [INFO] [stderr] ... | [INFO] [stderr] 675 | | } [INFO] [stderr] 676 | | } [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: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:592:16 [INFO] [stderr] | [INFO] [stderr] 592 | if let Some(_) = a.subcommand_matches("history") { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 593 | | let res = shipcat::helm::history(&svc, &conf, ®ion); [INFO] [stderr] 594 | | result_exit(a.subcommand_name().unwrap(), res) [INFO] [stderr] 595 | | } [INFO] [stderr] | |_________- help: try this: `if a.subcommand_matches("history").is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:597:16 [INFO] [stderr] | [INFO] [stderr] 597 | if let Some(_) = a.subcommand_matches("rollback") { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 598 | | let res = shipcat::helm::direct::rollback_wrapper(&svc, &conf, ®ion); [INFO] [stderr] 599 | | result_exit(a.subcommand_name().unwrap(), res) [INFO] [stderr] 600 | | } [INFO] [stderr] | |_________- help: try this: `if a.subcommand_matches("rollback").is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:602:16 [INFO] [stderr] | [INFO] [stderr] 602 | if let Some(_) = a.subcommand_matches("values") { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 603 | | //let _output = b.value_of("output").map(String::from); [INFO] [stderr] 604 | | let res = shipcat::helm::direct::values_wrapper(svc, [INFO] [stderr] 605 | | ®ion, &conf, ver.clone()); [INFO] [stderr] 606 | | result_exit(a.subcommand_name().unwrap(), res) [INFO] [stderr] 607 | | } [INFO] [stderr] | |_________- help: try this: `if a.subcommand_matches("values").is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:608:16 [INFO] [stderr] | [INFO] [stderr] 608 | if let Some(_) = a.subcommand_matches("template") { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 609 | | //let _output = b.value_of("output").map(String::from); [INFO] [stderr] 610 | | let output = None; [INFO] [stderr] 611 | | let mock = false; // not with this entry point [INFO] [stderr] ... | [INFO] [stderr] 614 | | result_exit(a.subcommand_name().unwrap(), res) [INFO] [stderr] 615 | | } [INFO] [stderr] | |_________- help: try this: `if a.subcommand_matches("template").is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:629:21 [INFO] [stderr] | [INFO] [stderr] 629 | else if let Some(_) = a.subcommand_matches("install") { [INFO] [stderr] | ______________- ^^^^^^^ [INFO] [stderr] 630 | | shipcat::helm::UpgradeMode::UpgradeInstall [INFO] [stderr] 631 | | } [INFO] [stderr] 632 | | else if let Some(_) = a.subcommand_matches("diff") { [INFO] [stderr] ... | [INFO] [stderr] 639 | | unreachable!("Helm Subcommand valid, but not implemented") [INFO] [stderr] 640 | | }; [INFO] [stderr] | |_________- help: try this: `if a.subcommand_matches("install").is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:632:21 [INFO] [stderr] | [INFO] [stderr] 632 | else if let Some(_) = a.subcommand_matches("diff") { [INFO] [stderr] | ______________- ^^^^^^^ [INFO] [stderr] 633 | | shipcat::helm::UpgradeMode::DiffOnly [INFO] [stderr] 634 | | } [INFO] [stderr] 635 | | else if let Some(_) = a.subcommand_matches("recreate") { [INFO] [stderr] ... | [INFO] [stderr] 639 | | unreachable!("Helm Subcommand valid, but not implemented") [INFO] [stderr] 640 | | }; [INFO] [stderr] | |_________- help: try this: `if a.subcommand_matches("diff").is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:635:21 [INFO] [stderr] | [INFO] [stderr] 635 | else if let Some(_) = a.subcommand_matches("recreate") { [INFO] [stderr] | ______________- ^^^^^^^ [INFO] [stderr] 636 | | shipcat::helm::UpgradeMode::UpgradeRecreateWait [INFO] [stderr] 637 | | } [INFO] [stderr] 638 | | else { [INFO] [stderr] 639 | | unreachable!("Helm Subcommand valid, but not implemented") [INFO] [stderr] 640 | | }; [INFO] [stderr] | |_________- help: try this: `if a.subcommand_matches("recreate").is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:666:20 [INFO] [stderr] | [INFO] [stderr] 666 | if let Some(_) = b.subcommand_matches("diff") { [INFO] [stderr] | _____________- ^^^^^^^ [INFO] [stderr] 667 | | let res = shipcat::cluster::helm_diff(&conf, ®ion, jobs); [INFO] [stderr] 668 | | result_exit(args.subcommand_name().unwrap(), res) [INFO] [stderr] 669 | | } [INFO] [stderr] ... | [INFO] [stderr] 672 | | result_exit(args.subcommand_name().unwrap(), res) [INFO] [stderr] 673 | | } [INFO] [stderr] | |_____________- help: try this: `if b.subcommand_matches("diff").is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:670:25 [INFO] [stderr] | [INFO] [stderr] 670 | else if let Some(_) = b.subcommand_matches("reconcile") { [INFO] [stderr] | __________________- ^^^^^^^ [INFO] [stderr] 671 | | let res = shipcat::cluster::helm_reconcile(&conf, ®ion, jobs); [INFO] [stderr] 672 | | result_exit(args.subcommand_name().unwrap(), res) [INFO] [stderr] 673 | | } [INFO] [stderr] | |_____________- help: try this: `if b.subcommand_matches("reconcile").is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:716:16 [INFO] [stderr] | [INFO] [stderr] 716 | if let Some(_) = a.subcommand_matches("latest") { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 717 | | let res = shipcat::jenkins::latest_build(&svc, ®ion); [INFO] [stderr] 718 | | result_exit(a.subcommand_name().unwrap(), res) [INFO] [stderr] 719 | | } [INFO] [stderr] | |_________- help: try this: `if a.subcommand_matches("latest").is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:729:16 [INFO] [stderr] | [INFO] [stderr] 729 | if let Some(_) = a.subcommand_matches("history") { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 730 | | let res = shipcat::jenkins::history(&svc, ®ion); [INFO] [stderr] 731 | | result_exit(a.subcommand_name().unwrap(), res) [INFO] [stderr] 732 | | } [INFO] [stderr] | |_________- help: try this: `if a.subcommand_matches("history").is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1m 46s [INFO] running `"docker" "inspect" "c254ce5eda36dac092d663dafd616e978afe7009810a1dd943479a612f8b370c"` [INFO] running `"docker" "rm" "-f" "c254ce5eda36dac092d663dafd616e978afe7009810a1dd943479a612f8b370c"` [INFO] [stdout] c254ce5eda36dac092d663dafd616e978afe7009810a1dd943479a612f8b370c