[INFO] crate lorikeet 0.9.0 is already in cache [INFO] extracting crate lorikeet 0.9.0 into work/ex/clippy-test-run/sources/stable/reg/lorikeet/0.9.0 [INFO] extracting crate lorikeet 0.9.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/lorikeet/0.9.0 [INFO] validating manifest of lorikeet-0.9.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 lorikeet-0.9.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 lorikeet-0.9.0 [INFO] finished frobbing lorikeet-0.9.0 [INFO] frobbed toml for lorikeet-0.9.0 written to work/ex/clippy-test-run/sources/stable/reg/lorikeet/0.9.0/Cargo.toml [INFO] started frobbing lorikeet-0.9.0 [INFO] finished frobbing lorikeet-0.9.0 [INFO] frobbed toml for lorikeet-0.9.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/lorikeet/0.9.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 lorikeet-0.9.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/lorikeet/0.9.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] aa3bd36f29fe8bf4663ec944ed45d6b8edc1b18aab3a17df9e4e01e3590ca395 [INFO] running `"docker" "start" "-a" "aa3bd36f29fe8bf4663ec944ed45d6b8edc1b18aab3a17df9e4e01e3590ca395"` [INFO] [stderr] Compiling deunicode v0.4.3 [INFO] [stderr] Compiling sys-info v0.5.6 [INFO] [stderr] Compiling serde v1.0.85 [INFO] [stderr] Checking chrono v0.4.6 [INFO] [stderr] Checking yaml-rust v0.4.2 [INFO] [stderr] Checking chashmap v2.2.0 [INFO] [stderr] Checking quick-xml v0.12.4 [INFO] [stderr] Checking tokio v0.1.15 [INFO] [stderr] Compiling slug v0.1.4 [INFO] [stderr] Checking serde_yaml v0.7.5 [INFO] [stderr] Checking tera v0.11.20 [INFO] [stderr] Checking hyper v0.12.23 [INFO] [stderr] Compiling serde_json v1.0.37 [INFO] [stderr] Checking hyper-tls v0.3.1 [INFO] [stderr] Compiling jmespath v0.2.0 [INFO] [stderr] Checking reqwest v0.9.9 [INFO] [stderr] Checking lorikeet v0.9.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/submitter.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 48 | hostname: hostname, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `hostname` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/submitter.rs:49:9 [INFO] [stderr] | [INFO] [stderr] 49 | has_errors: has_errors, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `has_errors` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/yaml.rs:139:13 [INFO] [stderr] | [INFO] [stderr] 139 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/yaml.rs:140:13 [INFO] [stderr] | [INFO] [stderr] 140 | run: run, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `run` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/yaml.rs:142:13 [INFO] [stderr] | [INFO] [stderr] 142 | expect: expect, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `expect` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/yaml.rs:144:13 [INFO] [stderr] | [INFO] [stderr] 144 | filters: filters, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `filters` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/submitter.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 48 | hostname: hostname, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `hostname` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/submitter.rs:49:9 [INFO] [stderr] | [INFO] [stderr] 49 | has_errors: has_errors, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `has_errors` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/yaml.rs:139:13 [INFO] [stderr] | [INFO] [stderr] 139 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/yaml.rs:140:13 [INFO] [stderr] | [INFO] [stderr] 140 | run: run, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `run` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/yaml.rs:142:13 [INFO] [stderr] | [INFO] [stderr] 142 | expect: expect, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `expect` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/yaml.rs:144:13 [INFO] [stderr] | [INFO] [stderr] 144 | filters: filters, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `filters` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/graph.rs:36:13 [INFO] [stderr] | [INFO] [stderr] 36 | return Ok(graph); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(graph)` [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: unneeded return statement [INFO] [stderr] --> src/graph.rs:39:13 [INFO] [stderr] | [INFO] [stderr] 39 | / return Err(err_msg(format!( [INFO] [stderr] 40 | | "Could not build step graph: `{}` has a circular dependency", [INFO] [stderr] 41 | | steps[err.node_id()].name [INFO] [stderr] 42 | | ))) [INFO] [stderr] | |_______________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 39 | Err(err_msg(format!( [INFO] [stderr] 40 | "Could not build step graph: `{}` has a circular dependency", [INFO] [stderr] 41 | steps[err.node_id()].name [INFO] [stderr] 42 | ))) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/junit.rs:37:13 [INFO] [stderr] | [INFO] [stderr] 37 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/step.rs:269:9 [INFO] [stderr] | [INFO] [stderr] 269 | / return Outcome { [INFO] [stderr] 270 | | output: output_opt, [INFO] [stderr] 271 | | error: error_opt, [INFO] [stderr] 272 | | duration: start.elapsed(), [INFO] [stderr] 273 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 269 | Outcome { [INFO] [stderr] 270 | output: output_opt, [INFO] [stderr] 271 | error: error_opt, [INFO] [stderr] 272 | duration: start.elapsed(), [INFO] [stderr] 273 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/step.rs:422:17 [INFO] [stderr] | [INFO] [stderr] 422 | return Ok(output); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(output)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/step.rs:293:32 [INFO] [stderr] | [INFO] [stderr] 293 | } else { [INFO] [stderr] | ________________________________^ [INFO] [stderr] 294 | | if bashopts.full_error { [INFO] [stderr] 295 | | Err(format!( [INFO] [stderr] 296 | | "Status Code:{}\nError:{}\nOutput:{}", [INFO] [stderr] ... | [INFO] [stderr] 303 | | } [INFO] [stderr] 304 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 293 | } else if bashopts.full_error { [INFO] [stderr] 294 | Err(format!( [INFO] [stderr] 295 | "Status Code:{}\nError:{}\nOutput:{}", [INFO] [stderr] 296 | output.status.code().unwrap_or(1), [INFO] [stderr] 297 | String::from_utf8_lossy(&output.stderr), [INFO] [stderr] 298 | String::from_utf8_lossy(&output.stdout) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/step.rs:459:18 [INFO] [stderr] | [INFO] [stderr] 459 | (1000000000f32 * outcome.duration.as_secs() as f32 + nanos) / (1000000f32) [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `1_000_000_000f32` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/step.rs:459:80 [INFO] [stderr] | [INFO] [stderr] 459 | (1000000000f32 * outcome.duration.as_secs() as f32 + nanos) / (1000000f32) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_000_000f32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/graph.rs:36:13 [INFO] [stderr] | [INFO] [stderr] 36 | return Ok(graph); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(graph)` [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: unneeded return statement [INFO] [stderr] --> src/graph.rs:39:13 [INFO] [stderr] | [INFO] [stderr] 39 | / return Err(err_msg(format!( [INFO] [stderr] 40 | | "Could not build step graph: `{}` has a circular dependency", [INFO] [stderr] 41 | | steps[err.node_id()].name [INFO] [stderr] 42 | | ))) [INFO] [stderr] | |_______________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 39 | Err(err_msg(format!( [INFO] [stderr] 40 | "Could not build step graph: `{}` has a circular dependency", [INFO] [stderr] 41 | steps[err.node_id()].name [INFO] [stderr] 42 | ))) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/junit.rs:37:13 [INFO] [stderr] | [INFO] [stderr] 37 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/step.rs:544:25 [INFO] [stderr] | [INFO] [stderr] 544 | / return captures [INFO] [stderr] 545 | | .get(num) [INFO] [stderr] 546 | | .map(|val| val.as_str().into()) [INFO] [stderr] 547 | | .ok_or_else(|| { [INFO] [stderr] ... | [INFO] [stderr] 551 | | ) [INFO] [stderr] 552 | | }); [INFO] [stderr] | |_______________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 544 | captures [INFO] [stderr] 545 | .get(num) [INFO] [stderr] 546 | .map(|val| val.as_str().into()) [INFO] [stderr] 547 | .ok_or_else(|| { [INFO] [stderr] 548 | format!( [INFO] [stderr] 549 | "Could not find group number `{}` in regex `{}`", [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/step.rs:555:25 [INFO] [stderr] | [INFO] [stderr] 555 | / return captures [INFO] [stderr] 556 | | .name(&opts.group) [INFO] [stderr] 557 | | .map(|val| val.as_str().into()) [INFO] [stderr] 558 | | .ok_or_else(|| { [INFO] [stderr] ... | [INFO] [stderr] 562 | | ) [INFO] [stderr] 563 | | }); [INFO] [stderr] | |_______________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 555 | captures [INFO] [stderr] 556 | .name(&opts.group) [INFO] [stderr] 557 | .map(|val| val.as_str().into()) [INFO] [stderr] 558 | .ok_or_else(|| { [INFO] [stderr] 559 | format!( [INFO] [stderr] 560 | "Could not find group name `{}` in regex `{}`", [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/yaml.rs:72:5 [INFO] [stderr] | [INFO] [stderr] 72 | return RunType::Value(step.value.clone().unwrap_or(String::new())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RunType::Value(step.value.clone().unwrap_or(String::new()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/yaml.rs:88:5 [INFO] [stderr] | [INFO] [stderr] 88 | return ExpectType::Anything; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ExpectType::Anything` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/yaml.rs:102:5 [INFO] [stderr] | [INFO] [stderr] 102 | return filters; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `filters` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/step.rs:269:9 [INFO] [stderr] | [INFO] [stderr] 269 | / return Outcome { [INFO] [stderr] 270 | | output: output_opt, [INFO] [stderr] 271 | | error: error_opt, [INFO] [stderr] 272 | | duration: start.elapsed(), [INFO] [stderr] 273 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 269 | Outcome { [INFO] [stderr] 270 | output: output_opt, [INFO] [stderr] 271 | error: error_opt, [INFO] [stderr] 272 | duration: start.elapsed(), [INFO] [stderr] 273 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/step.rs:422:17 [INFO] [stderr] | [INFO] [stderr] 422 | return Ok(output); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(output)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/step.rs:293:32 [INFO] [stderr] | [INFO] [stderr] 293 | } else { [INFO] [stderr] | ________________________________^ [INFO] [stderr] 294 | | if bashopts.full_error { [INFO] [stderr] 295 | | Err(format!( [INFO] [stderr] 296 | | "Status Code:{}\nError:{}\nOutput:{}", [INFO] [stderr] ... | [INFO] [stderr] 303 | | } [INFO] [stderr] 304 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 293 | } else if bashopts.full_error { [INFO] [stderr] 294 | Err(format!( [INFO] [stderr] 295 | "Status Code:{}\nError:{}\nOutput:{}", [INFO] [stderr] 296 | output.status.code().unwrap_or(1), [INFO] [stderr] 297 | String::from_utf8_lossy(&output.stderr), [INFO] [stderr] 298 | String::from_utf8_lossy(&output.stdout) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/step.rs:459:18 [INFO] [stderr] | [INFO] [stderr] 459 | (1000000000f32 * outcome.duration.as_secs() as f32 + nanos) / (1000000f32) [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `1_000_000_000f32` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/step.rs:459:80 [INFO] [stderr] | [INFO] [stderr] 459 | (1000000000f32 * outcome.duration.as_secs() as f32 + nanos) / (1000000f32) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_000_000f32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/step.rs:544:25 [INFO] [stderr] | [INFO] [stderr] 544 | / return captures [INFO] [stderr] 545 | | .get(num) [INFO] [stderr] 546 | | .map(|val| val.as_str().into()) [INFO] [stderr] 547 | | .ok_or_else(|| { [INFO] [stderr] ... | [INFO] [stderr] 551 | | ) [INFO] [stderr] 552 | | }); [INFO] [stderr] | |_______________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 544 | captures [INFO] [stderr] 545 | .get(num) [INFO] [stderr] 546 | .map(|val| val.as_str().into()) [INFO] [stderr] 547 | .ok_or_else(|| { [INFO] [stderr] 548 | format!( [INFO] [stderr] 549 | "Could not find group number `{}` in regex `{}`", [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/step.rs:555:25 [INFO] [stderr] | [INFO] [stderr] 555 | / return captures [INFO] [stderr] 556 | | .name(&opts.group) [INFO] [stderr] 557 | | .map(|val| val.as_str().into()) [INFO] [stderr] 558 | | .ok_or_else(|| { [INFO] [stderr] ... | [INFO] [stderr] 562 | | ) [INFO] [stderr] 563 | | }); [INFO] [stderr] | |_______________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 555 | captures [INFO] [stderr] 556 | .name(&opts.group) [INFO] [stderr] 557 | .map(|val| val.as_str().into()) [INFO] [stderr] 558 | .ok_or_else(|| { [INFO] [stderr] 559 | format!( [INFO] [stderr] 560 | "Could not find group name `{}` in regex `{}`", [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/yaml.rs:72:5 [INFO] [stderr] | [INFO] [stderr] 72 | return RunType::Value(step.value.clone().unwrap_or(String::new())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RunType::Value(step.value.clone().unwrap_or(String::new()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/yaml.rs:88:5 [INFO] [stderr] | [INFO] [stderr] 88 | return ExpectType::Anything; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ExpectType::Anything` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/yaml.rs:102:5 [INFO] [stderr] | [INFO] [stderr] 102 | return filters; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `filters` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/graph.rs:11:12 [INFO] [stderr] | [INFO] [stderr] 11 | steps: &Vec, [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Step]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/junit.rs:14:14 [INFO] [stderr] | [INFO] [stderr] 14 | results: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: change this to: `&[StepResult]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/junit.rs:40:52 [INFO] [stderr] | [INFO] [stderr] 40 | let failure_num = results.iter().filter(|step| step.pass == false).count() - skip_num; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!step.pass` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/runner.rs:46:9 [INFO] [stderr] | [INFO] [stderr] 46 | / match cur_steps[self.index] { [INFO] [stderr] 47 | | //If it's already completed, return [INFO] [stderr] 48 | | Status::Completed(_) => { [INFO] [stderr] 49 | | return; [INFO] [stderr] 50 | | } [INFO] [stderr] 51 | | _ => (), [INFO] [stderr] 52 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 46 | if let Status::Completed(_) = cur_steps[self.index] { [INFO] [stderr] 47 | return; [INFO] [stderr] 48 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/runner.rs:62:28 [INFO] [stderr] | [INFO] [stderr] 62 | if let Some(_) = status_outcome.error { [INFO] [stderr] | _____________________- ^^^^^^^ [INFO] [stderr] 63 | | self.notify [INFO] [stderr] 64 | | .send(self.index) [INFO] [stderr] 65 | | .expect("Could not notify executor"); [INFO] [stderr] 66 | | has_error = true; [INFO] [stderr] 67 | | break; [INFO] [stderr] 68 | | } [INFO] [stderr] | |_____________________- help: try this: `if status_outcome.error.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: the loop variable `i` is used to index `steps` [INFO] [stderr] --> src/runner.rs:134:18 [INFO] [stderr] | [INFO] [stderr] 134 | for i in 0..steps.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 134 | for (i, ) in steps.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `steps` [INFO] [stderr] --> src/runner.rs:147:18 [INFO] [stderr] | [INFO] [stderr] 147 | for i in 0..steps.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 147 | for (i, ) in steps.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/graph.rs:11:12 [INFO] [stderr] | [INFO] [stderr] 11 | steps: &Vec, [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Step]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/junit.rs:14:14 [INFO] [stderr] | [INFO] [stderr] 14 | results: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: change this to: `&[StepResult]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/step.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 81 | Http(HttpVariant), [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] 81 | Http(Box), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/junit.rs:40:52 [INFO] [stderr] | [INFO] [stderr] 40 | let failure_num = results.iter().filter(|step| step.pass == false).count() - skip_num; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!step.pass` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/step.rs:109:5 [INFO] [stderr] | [INFO] [stderr] 109 | Options(HttpOptions), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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] 109 | Options(Box), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/runner.rs:46:9 [INFO] [stderr] | [INFO] [stderr] 46 | / match cur_steps[self.index] { [INFO] [stderr] 47 | | //If it's already completed, return [INFO] [stderr] 48 | | Status::Completed(_) => { [INFO] [stderr] 49 | | return; [INFO] [stderr] 50 | | } [INFO] [stderr] 51 | | _ => (), [INFO] [stderr] 52 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 46 | if let Status::Completed(_) = cur_steps[self.index] { [INFO] [stderr] 47 | return; [INFO] [stderr] 48 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/runner.rs:62:28 [INFO] [stderr] | [INFO] [stderr] 62 | if let Some(_) = status_outcome.error { [INFO] [stderr] | _____________________- ^^^^^^^ [INFO] [stderr] 63 | | self.notify [INFO] [stderr] 64 | | .send(self.index) [INFO] [stderr] 65 | | .expect("Could not notify executor"); [INFO] [stderr] 66 | | has_error = true; [INFO] [stderr] 67 | | break; [INFO] [stderr] 68 | | } [INFO] [stderr] | |_____________________- help: try this: `if status_outcome.error.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: the loop variable `i` is used to index `steps` [INFO] [stderr] --> src/runner.rs:134:18 [INFO] [stderr] | [INFO] [stderr] 134 | for i in 0..steps.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 134 | for (i, ) in steps.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `steps` [INFO] [stderr] --> src/runner.rs:147:18 [INFO] [stderr] | [INFO] [stderr] 147 | for i in 0..steps.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 147 | for (i, ) in steps.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/step.rs:263:25 [INFO] [stderr] | [INFO] [stderr] 263 | let error_opt = match successful { [INFO] [stderr] | _________________________^ [INFO] [stderr] 264 | | true => None, [INFO] [stderr] 265 | | false => Some(error), [INFO] [stderr] 266 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if successful { None } else { Some(error) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/step.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 81 | Http(HttpVariant), [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] 81 | Http(Box), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/step.rs:109:5 [INFO] [stderr] | [INFO] [stderr] 109 | Options(HttpOptions), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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] 109 | Options(Box), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/step.rs:338:26 [INFO] [stderr] | [INFO] [stderr] 338 | .map(|str| String::from(str)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `String::from` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/step.rs:409:46 [INFO] [stderr] | [INFO] [stderr] 409 | let mut cookie_jar = value.unwrap_or(CookieJar::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `value.unwrap_or_default()` [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: identical conversion [INFO] [stderr] --> src/step.rs:427:34 [INFO] [stderr] | [INFO] [stderr] 427 | .map_err(|_| String::from(format!("Could not get load"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("Could not get load")` [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: useless use of `format!` [INFO] [stderr] --> src/step.rs:427:47 [INFO] [stderr] | [INFO] [stderr] 427 | .map_err(|_| String::from(format!("Could not get load"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Could not get load".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] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/step.rs:430:34 [INFO] [stderr] | [INFO] [stderr] 430 | .map_err(|_| String::from(format!("Could not get load"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("Could not get load")` [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/step.rs:430:47 [INFO] [stderr] | [INFO] [stderr] 430 | .map_err(|_| String::from(format!("Could not get load"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Could not get load".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/step.rs:433:34 [INFO] [stderr] | [INFO] [stderr] 433 | .map_err(|_| String::from(format!("Could not get load"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("Could not get load")` [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/step.rs:433:47 [INFO] [stderr] | [INFO] [stderr] 433 | .map_err(|_| String::from(format!("Could not get load"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Could not get load".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/step.rs:436:34 [INFO] [stderr] | [INFO] [stderr] 436 | .map_err(|_| String::from(format!("Could not get memory"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("Could not get memory")` [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/step.rs:436:47 [INFO] [stderr] | [INFO] [stderr] 436 | .map_err(|_| String::from(format!("Could not get memory"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Could not get memory".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/step.rs:439:34 [INFO] [stderr] | [INFO] [stderr] 439 | .map_err(|_| String::from(format!("Could not get memory"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("Could not get memory")` [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/step.rs:439:47 [INFO] [stderr] | [INFO] [stderr] 439 | .map_err(|_| String::from(format!("Could not get memory"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Could not get memory".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/step.rs:442:34 [INFO] [stderr] | [INFO] [stderr] 442 | .map_err(|_| String::from(format!("Could not get memory"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("Could not get memory")` [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/step.rs:442:47 [INFO] [stderr] | [INFO] [stderr] 442 | .map_err(|_| String::from(format!("Could not get memory"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Could not get memory".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/step.rs:445:34 [INFO] [stderr] | [INFO] [stderr] 445 | .map_err(|_| String::from(format!("Could not get disk"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("Could not get disk")` [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/step.rs:445:47 [INFO] [stderr] | [INFO] [stderr] 445 | .map_err(|_| String::from(format!("Could not get disk"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Could not get disk".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/step.rs:448:34 [INFO] [stderr] | [INFO] [stderr] 448 | .map_err(|_| String::from(format!("Could not get disk"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("Could not get disk")` [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/step.rs:448:47 [INFO] [stderr] | [INFO] [stderr] 448 | .map_err(|_| String::from(format!("Could not get disk"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Could not get disk".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 all patterns [INFO] [stderr] --> src/step.rs:523:28 [INFO] [stderr] | [INFO] [stderr] 523 | let opts = match regex_var { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 524 | | &RegexVariant::MatchOnly(ref string) => RegexOptions { [INFO] [stderr] 525 | | matches: string.clone(), [INFO] [stderr] 526 | | group: "0".into(), [INFO] [stderr] 527 | | }, [INFO] [stderr] 528 | | &RegexVariant::Options(ref opts) => opts.clone(), [INFO] [stderr] 529 | | }; [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] 523 | let opts = match *regex_var { [INFO] [stderr] 524 | RegexVariant::MatchOnly(ref string) => RegexOptions { [INFO] [stderr] 525 | matches: string.clone(), [INFO] [stderr] 526 | group: "0".into(), [INFO] [stderr] 527 | }, [INFO] [stderr] 528 | RegexVariant::Options(ref opts) => opts.clone(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/step.rs:263:25 [INFO] [stderr] | [INFO] [stderr] 263 | let error_opt = match successful { [INFO] [stderr] | _________________________^ [INFO] [stderr] 264 | | true => None, [INFO] [stderr] 265 | | false => Some(error), [INFO] [stderr] 266 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if successful { None } else { Some(error) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/step.rs:338:26 [INFO] [stderr] | [INFO] [stderr] 338 | .map(|str| String::from(str)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `String::from` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/submitter.rs:30:14 [INFO] [stderr] | [INFO] [stderr] 30 | results: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] help: change this to [INFO] [stderr] | [INFO] [stderr] 30 | results: &[StepResult], [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] help: change `results.clone()` to [INFO] [stderr] | [INFO] [stderr] 50 | tests: results.to_owned(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/step.rs:409:46 [INFO] [stderr] | [INFO] [stderr] 409 | let mut cookie_jar = value.unwrap_or(CookieJar::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `value.unwrap_or_default()` [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: identical conversion [INFO] [stderr] --> src/step.rs:427:34 [INFO] [stderr] | [INFO] [stderr] 427 | .map_err(|_| String::from(format!("Could not get load"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("Could not get load")` [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: useless use of `format!` [INFO] [stderr] --> src/step.rs:427:47 [INFO] [stderr] | [INFO] [stderr] 427 | .map_err(|_| String::from(format!("Could not get load"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Could not get load".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] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/step.rs:430:34 [INFO] [stderr] | [INFO] [stderr] 430 | .map_err(|_| String::from(format!("Could not get load"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("Could not get load")` [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/step.rs:430:47 [INFO] [stderr] | [INFO] [stderr] 430 | .map_err(|_| String::from(format!("Could not get load"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Could not get load".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/step.rs:433:34 [INFO] [stderr] | [INFO] [stderr] 433 | .map_err(|_| String::from(format!("Could not get load"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("Could not get load")` [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/step.rs:433:47 [INFO] [stderr] | [INFO] [stderr] 433 | .map_err(|_| String::from(format!("Could not get load"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Could not get load".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/step.rs:436:34 [INFO] [stderr] | [INFO] [stderr] 436 | .map_err(|_| String::from(format!("Could not get memory"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("Could not get memory")` [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/step.rs:436:47 [INFO] [stderr] | [INFO] [stderr] 436 | .map_err(|_| String::from(format!("Could not get memory"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Could not get memory".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/step.rs:439:34 [INFO] [stderr] | [INFO] [stderr] 439 | .map_err(|_| String::from(format!("Could not get memory"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("Could not get memory")` [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/step.rs:439:47 [INFO] [stderr] | [INFO] [stderr] 439 | .map_err(|_| String::from(format!("Could not get memory"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Could not get memory".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: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/submitter.rs:43:50 [INFO] [stderr] | [INFO] [stderr] 43 | let has_errors = results.iter().any(|result| result.pass == false); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!result.pass` [INFO] [stderr] | [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/step.rs:442:34 [INFO] [stderr] | [INFO] [stderr] 442 | .map_err(|_| String::from(format!("Could not get memory"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("Could not get memory")` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] | [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/step.rs:442:47 [INFO] [stderr] | [INFO] [stderr] 442 | .map_err(|_| String::from(format!("Could not get memory"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Could not get memory".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/step.rs:445:34 [INFO] [stderr] | [INFO] [stderr] 445 | .map_err(|_| String::from(format!("Could not get disk"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("Could not get disk")` [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/step.rs:445:47 [INFO] [stderr] | [INFO] [stderr] 445 | .map_err(|_| String::from(format!("Could not get disk"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Could not get disk".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/step.rs:448:34 [INFO] [stderr] | [INFO] [stderr] 448 | .map_err(|_| String::from(format!("Could not get disk"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("Could not get disk")` [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/step.rs:448:47 [INFO] [stderr] | [INFO] [stderr] 448 | .map_err(|_| String::from(format!("Could not get disk"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Could not get disk".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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/submitter.rs:73:43 [INFO] [stderr] | [INFO] [stderr] 73 | pub fn terminal_print(&self, colours: &bool) { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `bool` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/submitter.rs:74:21 [INFO] [stderr] | [INFO] [stderr] 74 | let style = match self.pass { [INFO] [stderr] | _____________________^ [INFO] [stderr] 75 | | true => Green.bold(), [INFO] [stderr] 76 | | false => Red.bold(), [INFO] [stderr] 77 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if self.pass { Green.bold() } else { Red.bold() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/submitter.rs:88:37 [INFO] [stderr] | [INFO] [stderr] 88 | if self.output.contains("\n") { [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [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 be trying to match on a boolean expression [INFO] [stderr] --> src/submitter.rs:120:30 [INFO] [stderr] | [INFO] [stderr] 120 | let output = match step.do_output { [INFO] [stderr] | ______________________________^ [INFO] [stderr] 121 | | true => outcome.output.unwrap_or_default(), [INFO] [stderr] 122 | | false => String::new(), [INFO] [stderr] 123 | | }; [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if step.do_output { outcome.output.unwrap_or_default() } else { String::new() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/yaml.rs:72:27 [INFO] [stderr] | [INFO] [stderr] 72 | return RunType::Value(step.value.clone().unwrap_or(String::new())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `step.value.clone().unwrap_or_default()` [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 don't need to add `&` to all patterns [INFO] [stderr] --> src/step.rs:523:28 [INFO] [stderr] | [INFO] [stderr] 523 | let opts = match regex_var { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 524 | | &RegexVariant::MatchOnly(ref string) => RegexOptions { [INFO] [stderr] 525 | | matches: string.clone(), [INFO] [stderr] 526 | | group: "0".into(), [INFO] [stderr] 527 | | }, [INFO] [stderr] 528 | | &RegexVariant::Options(ref opts) => opts.clone(), [INFO] [stderr] 529 | | }; [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] 523 | let opts = match *regex_var { [INFO] [stderr] 524 | RegexVariant::MatchOnly(ref string) => RegexOptions { [INFO] [stderr] 525 | matches: string.clone(), [INFO] [stderr] 526 | group: "0".into(), [INFO] [stderr] 527 | }, [INFO] [stderr] 528 | RegexVariant::Options(ref opts) => opts.clone(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/yaml.rs:147:22 [INFO] [stderr] | [INFO] [stderr] 147 | require: step [INFO] [stderr] | ______________________^ [INFO] [stderr] 148 | | .require [INFO] [stderr] 149 | | .map(|require| require.to_vec()) [INFO] [stderr] 150 | | .unwrap_or(Vec::new()), [INFO] [stderr] | |______________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 147 | require: step [INFO] [stderr] 148 | .require [INFO] [stderr] 149 | .map(|require| require.to_vec()).unwrap_or_default(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/yaml.rs:151:26 [INFO] [stderr] | [INFO] [stderr] 151 | required_by: step [INFO] [stderr] | __________________________^ [INFO] [stderr] 152 | | .required_by [INFO] [stderr] 153 | | .map(|require| require.to_vec()) [INFO] [stderr] 154 | | .unwrap_or(Vec::new()), [INFO] [stderr] | |______________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 151 | required_by: step [INFO] [stderr] 152 | .required_by [INFO] [stderr] 153 | .map(|require| require.to_vec()).unwrap_or_default(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/yaml.rs:175:5 [INFO] [stderr] | [INFO] [stderr] 175 | / match config_path { [INFO] [stderr] 176 | | &Some(ref path) => { [INFO] [stderr] 177 | | let c = File::open(path)?; [INFO] [stderr] 178 | | [INFO] [stderr] ... | [INFO] [stderr] 191 | | .map_err(|err| err_msg(format!("Could not parse file {:?}: {}", path_ref, err))), [INFO] [stderr] 192 | | } [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] 175 | match *config_path { [INFO] [stderr] 176 | Some(ref path) => { [INFO] [stderr] 177 | let c = File::open(path)?; [INFO] [stderr] 178 | [INFO] [stderr] 179 | let value: Value = serde_yaml::from_reader(c).map_err(|err| { [INFO] [stderr] 180 | err_msg(format!( [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/submitter.rs:30:14 [INFO] [stderr] | [INFO] [stderr] 30 | results: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] help: change this to [INFO] [stderr] | [INFO] [stderr] 30 | results: &[StepResult], [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] help: change `results.clone()` to [INFO] [stderr] | [INFO] [stderr] 50 | tests: results.to_owned(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/submitter.rs:43:50 [INFO] [stderr] | [INFO] [stderr] 43 | let has_errors = results.iter().any(|result| result.pass == false); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!result.pass` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/submitter.rs:73:43 [INFO] [stderr] | [INFO] [stderr] 73 | pub fn terminal_print(&self, colours: &bool) { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `bool` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/submitter.rs:74:21 [INFO] [stderr] | [INFO] [stderr] 74 | let style = match self.pass { [INFO] [stderr] | _____________________^ [INFO] [stderr] 75 | | true => Green.bold(), [INFO] [stderr] 76 | | false => Red.bold(), [INFO] [stderr] 77 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if self.pass { Green.bold() } else { Red.bold() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/submitter.rs:88:37 [INFO] [stderr] | [INFO] [stderr] 88 | if self.output.contains("\n") { [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [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 be trying to match on a boolean expression [INFO] [stderr] --> src/submitter.rs:120:30 [INFO] [stderr] | [INFO] [stderr] 120 | let output = match step.do_output { [INFO] [stderr] | ______________________________^ [INFO] [stderr] 121 | | true => outcome.output.unwrap_or_default(), [INFO] [stderr] 122 | | false => String::new(), [INFO] [stderr] 123 | | }; [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if step.do_output { outcome.output.unwrap_or_default() } else { String::new() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/yaml.rs:72:27 [INFO] [stderr] | [INFO] [stderr] 72 | return RunType::Value(step.value.clone().unwrap_or(String::new())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `step.value.clone().unwrap_or_default()` [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 call to `new` [INFO] [stderr] --> src/yaml.rs:147:22 [INFO] [stderr] | [INFO] [stderr] 147 | require: step [INFO] [stderr] | ______________________^ [INFO] [stderr] 148 | | .require [INFO] [stderr] 149 | | .map(|require| require.to_vec()) [INFO] [stderr] 150 | | .unwrap_or(Vec::new()), [INFO] [stderr] | |______________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 147 | require: step [INFO] [stderr] 148 | .require [INFO] [stderr] 149 | .map(|require| require.to_vec()).unwrap_or_default(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/yaml.rs:151:26 [INFO] [stderr] | [INFO] [stderr] 151 | required_by: step [INFO] [stderr] | __________________________^ [INFO] [stderr] 152 | | .required_by [INFO] [stderr] 153 | | .map(|require| require.to_vec()) [INFO] [stderr] 154 | | .unwrap_or(Vec::new()), [INFO] [stderr] | |______________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 151 | required_by: step [INFO] [stderr] 152 | .required_by [INFO] [stderr] 153 | .map(|require| require.to_vec()).unwrap_or_default(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/yaml.rs:175:5 [INFO] [stderr] | [INFO] [stderr] 175 | / match config_path { [INFO] [stderr] 176 | | &Some(ref path) => { [INFO] [stderr] 177 | | let c = File::open(path)?; [INFO] [stderr] 178 | | [INFO] [stderr] ... | [INFO] [stderr] 191 | | .map_err(|err| err_msg(format!("Could not parse file {:?}: {}", path_ref, err))), [INFO] [stderr] 192 | | } [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] 175 | match *config_path { [INFO] [stderr] 176 | Some(ref path) => { [INFO] [stderr] 177 | let c = File::open(path)?; [INFO] [stderr] 178 | [INFO] [stderr] 179 | let value: Value = serde_yaml::from_reader(c).map_err(|err| { [INFO] [stderr] 180 | err_msg(format!( [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: useless lint attribute [INFO] [stderr] --> src/main.rs:2:1 [INFO] [stderr] | [INFO] [stderr] 2 | #[allow(unused)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: if you just forgot a `!`, use: `#![allow(unused)]` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::useless_attribute)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_attribute [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:74:20 [INFO] [stderr] | [INFO] [stderr] 74 | if let Some(_) = outcome.error { [INFO] [stderr] | _____________- ^^^^^^^ [INFO] [stderr] 75 | | has_errors = true; [INFO] [stderr] 76 | | } [INFO] [stderr] | |_____________- help: try this: `if outcome.error.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] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `lorikeet`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: useless lint attribute [INFO] [stderr] --> src/main.rs:2:1 [INFO] [stderr] | [INFO] [stderr] 2 | #[allow(unused)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: if you just forgot a `!`, use: `#![allow(unused)]` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::useless_attribute)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_attribute [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/main.rs:74:20 [INFO] [stderr] | [INFO] [stderr] 74 | if let Some(_) = outcome.error { [INFO] [stderr] | _____________- ^^^^^^^ [INFO] [stderr] 75 | | has_errors = true; [INFO] [stderr] 76 | | } [INFO] [stderr] | |_____________- help: try this: `if outcome.error.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] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `lorikeet`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "aa3bd36f29fe8bf4663ec944ed45d6b8edc1b18aab3a17df9e4e01e3590ca395"` [INFO] running `"docker" "rm" "-f" "aa3bd36f29fe8bf4663ec944ed45d6b8edc1b18aab3a17df9e4e01e3590ca395"` [INFO] [stdout] aa3bd36f29fe8bf4663ec944ed45d6b8edc1b18aab3a17df9e4e01e3590ca395