[INFO] cloning repository https://github.com/hydrogenhallide/ubersweeper [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/hydrogenhallide/ubersweeper" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhydrogenhallide%2Fubersweeper", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhydrogenhallide%2Fubersweeper'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 62f8bd532415272fdaf1cb6b51a9e892d7f5e76b [INFO] linting hydrogenhallide/ubersweeper against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhydrogenhallide%2Fubersweeper" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/hydrogenhallide/ubersweeper [INFO] finished tweaking git repo https://github.com/hydrogenhallide/ubersweeper [INFO] tweaked toml for git repo https://github.com/hydrogenhallide/ubersweeper written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/hydrogenhallide/ubersweeper 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/hydrogenhallide/ubersweeper 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] Downloading crates ... [INFO] [stderr] Downloaded pango v0.20.12 [INFO] [stderr] Downloaded pango-sys v0.20.10 [INFO] [stderr] Downloaded cairo-sys-rs v0.20.10 [INFO] [stderr] Downloaded pangocairo v0.20.10 [INFO] [stderr] Downloaded gobject-sys v0.20.10 [INFO] [stderr] Downloaded pangocairo-sys v0.20.10 [INFO] [stderr] Downloaded graphene-sys v0.20.10 [INFO] [stderr] Downloaded gdk-pixbuf-sys v0.20.10 [INFO] [stderr] Downloaded gdk-pixbuf v0.20.10 [INFO] [stderr] Downloaded graphene-rs v0.20.10 [INFO] [stderr] Downloaded gdk4 v0.9.6 [INFO] [stderr] Downloaded gdk4-sys v0.9.6 [INFO] [stderr] Downloaded glib-macros v0.20.12 [INFO] [stderr] Downloaded gio-sys v0.20.10 [INFO] [stderr] Downloaded zerocopy-derive v0.8.35 [INFO] [stderr] Downloaded gtk4-sys v0.9.6 [INFO] [stderr] Downloaded cairo-rs v0.20.12 [INFO] [stderr] Downloaded gsk4 v0.9.6 [INFO] [stderr] Downloaded gsk4-sys v0.9.6 [INFO] [stderr] Downloaded gio v0.20.12 [INFO] [stderr] Downloaded glib-sys v0.20.10 [INFO] [stderr] Downloaded zerocopy v0.8.35 [INFO] [stderr] Downloaded gtk4-macros v0.9.5 [INFO] [stderr] Downloaded glib v0.20.12 [INFO] [stderr] Downloaded gtk4 v0.9.7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 753db6a21daf6405cbd79e1c2f90d4bfe6ba6027e2fdbe9e9e8a41bcffca7809 [INFO] running `Command { std: "docker" "start" "-a" "753db6a21daf6405cbd79e1c2f90d4bfe6ba6027e2fdbe9e9e8a41bcffca7809", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "753db6a21daf6405cbd79e1c2f90d4bfe6ba6027e2fdbe9e9e8a41bcffca7809", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "753db6a21daf6405cbd79e1c2f90d4bfe6ba6027e2fdbe9e9e8a41bcffca7809", kill_on_drop: false }` [INFO] [stdout] 753db6a21daf6405cbd79e1c2f90d4bfe6ba6027e2fdbe9e9e8a41bcffca7809 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 8aff2c8d6150f536d674b12dfca7e9f61aa0f59a72776bd2841b0ecacd343336 [INFO] running `Command { std: "docker" "start" "-a" "8aff2c8d6150f536d674b12dfca7e9f61aa0f59a72776bd2841b0ecacd343336", kill_on_drop: false }` [INFO] [stderr] Compiling winnow v0.7.14 [INFO] [stderr] Compiling toml_datetime v0.7.5+spec-1.1.0 [INFO] [stderr] Compiling target-lexicon v0.13.3 [INFO] [stderr] Compiling serde_spanned v1.0.4 [INFO] [stderr] Compiling version-compare v0.2.1 [INFO] [stderr] Compiling libc v0.2.180 [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling unicode-ident v1.0.22 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Checking futures-core v0.3.31 [INFO] [stderr] Checking memchr v2.7.6 [INFO] [stderr] Checking bitflags v2.10.0 [INFO] [stderr] Compiling gio v0.20.12 [INFO] [stderr] Compiling zerocopy v0.8.35 [INFO] [stderr] Checking cfg-if v1.0.4 [INFO] [stderr] Checking futures-channel v0.3.31 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling syn v2.0.114 [INFO] [stderr] Compiling cfg-expr v0.20.6 [INFO] [stderr] Checking getrandom v0.2.17 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Compiling toml_parser v1.0.6+spec-1.1.0 [INFO] [stderr] Compiling toml v0.9.11+spec-1.1.0 [INFO] [stderr] Compiling toml_edit v0.23.10+spec-1.0.0 [INFO] [stderr] Compiling system-deps v7.0.7 [INFO] [stderr] Compiling proc-macro-crate v3.4.0 [INFO] [stderr] Compiling glib-sys v0.20.10 [INFO] [stderr] Compiling gobject-sys v0.20.10 [INFO] [stderr] Compiling gio-sys v0.20.10 [INFO] [stderr] Compiling cairo-sys-rs v0.20.10 [INFO] [stderr] Compiling pango-sys v0.20.10 [INFO] [stderr] Compiling gdk-pixbuf-sys v0.20.10 [INFO] [stderr] Compiling gdk4-sys v0.9.6 [INFO] [stderr] Compiling graphene-sys v0.20.10 [INFO] [stderr] Compiling gsk4-sys v0.9.6 [INFO] [stderr] Compiling pangocairo-sys v0.20.10 [INFO] [stderr] Compiling gtk4-sys v0.9.6 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling glib-macros v0.20.12 [INFO] [stderr] Compiling gtk4-macros v0.9.5 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking glib v0.20.12 [INFO] [stderr] Checking cairo-rs v0.20.12 [INFO] [stderr] Checking graphene-rs v0.20.10 [INFO] [stderr] Checking pango v0.20.12 [INFO] [stderr] Checking gdk-pixbuf v0.20.10 [INFO] [stderr] Checking gdk4 v0.9.6 [INFO] [stderr] Checking pangocairo v0.20.10 [INFO] [stderr] Checking gsk4 v0.9.6 [INFO] [stderr] Checking gtk4 v0.9.7 [INFO] [stderr] Checking ubersweeper v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary braces around method argument [INFO] [stdout] --> src/variants/threed.rs:690:31 [INFO] [stdout] | [INFO] [stdout] 690 | drag.connect_drag_end({ move |_, _, _| { *active.borrow_mut() = None; } }); [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_braces)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 690 - drag.connect_drag_end({ move |_, _, _| { *active.borrow_mut() = None; } }); [INFO] [stdout] 690 + drag.connect_drag_end(move |_, _, _| { *active.borrow_mut() = None; } ); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around method argument [INFO] [stdout] --> src/variants/threed.rs:690:31 [INFO] [stdout] | [INFO] [stdout] 690 | drag.connect_drag_end({ move |_, _, _| { *active.borrow_mut() = None; } }); [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_braces)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 690 - drag.connect_drag_end({ move |_, _, _| { *active.borrow_mut() = None; } }); [INFO] [stdout] 690 + drag.connect_drag_end(move |_, _, _| { *active.borrow_mut() = None; } ); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `positions` [INFO] [stdout] --> src/game.rs:92:18 [INFO] [stdout] | [INFO] [stdout] 92 | for i in 0..num_cells.min(positions.len()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 92 - for i in 0..num_cells.min(positions.len()) { [INFO] [stdout] 92 + for in positions.iter().take(num_cells.min(positions.len())) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `positions` [INFO] [stdout] --> src/game.rs:151:22 [INFO] [stdout] | [INFO] [stdout] 151 | for i in 0..self.mine_count.min(positions.len()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 151 - for i in 0..self.mine_count.min(positions.len()) { [INFO] [stdout] 151 + for in positions.iter().take(self.mine_count.min(positions.len())) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `positions` [INFO] [stdout] --> src/game.rs:196:18 [INFO] [stdout] | [INFO] [stdout] 196 | for i in 0..self.mine_count.min(positions.len()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 196 - for i in 0..self.mine_count.min(positions.len()) { [INFO] [stdout] 196 + for in positions.iter().take(self.mine_count.min(positions.len())) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/game.rs:339:21 [INFO] [stdout] | [INFO] [stdout] 339 | / if self.grid[ny][nx].state == CellState::Hidden { [INFO] [stdout] 340 | | if self.reveal(nx, ny) { revealed = true; } [INFO] [stdout] 341 | | } [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] 339 ~ if self.grid[ny][nx].state == CellState::Hidden [INFO] [stdout] 340 ~ && self.reveal(nx, ny) { revealed = true; } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/game.rs:364:21 [INFO] [stdout] | [INFO] [stdout] 364 | / if self.grid[ny][nx].state == CellState::Hidden { [INFO] [stdout] 365 | | if self.reveal(nx, ny) { revealed = true; } [INFO] [stdout] 366 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 364 ~ if self.grid[ny][nx].state == CellState::Hidden [INFO] [stdout] 365 ~ && self.reveal(nx, ny) { revealed = true; } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `x` is used to index `new_grid` [INFO] [stdout] --> src/game.rs:428:22 [INFO] [stdout] | [INFO] [stdout] 428 | for x in 0..old_w { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 428 - for x in 0..old_w { [INFO] [stdout] 428 + for (x, ) in new_grid.iter_mut().enumerate().take(old_w) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `positions` [INFO] [stdout] --> src/game.rs:92:18 [INFO] [stdout] | [INFO] [stdout] 92 | for i in 0..num_cells.min(positions.len()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 92 - for i in 0..num_cells.min(positions.len()) { [INFO] [stdout] 92 + for in positions.iter().take(num_cells.min(positions.len())) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/game.rs:451:30 [INFO] [stdout] | [INFO] [stdout] 451 | let mut assignments: Vec<((usize, usize), (usize, usize), u8, bool)> = Vec::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/game.rs:505:45 [INFO] [stdout] | [INFO] [stdout] 505 | CellState::Flagged => !(cell.mines == 1 && !cell.is_negative), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `cell.mines != 1 || cell.is_negative` [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: the loop variable `i` is only used to index `positions` [INFO] [stdout] --> src/game.rs:151:22 [INFO] [stdout] | [INFO] [stdout] 151 | for i in 0..self.mine_count.min(positions.len()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 151 - for i in 0..self.mine_count.min(positions.len()) { [INFO] [stdout] 151 + for in positions.iter().take(self.mine_count.min(positions.len())) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `positions` [INFO] [stdout] --> src/game.rs:196:18 [INFO] [stdout] | [INFO] [stdout] 196 | for i in 0..self.mine_count.min(positions.len()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 196 - for i in 0..self.mine_count.min(positions.len()) { [INFO] [stdout] 196 + for in positions.iter().take(self.mine_count.min(positions.len())) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/game.rs:339:21 [INFO] [stdout] | [INFO] [stdout] 339 | / if self.grid[ny][nx].state == CellState::Hidden { [INFO] [stdout] 340 | | if self.reveal(nx, ny) { revealed = true; } [INFO] [stdout] 341 | | } [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] 339 ~ if self.grid[ny][nx].state == CellState::Hidden [INFO] [stdout] 340 ~ && self.reveal(nx, ny) { revealed = true; } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/game.rs:364:21 [INFO] [stdout] | [INFO] [stdout] 364 | / if self.grid[ny][nx].state == CellState::Hidden { [INFO] [stdout] 365 | | if self.reveal(nx, ny) { revealed = true; } [INFO] [stdout] 366 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 364 ~ if self.grid[ny][nx].state == CellState::Hidden [INFO] [stdout] 365 ~ && self.reveal(nx, ny) { revealed = true; } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `x` is used to index `new_grid` [INFO] [stdout] --> src/game.rs:428:22 [INFO] [stdout] | [INFO] [stdout] 428 | for x in 0..old_w { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 428 - for x in 0..old_w { [INFO] [stdout] 428 + for (x, ) in new_grid.iter_mut().enumerate().take(old_w) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/game.rs:451:30 [INFO] [stdout] | [INFO] [stdout] 451 | let mut assignments: Vec<((usize, usize), (usize, usize), u8, bool)> = Vec::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/game.rs:505:45 [INFO] [stdout] | [INFO] [stdout] 505 | CellState::Flagged => !(cell.mines == 1 && !cell.is_negative), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `cell.mines != 1 || cell.is_negative` [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 function has too many arguments (11/7) [INFO] [stdout] --> src/ui.rs:335:5 [INFO] [stdout] | [INFO] [stdout] 335 | / fn show_custom_dialog( [INFO] [stdout] 336 | | window: &ApplicationWindow, [INFO] [stdout] 337 | | game: &Rc>, [INFO] [stdout] 338 | | difficulty: &Rc>, [INFO] [stdout] ... | [INFO] [stdout] 346 | | timer_source: &Rc>>, [INFO] [stdout] 347 | | ) { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (11/7) [INFO] [stdout] --> src/ui.rs:335:5 [INFO] [stdout] | [INFO] [stdout] 335 | / fn show_custom_dialog( [INFO] [stdout] 336 | | window: &ApplicationWindow, [INFO] [stdout] 337 | | game: &Rc>, [INFO] [stdout] 338 | | difficulty: &Rc>, [INFO] [stdout] ... | [INFO] [stdout] 346 | | timer_source: &Rc>>, [INFO] [stdout] 347 | | ) { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/variants/minelayer.rs:71:17 [INFO] [stdout] | [INFO] [stdout] 71 | / if nx >= 0 && nx < self.width as i32 && ny >= 0 && ny < self.height as i32 { [INFO] [stdout] 72 | | if self.placed[ny as usize][nx as usize] { n -= 1; } [INFO] [stdout] 73 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 71 ~ if nx >= 0 && nx < self.width as i32 && ny >= 0 && ny < self.height as i32 [INFO] [stdout] 72 ~ && self.placed[ny as usize][nx as usize] { n -= 1; } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/variants/minelayer.rs:71:17 [INFO] [stdout] | [INFO] [stdout] 71 | / if nx >= 0 && nx < self.width as i32 && ny >= 0 && ny < self.height as i32 { [INFO] [stdout] 72 | | if self.placed[ny as usize][nx as usize] { n -= 1; } [INFO] [stdout] 73 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 71 ~ if nx >= 0 && nx < self.width as i32 && ny >= 0 && ny < self.height as i32 [INFO] [stdout] 72 ~ && self.placed[ny as usize][nx as usize] { n -= 1; } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/variants/kudzu.rs:417:21 [INFO] [stdout] | [INFO] [stdout] 417 | let has_kudzu = kudzu.map_or(false, |k| k.kudzu[y][x]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 417 - let has_kudzu = kudzu.map_or(false, |k| k.kudzu[y][x]); [INFO] [stdout] 417 + let has_kudzu = kudzu.is_some_and(|k| k.kudzu[y][x]); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/variants/nested.rs:74:21 [INFO] [stdout] | [INFO] [stdout] 74 | / if nx >= 0 && nx < self.w as i32 && ny >= 0 && ny < self.h as i32 { [INFO] [stdout] 75 | | if self.grid[ny as usize][nx as usize].is_mine { n += 1; } [INFO] [stdout] 76 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 74 ~ if nx >= 0 && nx < self.w as i32 && ny >= 0 && ny < self.h as i32 [INFO] [stdout] 75 ~ && self.grid[ny as usize][nx as usize].is_mine { n += 1; } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> src/variants/nested.rs:393:1 [INFO] [stdout] | [INFO] [stdout] 393 | / fn open_sequence( [INFO] [stdout] 394 | | queue: Rc>>, [INFO] [stdout] 395 | | parent: Option, [INFO] [stdout] 396 | | ig: Rc>>>>, [INFO] [stdout] ... | [INFO] [stdout] 403 | | tl: Rc>>, [INFO] [stdout] 404 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/variants/kudzu.rs:417:21 [INFO] [stdout] | [INFO] [stdout] 417 | let has_kudzu = kudzu.map_or(false, |k| k.kudzu[y][x]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 417 - let has_kudzu = kudzu.map_or(false, |k| k.kudzu[y][x]); [INFO] [stdout] 417 + let has_kudzu = kudzu.is_some_and(|k| k.kudzu[y][x]); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/variants/chain.rs:37:13 [INFO] [stdout] | [INFO] [stdout] 37 | / if nx >= 0 && nx < game.width as isize && ny >= 0 && ny < game.height as isize { [INFO] [stdout] 38 | | if game.grid[ny as usize][nx as usize].state == CellState::Revealed { [INFO] [stdout] 39 | | return true; [INFO] [stdout] 40 | | } [INFO] [stdout] 41 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 37 ~ if nx >= 0 && nx < game.width as isize && ny >= 0 && ny < game.height as isize [INFO] [stdout] 38 ~ && game.grid[ny as usize][nx as usize].state == CellState::Revealed { [INFO] [stdout] 39 | return true; [INFO] [stdout] 40 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/variants/nested.rs:74:21 [INFO] [stdout] | [INFO] [stdout] 74 | / if nx >= 0 && nx < self.w as i32 && ny >= 0 && ny < self.h as i32 { [INFO] [stdout] 75 | | if self.grid[ny as usize][nx as usize].is_mine { n += 1; } [INFO] [stdout] 76 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 74 ~ if nx >= 0 && nx < self.w as i32 && ny >= 0 && ny < self.h as i32 [INFO] [stdout] 75 ~ && self.grid[ny as usize][nx as usize].is_mine { n += 1; } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/variants/chain.rs:121:19 [INFO] [stdout] | [INFO] [stdout] 121 | let has_5x5 = last_pos.map_or(false, |lp| any_in_5x5(&game_ref, lp)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 121 - let has_5x5 = last_pos.map_or(false, |lp| any_in_5x5(&game_ref, lp)); [INFO] [stdout] 121 + let has_5x5 = last_pos.is_some_and(|lp| any_in_5x5(&game_ref, lp)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/variants/chain.rs:220:31 [INFO] [stdout] | [INFO] [stdout] 220 | let has_5x5 = lp.map_or(false, |lp| any_in_5x5(&gr, lp)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 220 - let has_5x5 = lp.map_or(false, |lp| any_in_5x5(&gr, lp)); [INFO] [stdout] 220 + let has_5x5 = lp.is_some_and(|lp| any_in_5x5(&gr, lp)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/variants/chain.rs:251:31 [INFO] [stdout] | [INFO] [stdout] 251 | let has_5x5 = lp.map_or(false, |lp| any_in_5x5(&gr, lp)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 251 - let has_5x5 = lp.map_or(false, |lp| any_in_5x5(&gr, lp)); [INFO] [stdout] 251 + let has_5x5 = lp.is_some_and(|lp| any_in_5x5(&gr, lp)); [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/variants/offset.rs:74:11 [INFO] [stdout] | [INFO] [stdout] 74 | dirs: &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] 74 - dirs: &Vec>, [INFO] [stdout] 74 + dirs: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `y` is used to index `dirs` [INFO] [stdout] --> src/variants/offset.rs:81:14 [INFO] [stdout] | [INFO] [stdout] 81 | for y in 0..game_ref.height { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 81 - for y in 0..game_ref.height { [INFO] [stdout] 81 + for (y, ) in dirs.iter().enumerate().take(game_ref.height) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `x` is used to index `dirs` [INFO] [stdout] --> src/variants/offset.rs:82:18 [INFO] [stdout] | [INFO] [stdout] 82 | for x in 0..game_ref.width { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 82 - for x in 0..game_ref.width { [INFO] [stdout] 82 + for (x, ) in dirs.iter().enumerate().take(game_ref.width) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> src/variants/nested.rs:393:1 [INFO] [stdout] | [INFO] [stdout] 393 | / fn open_sequence( [INFO] [stdout] 394 | | queue: Rc>>, [INFO] [stdout] 395 | | parent: Option, [INFO] [stdout] 396 | | ig: Rc>>>>, [INFO] [stdout] ... | [INFO] [stdout] 403 | | tl: Rc>>, [INFO] [stdout] 404 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/variants/chain.rs:37:13 [INFO] [stdout] | [INFO] [stdout] 37 | / if nx >= 0 && nx < game.width as isize && ny >= 0 && ny < game.height as isize { [INFO] [stdout] 38 | | if game.grid[ny as usize][nx as usize].state == CellState::Revealed { [INFO] [stdout] 39 | | return true; [INFO] [stdout] 40 | | } [INFO] [stdout] 41 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 37 ~ if nx >= 0 && nx < game.width as isize && ny >= 0 && ny < game.height as isize [INFO] [stdout] 38 ~ && game.grid[ny as usize][nx as usize].state == CellState::Revealed { [INFO] [stdout] 39 | return true; [INFO] [stdout] 40 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/variants/chain.rs:121:19 [INFO] [stdout] | [INFO] [stdout] 121 | let has_5x5 = last_pos.map_or(false, |lp| any_in_5x5(&game_ref, lp)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 121 - let has_5x5 = last_pos.map_or(false, |lp| any_in_5x5(&game_ref, lp)); [INFO] [stdout] 121 + let has_5x5 = last_pos.is_some_and(|lp| any_in_5x5(&game_ref, lp)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/variants/chain.rs:220:31 [INFO] [stdout] | [INFO] [stdout] 220 | let has_5x5 = lp.map_or(false, |lp| any_in_5x5(&gr, lp)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 220 - let has_5x5 = lp.map_or(false, |lp| any_in_5x5(&gr, lp)); [INFO] [stdout] 220 + let has_5x5 = lp.is_some_and(|lp| any_in_5x5(&gr, lp)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/variants/chain.rs:251:31 [INFO] [stdout] | [INFO] [stdout] 251 | let has_5x5 = lp.map_or(false, |lp| any_in_5x5(&gr, lp)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 251 - let has_5x5 = lp.map_or(false, |lp| any_in_5x5(&gr, lp)); [INFO] [stdout] 251 + let has_5x5 = lp.is_some_and(|lp| any_in_5x5(&gr, lp)); [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/variants/offset.rs:74:11 [INFO] [stdout] | [INFO] [stdout] 74 | dirs: &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] 74 - dirs: &Vec>, [INFO] [stdout] 74 + dirs: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `y` is used to index `dirs` [INFO] [stdout] --> src/variants/offset.rs:81:14 [INFO] [stdout] | [INFO] [stdout] 81 | for y in 0..game_ref.height { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 81 - for y in 0..game_ref.height { [INFO] [stdout] 81 + for (y, ) in dirs.iter().enumerate().take(game_ref.height) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `x` is used to index `dirs` [INFO] [stdout] --> src/variants/offset.rs:82:18 [INFO] [stdout] | [INFO] [stdout] 82 | for x in 0..game_ref.width { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 82 - for x in 0..game_ref.width { [INFO] [stdout] 82 + for (x, ) in dirs.iter().enumerate().take(game_ref.width) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/variants/marathon.rs:149:1 [INFO] [stdout] | [INFO] [stdout] 149 | / fn on_move( [INFO] [stdout] 150 | | game: &Rc>, [INFO] [stdout] 151 | | board: &Rc>>, [INFO] [stdout] 152 | | mine_label: &Rc>>, [INFO] [stdout] ... | [INFO] [stdout] 157 | | rows_cleared: &Rc>, [INFO] [stdout] 158 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/variants/merge.rs:316:16 [INFO] [stdout] | [INFO] [stdout] 316 | buttons: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 316 - buttons: &Vec>, [INFO] [stdout] 316 + buttons: &[Vec