[INFO] cloning repository https://github.com/generic-user1/mrs-matrix [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/generic-user1/mrs-matrix" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgeneric-user1%2Fmrs-matrix", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgeneric-user1%2Fmrs-matrix'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] f6f1c5f8914396f389e6463be7a68836c38729b1 [INFO] linting generic-user1/mrs-matrix against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgeneric-user1%2Fmrs-matrix" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/generic-user1/mrs-matrix [INFO] finished tweaking git repo https://github.com/generic-user1/mrs-matrix [INFO] tweaked toml for git repo https://github.com/generic-user1/mrs-matrix written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/generic-user1/mrs-matrix 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 git repo https://github.com/generic-user1/mrs-matrix 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 coolor v0.5.0 [INFO] [stderr] Downloaded crossterm v0.23.2 [INFO] [stderr] Downloaded mio v0.8.3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] 16f715cb9ba3a5bcc81ade7df0044ba1ca74a9f09ea8fabe71d270ef811ff74f [INFO] running `Command { std: "docker" "start" "-a" "16f715cb9ba3a5bcc81ade7df0044ba1ca74a9f09ea8fabe71d270ef811ff74f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "16f715cb9ba3a5bcc81ade7df0044ba1ca74a9f09ea8fabe71d270ef811ff74f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "16f715cb9ba3a5bcc81ade7df0044ba1ca74a9f09ea8fabe71d270ef811ff74f", kill_on_drop: false }` [INFO] [stdout] 16f715cb9ba3a5bcc81ade7df0044ba1ca74a9f09ea8fabe71d270ef811ff74f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] 0dabeb109386208102a4379bbe2d67efaf9319fd90bb1188b87e984242d84a89 [INFO] running `Command { std: "docker" "start" "-a" "0dabeb109386208102a4379bbe2d67efaf9319fd90bb1188b87e984242d84a89", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.126 [INFO] [stderr] Compiling proc-macro2 v1.0.40 [INFO] [stderr] Compiling quote v1.0.20 [INFO] [stderr] Compiling unicode-ident v1.0.1 [INFO] [stderr] Compiling parking_lot_core v0.9.3 [INFO] [stderr] Compiling signal-hook v0.3.14 [INFO] [stderr] Compiling syn v1.0.98 [INFO] [stderr] Checking os_str_bytes v6.1.0 [INFO] [stderr] Compiling lock_api v0.4.7 [INFO] [stderr] Checking hashbrown v0.12.1 [INFO] [stderr] Checking once_cell v1.12.0 [INFO] [stderr] Checking textwrap v0.15.0 [INFO] [stderr] Checking clap_lex v0.2.3 [INFO] [stderr] Checking indexmap v1.9.1 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Checking signal-hook-registry v1.4.0 [INFO] [stderr] Checking getrandom v0.2.7 [INFO] [stderr] Checking mio v0.8.3 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking rand_core v0.6.3 [INFO] [stderr] Checking parking_lot v0.12.1 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking signal-hook-mio v0.2.3 [INFO] [stderr] Checking crossterm v0.23.2 [INFO] [stderr] Checking coolor v0.5.0 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Compiling clap_derive v3.2.6 [INFO] [stderr] Checking clap v3.2.6 [INFO] [stderr] Checking mrs-matrix v1.0.2 (/opt/rustwide/workdir) [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/animation.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | assert!(charset.len() > 0, "cannot run anim_loop with empty character set"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!charset.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/raindrop/color_algorithms.rs:36:17 [INFO] [stdout] | [INFO] [stdout] 36 | assert!(follower_proportion >= 0.0 && follower_proportion <= 1.0, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0.0..=1.0).contains(&follower_proportion)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/raindrop/color_algorithms.rs:74:17 [INFO] [stdout] | [INFO] [stdout] 74 | assert!(follower_proportion >= 0.0 && follower_proportion <= 1.0, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0.0..=1.0).contains(&follower_proportion)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/raindrop/color_algorithms.rs:110:17 [INFO] [stdout] | [INFO] [stdout] 110 | assert!(follower_proportion >= 0.0 && follower_proportion <= 1.0, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0.0..=1.0).contains(&follower_proportion)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/raindrop.rs:216:17 [INFO] [stdout] | [INFO] [stdout] 216 | return None [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] 216 - return None [INFO] [stdout] 216 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/raindrop.rs:220:17 [INFO] [stdout] | [INFO] [stdout] 220 | / match self.follower_content.get(follower_index) { [INFO] [stdout] 221 | | Some(&val) => Some(val), [INFO] [stdout] 222 | | None => None [INFO] [stdout] 223 | | } [INFO] [stdout] | |_________________^ help: try: `self.follower_content.get(follower_index).map(|&val| val)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/animation.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | assert!(charset.len() > 0, "cannot run anim_loop with empty character set"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!charset.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> src/raindrop.rs:252:47 [INFO] [stdout] | [INFO] [stdout] 252 | let follower_proportion = (position_in_follower/follower_length).min(1.0).max(0.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `(position_in_follower / follower_length).clamp(0.0, 1.0)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min, min.is_nan(), or max.is_nan() [INFO] [stdout] = note: clamp returns NaN if the input is NaN [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] = note: `#[warn(clippy::manual_clamp)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/raindrop.rs:290:9 [INFO] [stdout] | [INFO] [stdout] 290 | /// [reinit_state](crate::raindrop::Raindrop::reinit_state) is called to re-randomize the `Raindrop` and [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 290 | /// [reinit_state](crate::raindrop::Raindrop::reinit_state) is called to re-randomize the `Raindrop` and [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/raindrop.rs:291:9 [INFO] [stdout] | [INFO] [stdout] 291 | /// move it slightly above the top of the terminal. [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 291 | /// move it slightly above the top of the terminal. [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/raindrop.rs:294:9 [INFO] [stdout] | [INFO] [stdout] 294 | /// will only have a chance of advancing this raindrop's position. If you want to move the `Raindrop` [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 294 | /// will only have a chance of advancing this raindrop's position. If you want to move the `Raindrop` [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/raindrop.rs:295:9 [INFO] [stdout] | [INFO] [stdout] 295 | /// for certain, use the [move_drop](crate::raindrop::Raindrop::move_drop) method [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 295 | /// for certain, use the [move_drop](crate::raindrop::Raindrop::move_drop) method [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/raindrop.rs:301:12 [INFO] [stdout] | [INFO] [stdout] 301 | if !(self.row_index < 0) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `(self.row_index >= 0)` [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 `if` statement can be collapsed [INFO] [stdout] --> src/raindrop.rs:301:9 [INFO] [stdout] | [INFO] [stdout] 301 | / if !(self.row_index < 0) { [INFO] [stdout] 302 | | if !self.is_visible(terminal_height){ [INFO] [stdout] 303 | | self.reinit_state(terminal_height); [INFO] [stdout] 304 | | return; [INFO] [stdout] 305 | | } [INFO] [stdout] 306 | | } [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] 301 ~ if !(self.row_index < 0) [INFO] [stdout] 302 ~ && !self.is_visible(terminal_height){ [INFO] [stdout] 303 | self.reinit_state(terminal_height); [INFO] [stdout] 304 | return; [INFO] [stdout] 305 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/animation.rs:27:33 [INFO] [stdout] | [INFO] [stdout] 27 | fn create_raindrops(charset: &Vec, color_algorithm: T, [INFO] [stdout] | ^^^^^^^^^^ the lifetime is elided here [INFO] [stdout] 28 | advance_chance:f64, terminal_width: u16, terminal_height: u16) [INFO] [stdout] 29 | -> Vec> [INFO] [stdout] | ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 29 | -> Vec> [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/raindrop/color_algorithms.rs:36:17 [INFO] [stdout] | [INFO] [stdout] 36 | assert!(follower_proportion >= 0.0 && follower_proportion <= 1.0, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0.0..=1.0).contains(&follower_proportion)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/raindrop/color_algorithms.rs:74:17 [INFO] [stdout] | [INFO] [stdout] 74 | assert!(follower_proportion >= 0.0 && follower_proportion <= 1.0, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0.0..=1.0).contains(&follower_proportion)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/raindrop/color_algorithms.rs:110:17 [INFO] [stdout] | [INFO] [stdout] 110 | assert!(follower_proportion >= 0.0 && follower_proportion <= 1.0, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0.0..=1.0).contains(&follower_proportion)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/raindrop.rs:216:17 [INFO] [stdout] | [INFO] [stdout] 216 | return None [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] 216 - return None [INFO] [stdout] 216 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/raindrop.rs:220:17 [INFO] [stdout] | [INFO] [stdout] 220 | / match self.follower_content.get(follower_index) { [INFO] [stdout] 221 | | Some(&val) => Some(val), [INFO] [stdout] 222 | | None => None [INFO] [stdout] 223 | | } [INFO] [stdout] | |_________________^ help: try: `self.follower_content.get(follower_index).map(|&val| val)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> src/raindrop.rs:252:47 [INFO] [stdout] | [INFO] [stdout] 252 | let follower_proportion = (position_in_follower/follower_length).min(1.0).max(0.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `(position_in_follower / follower_length).clamp(0.0, 1.0)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min, min.is_nan(), or max.is_nan() [INFO] [stdout] = note: clamp returns NaN if the input is NaN [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] = note: `#[warn(clippy::manual_clamp)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/raindrop.rs:290:9 [INFO] [stdout] | [INFO] [stdout] 290 | /// [reinit_state](crate::raindrop::Raindrop::reinit_state) is called to re-randomize the `Raindrop` and [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 290 | /// [reinit_state](crate::raindrop::Raindrop::reinit_state) is called to re-randomize the `Raindrop` and [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/raindrop.rs:291:9 [INFO] [stdout] | [INFO] [stdout] 291 | /// move it slightly above the top of the terminal. [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 291 | /// move it slightly above the top of the terminal. [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/raindrop.rs:294:9 [INFO] [stdout] | [INFO] [stdout] 294 | /// will only have a chance of advancing this raindrop's position. If you want to move the `Raindrop` [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 294 | /// will only have a chance of advancing this raindrop's position. If you want to move the `Raindrop` [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/raindrop.rs:295:9 [INFO] [stdout] | [INFO] [stdout] 295 | /// for certain, use the [move_drop](crate::raindrop::Raindrop::move_drop) method [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 295 | /// for certain, use the [move_drop](crate::raindrop::Raindrop::move_drop) method [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/raindrop.rs:301:12 [INFO] [stdout] | [INFO] [stdout] 301 | if !(self.row_index < 0) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `(self.row_index >= 0)` [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 `if` statement can be collapsed [INFO] [stdout] --> src/raindrop.rs:301:9 [INFO] [stdout] | [INFO] [stdout] 301 | / if !(self.row_index < 0) { [INFO] [stdout] 302 | | if !self.is_visible(terminal_height){ [INFO] [stdout] 303 | | self.reinit_state(terminal_height); [INFO] [stdout] 304 | | return; [INFO] [stdout] 305 | | } [INFO] [stdout] 306 | | } [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] 301 ~ if !(self.row_index < 0) [INFO] [stdout] 302 ~ && !self.is_visible(terminal_height){ [INFO] [stdout] 303 | self.reinit_state(terminal_height); [INFO] [stdout] 304 | return; [INFO] [stdout] 305 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/animation.rs:27:33 [INFO] [stdout] | [INFO] [stdout] 27 | fn create_raindrops(charset: &Vec, color_algorithm: T, [INFO] [stdout] | ^^^^^^^^^^ the lifetime is elided here [INFO] [stdout] 28 | advance_chance:f64, terminal_width: u16, terminal_height: u16) [INFO] [stdout] 29 | -> Vec> [INFO] [stdout] | ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 29 | -> Vec> [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/main.rs:60:22 [INFO] [stdout] | [INFO] [stdout] 60 | let charset = if args.custom_charset == None { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `Option::is_none()` instead: `args.custom_charset.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] = note: `#[warn(clippy::partialeq_to_none)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/main.rs:131:13 [INFO] [stdout] | [INFO] [stdout] 131 | Err(format!("framerate cannot be zero")) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"framerate cannot be zero".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/main.rs:60:22 [INFO] [stdout] | [INFO] [stdout] 60 | let charset = if args.custom_charset == None { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `Option::is_none()` instead: `args.custom_charset.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] = note: `#[warn(clippy::partialeq_to_none)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/main.rs:131:13 [INFO] [stdout] | [INFO] [stdout] 131 | Err(format!("framerate cannot be zero")) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"framerate cannot be zero".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.82s [INFO] running `Command { std: "docker" "inspect" "0dabeb109386208102a4379bbe2d67efaf9319fd90bb1188b87e984242d84a89", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0dabeb109386208102a4379bbe2d67efaf9319fd90bb1188b87e984242d84a89", kill_on_drop: false }` [INFO] [stdout] 0dabeb109386208102a4379bbe2d67efaf9319fd90bb1188b87e984242d84a89