[INFO] fetching crate nhl-235 1.4.1... [INFO] linting nhl-235-1.4.1 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate nhl-235 1.4.1 into /workspace/builds/worker-2-tc1/source [INFO] started tweaking crates.io crate nhl-235 1.4.1 [INFO] finished tweaking crates.io crate nhl-235 1.4.1 [INFO] tweaked toml for crates.io crate nhl-235 1.4.1 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate nhl-235 1.4.1 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] crate crates.io crate nhl-235 1.4.1 already has a lockfile, it will not be regenerated [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] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded wasm-bindgen-shared v0.2.88 [INFO] [stderr] Downloaded wasm-bindgen-macro v0.2.88 [INFO] [stderr] Downloaded serde v1.0.190 [INFO] [stderr] Downloaded crossterm_winapi v0.6.2 [INFO] [stderr] Downloaded colour v0.5.0 [INFO] [stderr] Downloaded signal-hook v0.1.17 [INFO] [stderr] Downloaded serde_derive v1.0.190 [INFO] [stderr] Downloaded crossterm v0.16.0 [INFO] [stderr] Downloaded js-sys v0.3.65 [INFO] [stderr] Downloaded wasm-bindgen v0.2.88 [INFO] [stderr] Downloaded wasm-bindgen-futures v0.4.38 [INFO] [stderr] Downloaded openssl-sys v0.9.95 [INFO] [stderr] Downloaded wasm-bindgen-backend v0.2.88 [INFO] [stderr] Downloaded wasm-bindgen-macro-support v0.2.88 [INFO] [stderr] Downloaded openssl v0.10.59 [INFO] [stderr] Downloaded web-sys v0.3.65 [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] 0a8bbb9ce48d633cbbcfcaeec23cc3f0dc393e3354fd89f409d101625fb8e5bb [INFO] running `Command { std: "docker" "start" "-a" "0a8bbb9ce48d633cbbcfcaeec23cc3f0dc393e3354fd89f409d101625fb8e5bb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "0a8bbb9ce48d633cbbcfcaeec23cc3f0dc393e3354fd89f409d101625fb8e5bb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0a8bbb9ce48d633cbbcfcaeec23cc3f0dc393e3354fd89f409d101625fb8e5bb", kill_on_drop: false }` [INFO] [stdout] 0a8bbb9ce48d633cbbcfcaeec23cc3f0dc393e3354fd89f409d101625fb8e5bb [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] 479a5c08cc085a0356d588f8dd1aec41572c8bdcd9406373b6980dfbb7729de4 [INFO] running `Command { std: "docker" "start" "-a" "479a5c08cc085a0356d588f8dd1aec41572c8bdcd9406373b6980dfbb7729de4", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.150 [INFO] [stderr] Compiling proc-macro2 v1.0.69 [INFO] [stderr] Checking smallvec v1.11.1 [INFO] [stderr] Compiling pkg-config v0.3.27 [INFO] [stderr] Checking once_cell v1.18.0 [INFO] [stderr] Compiling futures-core v0.3.29 [INFO] [stderr] Checking log v0.4.20 [INFO] [stderr] Checking itoa v1.0.9 [INFO] [stderr] Compiling futures-task v0.3.29 [INFO] [stderr] Compiling futures-util v0.3.29 [INFO] [stderr] Compiling openssl v0.10.59 [INFO] [stderr] Checking bitflags v2.4.1 [INFO] [stderr] Compiling futures-channel v0.3.29 [INFO] [stderr] Compiling serde v1.0.190 [INFO] [stderr] Checking futures-sink v0.3.29 [INFO] [stderr] Checking indexmap v1.9.3 [INFO] [stderr] Checking openssl-probe v0.1.5 [INFO] [stderr] Checking percent-encoding v2.3.0 [INFO] [stderr] Checking want v0.3.1 [INFO] [stderr] Checking lock_api v0.3.4 [INFO] [stderr] Checking unicode-bidi v0.3.13 [INFO] [stderr] Checking unicode-width v0.1.11 [INFO] [stderr] Checking ryu v1.0.15 [INFO] [stderr] Checking http v0.2.9 [INFO] [stderr] Compiling heck v0.3.3 [INFO] [stderr] Checking either v1.9.0 [INFO] [stderr] Checking tracing-core v0.1.32 [INFO] [stderr] Checking textwrap v0.11.0 [INFO] [stderr] Checking form_urlencoded v1.2.0 [INFO] [stderr] Checking itertools v0.10.5 [INFO] [stderr] Checking tracing v0.1.40 [INFO] [stderr] Checking idna v0.4.0 [INFO] [stderr] Compiling quote v1.0.33 [INFO] [stderr] Checking url v2.4.1 [INFO] [stderr] Checking http-body v0.4.5 [INFO] [stderr] Compiling syn v2.0.39 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Compiling cc v1.0.83 [INFO] [stderr] Checking signal-hook-registry v1.4.1 [INFO] [stderr] Checking parking_lot_core v0.9.9 [INFO] [stderr] Checking mio v0.8.9 [INFO] [stderr] Checking num_cpus v1.16.0 [INFO] [stderr] Checking socket2 v0.5.5 [INFO] [stderr] Checking net2 v0.2.39 [INFO] [stderr] Checking iovec v0.1.4 [INFO] [stderr] Checking socket2 v0.4.10 [INFO] [stderr] Checking parking_lot_core v0.7.3 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking dirs-sys v0.3.7 [INFO] [stderr] Checking clap v2.34.0 [INFO] [stderr] Checking dirs v4.0.0 [INFO] [stderr] Checking mio v0.6.23 [INFO] [stderr] Checking parking_lot v0.12.1 [INFO] [stderr] Checking parking_lot v0.10.2 [INFO] [stderr] Compiling openssl-sys v0.9.95 [INFO] [stderr] Compiling native-tls v0.2.11 [INFO] [stderr] Checking signal-hook v0.1.17 [INFO] [stderr] Checking crossterm v0.16.0 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Checking colour v0.5.0 [INFO] [stderr] Compiling structopt-derive v0.4.18 [INFO] [stderr] Compiling tokio-macros v2.1.0 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling serde_derive v1.0.190 [INFO] [stderr] Checking structopt v0.3.26 [INFO] [stderr] Checking tokio v1.33.0 [INFO] [stderr] Checking tokio-util v0.7.10 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking h2 v0.3.21 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking serde_json v1.0.108 [INFO] [stderr] Checking hyper v0.14.27 [INFO] [stderr] Checking hyper-tls v0.5.0 [INFO] [stderr] Checking reqwest v0.11.22 [INFO] [stderr] Checking nhl-235 v1.4.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/main.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / /** [INFO] [stdout] 2 | | * NHL-235 is a command line tool for showing NHL results from previous day or current [INFO] [stdout] 3 | | * in a format that's mimicing YLE's Tekstitv aesthetics [INFO] [stdout] 4 | | * [INFO] [stdout] ... | [INFO] [stdout] 9 | | */ [INFO] [stdout] 10 | | [INFO] [stdout] | |_^ [INFO] [stdout] 11 | #[macro_use] [INFO] [stdout] 12 | extern crate colour; [INFO] [stdout] | ------------------- the comment documents this extern crate [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the comment should document the crate use an inner doc comment [INFO] [stdout] | [INFO] [stdout] 1 - /** [INFO] [stdout] 1 + /*! [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/main.rs:307:17 [INFO] [stdout] | [INFO] [stdout] 307 | scorer: scorer, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `scorer` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/main.rs:309:17 [INFO] [stdout] | [INFO] [stdout] 309 | minute: minute, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `minute` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/main.rs:321:9 [INFO] [stdout] | [INFO] [stdout] 321 | goals: goals, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `goals` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit expression [INFO] [stdout] --> src/main.rs:535:5 [INFO] [stdout] | [INFO] [stdout] 535 | () [INFO] [stdout] | ^^ help: remove the final `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/main.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / /** [INFO] [stdout] 2 | | * NHL-235 is a command line tool for showing NHL results from previous day or current [INFO] [stdout] 3 | | * in a format that's mimicing YLE's Tekstitv aesthetics [INFO] [stdout] 4 | | * [INFO] [stdout] ... | [INFO] [stdout] 9 | | */ [INFO] [stdout] 10 | | [INFO] [stdout] | |_^ [INFO] [stdout] 11 | #[macro_use] [INFO] [stdout] 12 | extern crate colour; [INFO] [stdout] | ------------------- the comment documents this extern crate [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the comment should document the crate use an inner doc comment [INFO] [stdout] | [INFO] [stdout] 1 - /** [INFO] [stdout] 1 + /*! [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/main.rs:307:17 [INFO] [stdout] | [INFO] [stdout] 307 | scorer: scorer, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `scorer` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/main.rs:309:17 [INFO] [stdout] | [INFO] [stdout] 309 | minute: minute, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `minute` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/main.rs:321:9 [INFO] [stdout] | [INFO] [stdout] 321 | goals: goals, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `goals` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit expression [INFO] [stdout] --> src/main.rs:535:5 [INFO] [stdout] | [INFO] [stdout] 535 | () [INFO] [stdout] | ^^ help: remove the final `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/main.rs:136:21 [INFO] [stdout] | [INFO] [stdout] 136 | .filter(|s| s != "") [INFO] [stdout] | ^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!s.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: redundant closure [INFO] [stdout] --> src/main.rs:217:14 [INFO] [stdout] | [INFO] [stdout] 217 | .map(|game| parse_game(game)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `parse_game` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/main.rs:226:47 [INFO] [stdout] | [INFO] [stdout] 226 | games.into_iter().for_each(|game| match game { [INFO] [stdout] | _______________________________________________^ [INFO] [stdout] 227 | | Some(game) => print_game(&game, &highlights, &options), [INFO] [stdout] 228 | | None => (), [INFO] [stdout] 229 | | }); [INFO] [stdout] | |_____________^ help: try: `if let Some(game) = game { print_game(&game, &highlights, &options) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:227:49 [INFO] [stdout] | [INFO] [stdout] 227 | Some(game) => print_game(&game, &highlights, &options), [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `highlights` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:227:62 [INFO] [stdout] | [INFO] [stdout] 227 | Some(game) => print_game(&game, &highlights, &options), [INFO] [stdout] | ^^^^^^^^ help: change this to: `options` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:267:17 [INFO] [stdout] | [INFO] [stdout] 267 | None => &empty_vec, [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `empty_vec` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/main.rs:290:10 [INFO] [stdout] | [INFO] [stdout] 290 | .into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] = note: `#[warn(clippy::into_iter_on_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:306:13 [INFO] [stdout] | [INFO] [stdout] 306 | / return Goal { [INFO] [stdout] 307 | | scorer: scorer, [INFO] [stdout] 308 | | assists: assists.to_vec(), [INFO] [stdout] 309 | | minute: minute, [INFO] [stdout] 310 | | team: goal.team.replace("\"", ""), [INFO] [stdout] 311 | | special: is_special(goal), [INFO] [stdout] 312 | | }; [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] 306 ~ Goal { [INFO] [stdout] 307 + scorer: scorer, [INFO] [stdout] 308 + assists: assists.to_vec(), [INFO] [stdout] 309 + minute: minute, [INFO] [stdout] 310 + team: goal.team.replace("\"", ""), [INFO] [stdout] 311 + special: is_special(goal), [INFO] [stdout] 312 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/main.rs:336:20 [INFO] [stdout] | [INFO] [stdout] 336 | last_name: String::from(last_name), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `last_name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:346:13 [INFO] [stdout] | [INFO] [stdout] 346 | / goal.team == game.home [INFO] [stdout] 347 | | && (goal.minute != SHOOTOUT_MINUTE [INFO] [stdout] 348 | | || goal.minute == SHOOTOUT_MINUTE && game.special == "ot") [INFO] [stdout] | |______________________________________________________________________________^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 346 - goal.team == game.home [INFO] [stdout] 347 - && (goal.minute != SHOOTOUT_MINUTE [INFO] [stdout] 348 - || goal.minute == SHOOTOUT_MINUTE && game.special == "ot") [INFO] [stdout] 346 + !(goal.team != game.home || goal.minute == SHOOTOUT_MINUTE && game.special != "ot") [INFO] [stdout] | [INFO] [stdout] 346 - goal.team == game.home [INFO] [stdout] 347 - && (goal.minute != SHOOTOUT_MINUTE [INFO] [stdout] 348 - || goal.minute == SHOOTOUT_MINUTE && game.special == "ot") [INFO] [stdout] 346 + (game.special == "ot" || goal.minute != SHOOTOUT_MINUTE) && goal.team == game.home [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:347:20 [INFO] [stdout] | [INFO] [stdout] 347 | && (goal.minute != SHOOTOUT_MINUTE [INFO] [stdout] | ____________________^ [INFO] [stdout] 348 | | || goal.minute == SHOOTOUT_MINUTE && game.special == "ot") [INFO] [stdout] | |______________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 347 - && (goal.minute != SHOOTOUT_MINUTE [INFO] [stdout] 348 - || goal.minute == SHOOTOUT_MINUTE && game.special == "ot") [INFO] [stdout] 347 + && !(goal.minute == SHOOTOUT_MINUTE && game.special != "ot") [INFO] [stdout] | [INFO] [stdout] 347 - && (goal.minute != SHOOTOUT_MINUTE [INFO] [stdout] 348 - || goal.minute == SHOOTOUT_MINUTE && game.special == "ot") [INFO] [stdout] 347 + && goal.minute != SHOOTOUT_MINUTE || game.special == "ot" [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:355:13 [INFO] [stdout] | [INFO] [stdout] 355 | / goal.team == game.away [INFO] [stdout] 356 | | && (goal.minute != SHOOTOUT_MINUTE [INFO] [stdout] 357 | | || goal.minute == SHOOTOUT_MINUTE && game.special == "ot") [INFO] [stdout] | |______________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 355 - goal.team == game.away [INFO] [stdout] 356 - && (goal.minute != SHOOTOUT_MINUTE [INFO] [stdout] 357 - || goal.minute == SHOOTOUT_MINUTE && game.special == "ot") [INFO] [stdout] 355 + !(goal.team != game.away || goal.minute == SHOOTOUT_MINUTE && game.special != "ot") [INFO] [stdout] | [INFO] [stdout] 355 - goal.team == game.away [INFO] [stdout] 356 - && (goal.minute != SHOOTOUT_MINUTE [INFO] [stdout] 357 - || goal.minute == SHOOTOUT_MINUTE && game.special == "ot") [INFO] [stdout] 355 + (game.special == "ot" || goal.minute != SHOOTOUT_MINUTE) && goal.team == game.away [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:356:20 [INFO] [stdout] | [INFO] [stdout] 356 | && (goal.minute != SHOOTOUT_MINUTE [INFO] [stdout] | ____________________^ [INFO] [stdout] 357 | | || goal.minute == SHOOTOUT_MINUTE && game.special == "ot") [INFO] [stdout] | |______________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 356 - && (goal.minute != SHOOTOUT_MINUTE [INFO] [stdout] 357 - || goal.minute == SHOOTOUT_MINUTE && game.special == "ot") [INFO] [stdout] 356 + && !(goal.minute == SHOOTOUT_MINUTE && game.special != "ot") [INFO] [stdout] | [INFO] [stdout] 356 - && (goal.minute != SHOOTOUT_MINUTE [INFO] [stdout] 357 - || goal.minute == SHOOTOUT_MINUTE && game.special == "ot") [INFO] [stdout] 356 + && goal.minute != SHOOTOUT_MINUTE || game.special == "ot" [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:404:74 [INFO] [stdout] | [INFO] [stdout] 404 | Both(home, away) => print_both_goals(home, away, highlights, &options), [INFO] [stdout] | ^^^^^^^^ help: change this to: `options` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:405:61 [INFO] [stdout] | [INFO] [stdout] 405 | Left(home) => print_home_goal(home, highlights, &options), [INFO] [stdout] | ^^^^^^^^ help: change this to: `options` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:406:62 [INFO] [stdout] | [INFO] [stdout] 406 | Right(away) => print_away_goal(away, highlights, &options), [INFO] [stdout] | ^^^^^^^^ help: change this to: `options` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:423:34 [INFO] [stdout] | [INFO] [stdout] 423 | print_stats(&game.goals, &highlights, &options); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `highlights` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:423:47 [INFO] [stdout] | [INFO] [stdout] 423 | print_stats(&game.goals, &highlights, &options); [INFO] [stdout] | ^^^^^^^^ help: change this to: `options` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/main.rs:426:5 [INFO] [stdout] | [INFO] [stdout] 426 | / match &game.playoff_series { [INFO] [stdout] 427 | | Some(playoff_series) => { [INFO] [stdout] 428 | | let series_wins = &playoff_series["wins"]; [INFO] [stdout] 429 | | let home_wins = &series_wins[&game.home]; [INFO] [stdout] ... | [INFO] [stdout] 439 | | None => (), [INFO] [stdout] 440 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 426 ~ if let Some(playoff_series) = &game.playoff_series { [INFO] [stdout] 427 + let series_wins = &playoff_series["wins"]; [INFO] [stdout] 428 + let home_wins = &series_wins[&game.home]; [INFO] [stdout] 429 + let away_wins = &series_wins[&game.away]; [INFO] [stdout] 430 + [INFO] [stdout] 431 + if atty::is(Stream::Stdout) && options.use_colors { [INFO] [stdout] 432 + yellow_ln!("Series {}-{}", home_wins, away_wins); [INFO] [stdout] 433 + } else { [INFO] [stdout] 434 + println!("Series {}-{}", home_wins, away_wins); [INFO] [stdout] 435 + } [INFO] [stdout] 436 + println!(); [INFO] [stdout] 437 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:505:12 [INFO] [stdout] | [INFO] [stdout] 505 | goals: &'a Vec, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 505 - goals: &'a Vec, [INFO] [stdout] 505 + goals: &'a [Goal], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:543:9 [INFO] [stdout] | [INFO] [stdout] 543 | / if other.last_name == player.last_name && other.team == player.team { [INFO] [stdout] 544 | | if other.first_name != player.first_name { [INFO] [stdout] 545 | | return true; [INFO] [stdout] 546 | | } [INFO] [stdout] 547 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 543 ~ if other.last_name == player.last_name && other.team == player.team [INFO] [stdout] 544 ~ && other.first_name != player.first_name { [INFO] [stdout] 545 | return true; [INFO] [stdout] 546 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:580:5 [INFO] [stdout] | [INFO] [stdout] 580 | return Some(format!("({})", stats_messages.join(", "))); [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] 580 - return Some(format!("({})", stats_messages.join(", "))); [INFO] [stdout] 580 + Some(format!("({})", stats_messages.join(", "))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:554:17 [INFO] [stdout] | [INFO] [stdout] 554 | count_stats(&goals, &highlights, &mut stats); [INFO] [stdout] | ^^^^^^ help: change this to: `goals` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:554:25 [INFO] [stdout] | [INFO] [stdout] 554 | count_stats(&goals, &highlights, &mut stats); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `highlights` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/main.rs:562:61 [INFO] [stdout] | [INFO] [stdout] 562 | let needs_first_name: bool = has_last_name_namesake(*player, &stats); [INFO] [stdout] | ^^^^^^^ help: try: `player` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:584:55 [INFO] [stdout] | [INFO] [stdout] 584 | let message: Option = craft_stats_message(&goals, &highlights); [INFO] [stdout] | ^^^^^^ help: change this to: `goals` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:584:63 [INFO] [stdout] | [INFO] [stdout] 584 | let message: Option = craft_stats_message(&goals, &highlights); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `highlights` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/main.rs:586:5 [INFO] [stdout] | [INFO] [stdout] 586 | / match message { [INFO] [stdout] 587 | | Some(message) => { [INFO] [stdout] 588 | | if options.show_highlights { [INFO] [stdout] 589 | | yellow_ln!("{}", message); [INFO] [stdout] ... | [INFO] [stdout] 597 | | None => (), [INFO] [stdout] 598 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 586 ~ if let Some(message) = message { [INFO] [stdout] 587 + if options.show_highlights { [INFO] [stdout] 588 + yellow_ln!("{}", message); [INFO] [stdout] 589 + } else if options.use_colors { [INFO] [stdout] 590 + white_ln!("{}", message); [INFO] [stdout] 591 + } else { [INFO] [stdout] 592 + println!("{}", message); [INFO] [stdout] 593 + } [INFO] [stdout] 594 + println!(); [INFO] [stdout] 595 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/main.rs:136:21 [INFO] [stdout] | [INFO] [stdout] 136 | .filter(|s| s != "") [INFO] [stdout] | ^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!s.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: redundant closure [INFO] [stdout] --> src/main.rs:217:14 [INFO] [stdout] | [INFO] [stdout] 217 | .map(|game| parse_game(game)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `parse_game` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/main.rs:226:47 [INFO] [stdout] | [INFO] [stdout] 226 | games.into_iter().for_each(|game| match game { [INFO] [stdout] | _______________________________________________^ [INFO] [stdout] 227 | | Some(game) => print_game(&game, &highlights, &options), [INFO] [stdout] 228 | | None => (), [INFO] [stdout] 229 | | }); [INFO] [stdout] | |_____________^ help: try: `if let Some(game) = game { print_game(&game, &highlights, &options) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:227:49 [INFO] [stdout] | [INFO] [stdout] 227 | Some(game) => print_game(&game, &highlights, &options), [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `highlights` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:227:62 [INFO] [stdout] | [INFO] [stdout] 227 | Some(game) => print_game(&game, &highlights, &options), [INFO] [stdout] | ^^^^^^^^ help: change this to: `options` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:267:17 [INFO] [stdout] | [INFO] [stdout] 267 | None => &empty_vec, [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `empty_vec` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/main.rs:290:10 [INFO] [stdout] | [INFO] [stdout] 290 | .into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] = note: `#[warn(clippy::into_iter_on_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:306:13 [INFO] [stdout] | [INFO] [stdout] 306 | / return Goal { [INFO] [stdout] 307 | | scorer: scorer, [INFO] [stdout] 308 | | assists: assists.to_vec(), [INFO] [stdout] 309 | | minute: minute, [INFO] [stdout] 310 | | team: goal.team.replace("\"", ""), [INFO] [stdout] 311 | | special: is_special(goal), [INFO] [stdout] 312 | | }; [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] 306 ~ Goal { [INFO] [stdout] 307 + scorer: scorer, [INFO] [stdout] 308 + assists: assists.to_vec(), [INFO] [stdout] 309 + minute: minute, [INFO] [stdout] 310 + team: goal.team.replace("\"", ""), [INFO] [stdout] 311 + special: is_special(goal), [INFO] [stdout] 312 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/main.rs:336:20 [INFO] [stdout] | [INFO] [stdout] 336 | last_name: String::from(last_name), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `last_name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:346:13 [INFO] [stdout] | [INFO] [stdout] 346 | / goal.team == game.home [INFO] [stdout] 347 | | && (goal.minute != SHOOTOUT_MINUTE [INFO] [stdout] 348 | | || goal.minute == SHOOTOUT_MINUTE && game.special == "ot") [INFO] [stdout] | |______________________________________________________________________________^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 346 - goal.team == game.home [INFO] [stdout] 347 - && (goal.minute != SHOOTOUT_MINUTE [INFO] [stdout] 348 - || goal.minute == SHOOTOUT_MINUTE && game.special == "ot") [INFO] [stdout] 346 + !(goal.team != game.home || goal.minute == SHOOTOUT_MINUTE && game.special != "ot") [INFO] [stdout] | [INFO] [stdout] 346 - goal.team == game.home [INFO] [stdout] 347 - && (goal.minute != SHOOTOUT_MINUTE [INFO] [stdout] 348 - || goal.minute == SHOOTOUT_MINUTE && game.special == "ot") [INFO] [stdout] 346 + (game.special == "ot" || goal.minute != SHOOTOUT_MINUTE) && goal.team == game.home [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:347:20 [INFO] [stdout] | [INFO] [stdout] 347 | && (goal.minute != SHOOTOUT_MINUTE [INFO] [stdout] | ____________________^ [INFO] [stdout] 348 | | || goal.minute == SHOOTOUT_MINUTE && game.special == "ot") [INFO] [stdout] | |______________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 347 - && (goal.minute != SHOOTOUT_MINUTE [INFO] [stdout] 348 - || goal.minute == SHOOTOUT_MINUTE && game.special == "ot") [INFO] [stdout] 347 + && !(goal.minute == SHOOTOUT_MINUTE && game.special != "ot") [INFO] [stdout] | [INFO] [stdout] 347 - && (goal.minute != SHOOTOUT_MINUTE [INFO] [stdout] 348 - || goal.minute == SHOOTOUT_MINUTE && game.special == "ot") [INFO] [stdout] 347 + && goal.minute != SHOOTOUT_MINUTE || game.special == "ot" [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:355:13 [INFO] [stdout] | [INFO] [stdout] 355 | / goal.team == game.away [INFO] [stdout] 356 | | && (goal.minute != SHOOTOUT_MINUTE [INFO] [stdout] 357 | | || goal.minute == SHOOTOUT_MINUTE && game.special == "ot") [INFO] [stdout] | |______________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 355 - goal.team == game.away [INFO] [stdout] 356 - && (goal.minute != SHOOTOUT_MINUTE [INFO] [stdout] 357 - || goal.minute == SHOOTOUT_MINUTE && game.special == "ot") [INFO] [stdout] 355 + !(goal.team != game.away || goal.minute == SHOOTOUT_MINUTE && game.special != "ot") [INFO] [stdout] | [INFO] [stdout] 355 - goal.team == game.away [INFO] [stdout] 356 - && (goal.minute != SHOOTOUT_MINUTE [INFO] [stdout] 357 - || goal.minute == SHOOTOUT_MINUTE && game.special == "ot") [INFO] [stdout] 355 + (game.special == "ot" || goal.minute != SHOOTOUT_MINUTE) && goal.team == game.away [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:356:20 [INFO] [stdout] | [INFO] [stdout] 356 | && (goal.minute != SHOOTOUT_MINUTE [INFO] [stdout] | ____________________^ [INFO] [stdout] 357 | | || goal.minute == SHOOTOUT_MINUTE && game.special == "ot") [INFO] [stdout] | |______________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 356 - && (goal.minute != SHOOTOUT_MINUTE [INFO] [stdout] 357 - || goal.minute == SHOOTOUT_MINUTE && game.special == "ot") [INFO] [stdout] 356 + && !(goal.minute == SHOOTOUT_MINUTE && game.special != "ot") [INFO] [stdout] | [INFO] [stdout] 356 - && (goal.minute != SHOOTOUT_MINUTE [INFO] [stdout] 357 - || goal.minute == SHOOTOUT_MINUTE && game.special == "ot") [INFO] [stdout] 356 + && goal.minute != SHOOTOUT_MINUTE || game.special == "ot" [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:404:74 [INFO] [stdout] | [INFO] [stdout] 404 | Both(home, away) => print_both_goals(home, away, highlights, &options), [INFO] [stdout] | ^^^^^^^^ help: change this to: `options` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:405:61 [INFO] [stdout] | [INFO] [stdout] 405 | Left(home) => print_home_goal(home, highlights, &options), [INFO] [stdout] | ^^^^^^^^ help: change this to: `options` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:406:62 [INFO] [stdout] | [INFO] [stdout] 406 | Right(away) => print_away_goal(away, highlights, &options), [INFO] [stdout] | ^^^^^^^^ help: change this to: `options` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:423:34 [INFO] [stdout] | [INFO] [stdout] 423 | print_stats(&game.goals, &highlights, &options); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `highlights` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:423:47 [INFO] [stdout] | [INFO] [stdout] 423 | print_stats(&game.goals, &highlights, &options); [INFO] [stdout] | ^^^^^^^^ help: change this to: `options` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/main.rs:426:5 [INFO] [stdout] | [INFO] [stdout] 426 | / match &game.playoff_series { [INFO] [stdout] 427 | | Some(playoff_series) => { [INFO] [stdout] 428 | | let series_wins = &playoff_series["wins"]; [INFO] [stdout] 429 | | let home_wins = &series_wins[&game.home]; [INFO] [stdout] ... | [INFO] [stdout] 439 | | None => (), [INFO] [stdout] 440 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 426 ~ if let Some(playoff_series) = &game.playoff_series { [INFO] [stdout] 427 + let series_wins = &playoff_series["wins"]; [INFO] [stdout] 428 + let home_wins = &series_wins[&game.home]; [INFO] [stdout] 429 + let away_wins = &series_wins[&game.away]; [INFO] [stdout] 430 + [INFO] [stdout] 431 + if atty::is(Stream::Stdout) && options.use_colors { [INFO] [stdout] 432 + yellow_ln!("Series {}-{}", home_wins, away_wins); [INFO] [stdout] 433 + } else { [INFO] [stdout] 434 + println!("Series {}-{}", home_wins, away_wins); [INFO] [stdout] 435 + } [INFO] [stdout] 436 + println!(); [INFO] [stdout] 437 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:505:12 [INFO] [stdout] | [INFO] [stdout] 505 | goals: &'a Vec, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 505 - goals: &'a Vec, [INFO] [stdout] 505 + goals: &'a [Goal], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:543:9 [INFO] [stdout] | [INFO] [stdout] 543 | / if other.last_name == player.last_name && other.team == player.team { [INFO] [stdout] 544 | | if other.first_name != player.first_name { [INFO] [stdout] 545 | | return true; [INFO] [stdout] 546 | | } [INFO] [stdout] 547 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 543 ~ if other.last_name == player.last_name && other.team == player.team [INFO] [stdout] 544 ~ && other.first_name != player.first_name { [INFO] [stdout] 545 | return true; [INFO] [stdout] 546 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:580:5 [INFO] [stdout] | [INFO] [stdout] 580 | return Some(format!("({})", stats_messages.join(", "))); [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] 580 - return Some(format!("({})", stats_messages.join(", "))); [INFO] [stdout] 580 + Some(format!("({})", stats_messages.join(", "))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:554:17 [INFO] [stdout] | [INFO] [stdout] 554 | count_stats(&goals, &highlights, &mut stats); [INFO] [stdout] | ^^^^^^ help: change this to: `goals` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:554:25 [INFO] [stdout] | [INFO] [stdout] 554 | count_stats(&goals, &highlights, &mut stats); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `highlights` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/main.rs:562:61 [INFO] [stdout] | [INFO] [stdout] 562 | let needs_first_name: bool = has_last_name_namesake(*player, &stats); [INFO] [stdout] | ^^^^^^^ help: try: `player` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:584:55 [INFO] [stdout] | [INFO] [stdout] 584 | let message: Option = craft_stats_message(&goals, &highlights); [INFO] [stdout] | ^^^^^^ help: change this to: `goals` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:584:63 [INFO] [stdout] | [INFO] [stdout] 584 | let message: Option = craft_stats_message(&goals, &highlights); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `highlights` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/main.rs:586:5 [INFO] [stdout] | [INFO] [stdout] 586 | / match message { [INFO] [stdout] 587 | | Some(message) => { [INFO] [stdout] 588 | | if options.show_highlights { [INFO] [stdout] 589 | | yellow_ln!("{}", message); [INFO] [stdout] ... | [INFO] [stdout] 597 | | None => (), [INFO] [stdout] 598 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 586 ~ if let Some(message) = message { [INFO] [stdout] 587 + if options.show_highlights { [INFO] [stdout] 588 + yellow_ln!("{}", message); [INFO] [stdout] 589 + } else if options.use_colors { [INFO] [stdout] 590 + white_ln!("{}", message); [INFO] [stdout] 591 + } else { [INFO] [stdout] 592 + println!("{}", message); [INFO] [stdout] 593 + } [INFO] [stdout] 594 + println!(); [INFO] [stdout] 595 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:638:56 [INFO] [stdout] | [INFO] [stdout] 638 | let goal1: GoalResponse = serde_json::from_str(&first)?; [INFO] [stdout] | ^^^^^^ help: change this to: `first` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:639:56 [INFO] [stdout] | [INFO] [stdout] 639 | let goal2: GoalResponse = serde_json::from_str(&second)?; [INFO] [stdout] | ^^^^^^^ help: change this to: `second` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:640:56 [INFO] [stdout] | [INFO] [stdout] 640 | let goal3: GoalResponse = serde_json::from_str(&third)?; [INFO] [stdout] | ^^^^^^ help: change this to: `third` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:641:56 [INFO] [stdout] | [INFO] [stdout] 641 | let goal4: GoalResponse = serde_json::from_str(&overtime)?; [INFO] [stdout] | ^^^^^^^^^ help: change this to: `overtime` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:642:56 [INFO] [stdout] | [INFO] [stdout] 642 | let goal5: GoalResponse = serde_json::from_str(&shootout)?; [INFO] [stdout] | ^^^^^^^^^ help: change this to: `shootout` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:643:56 [INFO] [stdout] | [INFO] [stdout] 643 | let goal6: GoalResponse = serde_json::from_str(&playoff_ot)?; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `playoff_ot` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:644:56 [INFO] [stdout] | [INFO] [stdout] 644 | let goal7: GoalResponse = serde_json::from_str(&playoff_ot_2)?; [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `playoff_ot_2` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:645:56 [INFO] [stdout] | [INFO] [stdout] 645 | let goal8: GoalResponse = serde_json::from_str(&wrong_data)?; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `wrong_data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/main.rs:647:9 [INFO] [stdout] | [INFO] [stdout] 647 | assert_eq!(is_special(&goal1), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_assert_comparison)]` on by default [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 647 - assert_eq!(is_special(&goal1), false); [INFO] [stdout] 647 + assert!(!is_special(&goal1)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/main.rs:648:9 [INFO] [stdout] | [INFO] [stdout] 648 | assert_eq!(is_special(&goal2), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 648 - assert_eq!(is_special(&goal2), false); [INFO] [stdout] 648 + assert!(!is_special(&goal2)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/main.rs:649:9 [INFO] [stdout] | [INFO] [stdout] 649 | assert_eq!(is_special(&goal3), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 649 - assert_eq!(is_special(&goal3), false); [INFO] [stdout] 649 + assert!(!is_special(&goal3)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/main.rs:650:9 [INFO] [stdout] | [INFO] [stdout] 650 | assert_eq!(is_special(&goal4), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 650 - assert_eq!(is_special(&goal4), true); [INFO] [stdout] 650 + assert!(is_special(&goal4)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/main.rs:651:9 [INFO] [stdout] | [INFO] [stdout] 651 | assert_eq!(is_special(&goal5), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 651 - assert_eq!(is_special(&goal5), true); [INFO] [stdout] 651 + assert!(is_special(&goal5)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/main.rs:652:9 [INFO] [stdout] | [INFO] [stdout] 652 | assert_eq!(is_special(&goal6), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 652 - assert_eq!(is_special(&goal6), true); [INFO] [stdout] 652 + assert!(is_special(&goal6)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/main.rs:653:9 [INFO] [stdout] | [INFO] [stdout] 653 | assert_eq!(is_special(&goal7), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 653 - assert_eq!(is_special(&goal7), true); [INFO] [stdout] 653 + assert!(is_special(&goal7)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/main.rs:656:9 [INFO] [stdout] | [INFO] [stdout] 656 | assert_eq!(is_special(&goal8), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 656 - assert_eq!(is_special(&goal8), true); [INFO] [stdout] 656 + assert!(is_special(&goal8)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/main.rs:1199:9 [INFO] [stdout] | [INFO] [stdout] 1199 | assert_eq!(actual.as_ref().unwrap().contains(&expected), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 1199 - assert_eq!(actual.as_ref().unwrap().contains(&expected), true); [INFO] [stdout] 1199 + assert!(actual.as_ref().unwrap().contains(&expected)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/main.rs:1200:9 [INFO] [stdout] | [INFO] [stdout] 1200 | assert_eq!(actual.as_ref().unwrap().contains(&expected2), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 1200 - assert_eq!(actual.as_ref().unwrap().contains(&expected2), true); [INFO] [stdout] 1200 + assert!(actual.as_ref().unwrap().contains(&expected2)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/main.rs:1233:9 [INFO] [stdout] | [INFO] [stdout] 1233 | assert_eq!(actual.as_ref().unwrap().contains(&expected), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 1233 - assert_eq!(actual.as_ref().unwrap().contains(&expected), true); [INFO] [stdout] 1233 + assert!(actual.as_ref().unwrap().contains(&expected)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/main.rs:1234:9 [INFO] [stdout] | [INFO] [stdout] 1234 | assert_eq!(actual.as_ref().unwrap().contains(&expected2), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 1234 - assert_eq!(actual.as_ref().unwrap().contains(&expected2), true); [INFO] [stdout] 1234 + assert!(actual.as_ref().unwrap().contains(&expected2)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/main.rs:1268:9 [INFO] [stdout] | [INFO] [stdout] 1268 | assert_eq!(actual.as_ref().unwrap().contains(&expected), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 1268 - assert_eq!(actual.as_ref().unwrap().contains(&expected), true); [INFO] [stdout] 1268 + assert!(actual.as_ref().unwrap().contains(&expected)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/main.rs:1269:9 [INFO] [stdout] | [INFO] [stdout] 1269 | assert_eq!(actual.as_ref().unwrap().contains(&expected2), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 1269 - assert_eq!(actual.as_ref().unwrap().contains(&expected2), true); [INFO] [stdout] 1269 + assert!(actual.as_ref().unwrap().contains(&expected2)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/main.rs:1302:9 [INFO] [stdout] | [INFO] [stdout] 1302 | assert_eq!(actual.as_ref().unwrap().contains(&expected), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 1302 - assert_eq!(actual.as_ref().unwrap().contains(&expected), true); [INFO] [stdout] 1302 + assert!(actual.as_ref().unwrap().contains(&expected)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 27.86s [INFO] running `Command { std: "docker" "inspect" "479a5c08cc085a0356d588f8dd1aec41572c8bdcd9406373b6980dfbb7729de4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "479a5c08cc085a0356d588f8dd1aec41572c8bdcd9406373b6980dfbb7729de4", kill_on_drop: false }` [INFO] [stdout] 479a5c08cc085a0356d588f8dd1aec41572c8bdcd9406373b6980dfbb7729de4