[INFO] fetching crate zero-sdk 0.2.0... [INFO] linting zero-sdk-0.2.0 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate zero-sdk 0.2.0 into /workspace/builds/worker-2-tc1/source [INFO] started tweaking crates.io crate zero-sdk 0.2.0 [INFO] finished tweaking crates.io crate zero-sdk 0.2.0 [INFO] tweaked toml for crates.io crate zero-sdk 0.2.0 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate zero-sdk 0.2.0 on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 238 packages to latest compatible versions [INFO] [stderr] Adding httpmock v0.6.8 (available: v0.8.3) [INFO] [stderr] Adding ureq v2.12.1 (available: v3.2.0) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded basic-cookies v0.1.5 [INFO] [stderr] Downloaded serde_regex v1.1.0 [INFO] [stderr] Downloaded sluice v0.5.5 [INFO] [stderr] Downloaded castaway v0.1.2 [INFO] [stderr] Downloaded httpmock v0.6.8 [INFO] [stderr] Downloaded isahc v1.7.2 [INFO] [stderr] Downloaded async-object-pool v0.1.5 [INFO] [stderr] Downloaded libnghttp2-sys v0.1.12+1.68.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 473a4db82f6778c5adaad40c086fd1c770f3b6fcebee0a5ac471f71eec1410d7 [INFO] running `Command { std: "docker" "start" "-a" "473a4db82f6778c5adaad40c086fd1c770f3b6fcebee0a5ac471f71eec1410d7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "473a4db82f6778c5adaad40c086fd1c770f3b6fcebee0a5ac471f71eec1410d7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "473a4db82f6778c5adaad40c086fd1c770f3b6fcebee0a5ac471f71eec1410d7", kill_on_drop: false }` [INFO] [stdout] 473a4db82f6778c5adaad40c086fd1c770f3b6fcebee0a5ac471f71eec1410d7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] c1e1401d80588506c1cae05ad27d2888d7a70571397cf728dd107c0371f60f73 [INFO] running `Command { std: "docker" "start" "-a" "c1e1401d80588506c1cae05ad27d2888d7a70571397cf728dd107c0371f60f73", kill_on_drop: false }` [INFO] [stderr] Checking event-listener v5.4.1 [INFO] [stderr] Compiling libnghttp2-sys v0.1.12+1.68.0 [INFO] [stderr] Compiling dirs-sys-next v0.1.2 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling curl-sys v0.4.86+curl-8.19.0 [INFO] [stderr] Compiling bit-vec v0.6.3 [INFO] [stderr] Compiling ena v0.14.4 [INFO] [stderr] Compiling dirs-next v2.0.0 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling bit-set v0.5.3 [INFO] [stderr] Compiling itertools v0.11.0 [INFO] [stderr] Compiling unicode-xid v0.2.6 [INFO] [stderr] Compiling term v0.7.0 [INFO] [stderr] Compiling pico-args v0.5.0 [INFO] [stderr] Checking event-listener-strategy v0.5.4 [INFO] [stderr] Checking tracing v0.1.44 [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Checking async-channel v2.5.0 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Checking async-lock v3.4.2 [INFO] [stderr] Compiling ascii-canvas v3.0.0 [INFO] [stderr] Compiling string_cache v0.8.9 [INFO] [stderr] Checking blocking v1.6.2 [INFO] [stderr] Checking async-signal v0.2.13 [INFO] [stderr] Compiling pin-project-internal v1.1.11 [INFO] [stderr] Compiling polling v2.8.0 [INFO] [stderr] Compiling curl v0.4.49 [INFO] [stderr] Checking async-global-executor v2.4.1 [INFO] [stderr] Checking async-process v2.5.0 [INFO] [stderr] Checking url v2.5.8 [INFO] [stderr] Compiling isahc v1.7.2 [INFO] [stderr] Checking futures-util v0.3.32 [INFO] [stderr] Checking async-std v1.13.2 [INFO] [stderr] Checking futures-lite v1.13.0 [INFO] [stderr] Compiling rustls v0.23.37 [INFO] [stderr] Checking tokio v1.50.0 [INFO] [stderr] Checking rustls-webpki v0.103.9 [INFO] [stderr] Checking pin-project v1.1.11 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Checking tracing-futures v0.2.5 [INFO] [stderr] Checking sluice v0.5.5 [INFO] [stderr] Checking webpki-roots v1.0.6 [INFO] [stderr] Checking lalrpop-util v0.20.2 [INFO] [stderr] Checking castaway v0.1.2 [INFO] [stderr] Checking webpki-roots v0.26.11 [INFO] [stderr] Checking serde_regex v1.1.0 [INFO] [stderr] Checking assert-json-diff v2.0.2 [INFO] [stderr] Checking num-iter v0.1.45 [INFO] [stderr] Checking num-complex v0.4.6 [INFO] [stderr] Checking levenshtein v1.0.5 [INFO] [stderr] Checking async-object-pool v0.1.5 [INFO] [stderr] Checking num-rational v0.4.2 [INFO] [stderr] Checking num v0.4.3 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Checking hyper v0.14.32 [INFO] [stderr] Compiling lalrpop v0.20.2 [INFO] [stderr] Checking ureq v2.12.1 [INFO] [stderr] Compiling basic-cookies v0.1.5 [INFO] [stderr] Checking httpmock v0.6.8 [INFO] [stderr] Checking zero-sdk v0.2.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: struct `Arguments` is never constructed [INFO] [stdout] --> src/tests/mock_and_fetch.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct Arguments<'a> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Options` is never constructed [INFO] [stdout] --> src/tests/mock_and_fetch.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Options { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mock_and_fetch` is never used [INFO] [stdout] --> src/tests/mock_and_fetch.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn mock_and_fetch( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/tests/mock_and_fetch.rs:19:32 [INFO] [stdout] | [INFO] [stdout] 19 | let caller_name_query = if !options.is_none() && options.as_ref().unwrap().is_caller_name_empty { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `options.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/tests/mock_and_fetch.rs:30:8 [INFO] [stdout] | [INFO] [stdout] 30 | if !options.is_none() && options.as_ref().unwrap().is_pick_empty { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `options.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/tests/mock_and_fetch.rs:39:8 [INFO] [stdout] | [INFO] [stdout] 39 | if !options.is_none() && options.as_ref().unwrap().is_response_failed { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `options.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tests/mock_and_fetch.rs:85:5 [INFO] [stdout] | [INFO] [stdout] 85 | return secrets; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 85 - return secrets; [INFO] [stdout] 85 + secrets [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/tests/mock_and_fetch.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | let response_body; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `response_body` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 27 ~ [INFO] [stdout] 28 | [INFO] [stdout] ... [INFO] [stdout] 38 | // Failed response, depending on the flag [INFO] [stdout] 39 ~ let response_body = if !options.is_none() && options.as_ref().unwrap().is_response_failed { [INFO] [stdout] 40 ~ serde_json::json!({ [INFO] [stdout] 41 | "data": null, [INFO] [stdout] ... [INFO] [stdout] 50 | ] [INFO] [stdout] 51 ~ }) [INFO] [stdout] 52 | } else { [INFO] [stdout] 53 ~ serde_json::json!({"data": { [INFO] [stdout] 54 | "secrets": [ [INFO] [stdout] 55 | {"name": "aws", "fields": [{"name": "key", "value": "a"}, {"name": "secret", "value": "b"}]}, [INFO] [stdout] 56 | ] [INFO] [stdout] 57 ~ }}) [INFO] [stdout] 58 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/tests/mock_and_fetch.rs:64:28 [INFO] [stdout] | [INFO] [stdout] 64 | .body_contains(&format!( [INFO] [stdout] | ____________________________^ [INFO] [stdout] 65 | | "secrets(zeroToken: \\\"{}\\\", pick: [{}]{})", [INFO] [stdout] 66 | | TOKEN, pick_query, caller_name_query, [INFO] [stdout] 67 | | )); [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 64 ~ .body_contains(format!( [INFO] [stdout] 65 + "secrets(zeroToken: \\\"{}\\\", pick: [{}]{})", [INFO] [stdout] 66 + TOKEN, pick_query, caller_name_query, [INFO] [stdout] 67 ~ )); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | return self; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 37 - return self; [INFO] [stdout] 37 + self [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `response_json.errors` after checking its variant with `is_some` [INFO] [stdout] --> src/lib.rs:83:38 [INFO] [stdout] | [INFO] [stdout] 82 | if response_json.errors.is_some() { [INFO] [stdout] | --------------------------------- help: try: `if let Some() = response_json.errors` [INFO] [stdout] 83 | return Err(String::from(&response_json.errors.unwrap()[0].message)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/lib.rs:116:12 [INFO] [stdout] | [INFO] [stdout] 116 | if arguments.token == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `arguments.token.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] = note: `#[warn(clippy::comparison_to_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/tests/mock_and_fetch.rs:19:32 [INFO] [stdout] | [INFO] [stdout] 19 | let caller_name_query = if !options.is_none() && options.as_ref().unwrap().is_caller_name_empty { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `options.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/tests/mock_and_fetch.rs:30:8 [INFO] [stdout] | [INFO] [stdout] 30 | if !options.is_none() && options.as_ref().unwrap().is_pick_empty { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `options.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/tests/mock_and_fetch.rs:39:8 [INFO] [stdout] | [INFO] [stdout] 39 | if !options.is_none() && options.as_ref().unwrap().is_response_failed { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `options.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tests/mock_and_fetch.rs:85:5 [INFO] [stdout] | [INFO] [stdout] 85 | return secrets; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 85 - return secrets; [INFO] [stdout] 85 + secrets [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/tests/mock_and_fetch.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | let response_body; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `response_body` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 27 ~ [INFO] [stdout] 28 | [INFO] [stdout] ... [INFO] [stdout] 38 | // Failed response, depending on the flag [INFO] [stdout] 39 ~ let response_body = if !options.is_none() && options.as_ref().unwrap().is_response_failed { [INFO] [stdout] 40 ~ serde_json::json!({ [INFO] [stdout] 41 | "data": null, [INFO] [stdout] ... [INFO] [stdout] 50 | ] [INFO] [stdout] 51 ~ }) [INFO] [stdout] 52 | } else { [INFO] [stdout] 53 ~ serde_json::json!({"data": { [INFO] [stdout] 54 | "secrets": [ [INFO] [stdout] 55 | {"name": "aws", "fields": [{"name": "key", "value": "a"}, {"name": "secret", "value": "b"}]}, [INFO] [stdout] 56 | ] [INFO] [stdout] 57 ~ }}) [INFO] [stdout] 58 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/tests/mock_and_fetch.rs:64:28 [INFO] [stdout] | [INFO] [stdout] 64 | .body_contains(&format!( [INFO] [stdout] | ____________________________^ [INFO] [stdout] 65 | | "secrets(zeroToken: \\\"{}\\\", pick: [{}]{})", [INFO] [stdout] 66 | | TOKEN, pick_query, caller_name_query, [INFO] [stdout] 67 | | )); [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 64 ~ .body_contains(format!( [INFO] [stdout] 65 + "secrets(zeroToken: \\\"{}\\\", pick: [{}]{})", [INFO] [stdout] 66 + TOKEN, pick_query, caller_name_query, [INFO] [stdout] 67 ~ )); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/tests/mod.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | if let Err(_) = super::Zero::new(super::Arguments { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 5 ~ if super::Zero::new(super::Arguments { [INFO] [stdout] 6 + pick: Some(vec![]), [INFO] [stdout] 7 + token: String::from("token"), [INFO] [stdout] 8 + caller_name: None, [INFO] [stdout] 9 ~ }).is_err() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stdout] --> src/tests/mod.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | if let Ok(_) = super::Zero::new(super::Arguments { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 13 ~ if super::Zero::new(super::Arguments { [INFO] [stdout] 14 + pick: Some(vec![]), [INFO] [stdout] 15 + token: String::from(""), [INFO] [stdout] 16 + caller_name: None, [INFO] [stdout] 17 ~ }).is_ok() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | return self; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 37 - return self; [INFO] [stdout] 37 + self [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `response_json.errors` after checking its variant with `is_some` [INFO] [stdout] --> src/lib.rs:83:38 [INFO] [stdout] | [INFO] [stdout] 82 | if response_json.errors.is_some() { [INFO] [stdout] | --------------------------------- help: try: `if let Some() = response_json.errors` [INFO] [stdout] 83 | return Err(String::from(&response_json.errors.unwrap()[0].message)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/lib.rs:116:12 [INFO] [stdout] | [INFO] [stdout] 116 | if arguments.token == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `arguments.token.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] = note: `#[warn(clippy::comparison_to_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 08s [INFO] running `Command { std: "docker" "inspect" "c1e1401d80588506c1cae05ad27d2888d7a70571397cf728dd107c0371f60f73", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c1e1401d80588506c1cae05ad27d2888d7a70571397cf728dd107c0371f60f73", kill_on_drop: false }` [INFO] [stdout] c1e1401d80588506c1cae05ad27d2888d7a70571397cf728dd107c0371f60f73