[INFO] cloning repository https://github.com/BigHomem/minesweeper [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/BigHomem/minesweeper" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBigHomem%2Fminesweeper", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBigHomem%2Fminesweeper'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 3d61e0b4f06f6a29a93b05d125287fdf332cf966 [INFO] linting BigHomem/minesweeper against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBigHomem%2Fminesweeper" "/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/BigHomem/minesweeper [INFO] finished tweaking git repo https://github.com/BigHomem/minesweeper [INFO] tweaked toml for git repo https://github.com/BigHomem/minesweeper written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/BigHomem/minesweeper 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/BigHomem/minesweeper 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] 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] 7f51c4ec9c264cbf6fbe5b83f1dc6c422dce093cca9d528461bb9d429d440554 [INFO] running `Command { std: "docker" "start" "-a" "7f51c4ec9c264cbf6fbe5b83f1dc6c422dce093cca9d528461bb9d429d440554", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "7f51c4ec9c264cbf6fbe5b83f1dc6c422dce093cca9d528461bb9d429d440554", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7f51c4ec9c264cbf6fbe5b83f1dc6c422dce093cca9d528461bb9d429d440554", kill_on_drop: false }` [INFO] [stdout] 7f51c4ec9c264cbf6fbe5b83f1dc6c422dce093cca9d528461bb9d429d440554 [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] 5403f6c70048ffc4123a5bd68d86be6f8b2ccaf011f0dd03fd8e1854fe45efd3 [INFO] running `Command { std: "docker" "start" "-a" "5403f6c70048ffc4123a5bd68d86be6f8b2ccaf011f0dd03fd8e1854fe45efd3", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.137 [INFO] [stderr] Compiling parking_lot_core v0.9.4 [INFO] [stderr] Compiling signal-hook v0.3.14 [INFO] [stderr] Checking getrandom v0.2.8 [INFO] [stderr] Checking signal-hook-registry v1.4.0 [INFO] [stderr] Checking mio v0.8.5 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking parking_lot v0.12.1 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking signal-hook-mio v0.2.3 [INFO] [stderr] Checking crossterm v0.25.0 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking minesweeper v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/main.rs:17:40 [INFO] [stdout] | [INFO] [stdout] 17 | Self::Clicked(0, false) => format!(" "), [INFO] [stdout] | ^^^^^^^^^^^^ help: consider using `.to_string()`: `" ".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: useless use of `format!` [INFO] [stdout] --> src/main.rs:17:40 [INFO] [stdout] | [INFO] [stdout] 17 | Self::Clicked(0, false) => format!(" "), [INFO] [stdout] | ^^^^^^^^^^^^ help: consider using `.to_string()`: `" ".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: useless use of `format!` [INFO] [stdout] --> src/main.rs:23:49 [INFO] [stdout] | [INFO] [stdout] 23 | Self::Normal(0, false) if forced => format!(" "), [INFO] [stdout] | ^^^^^^^^^^^^ help: consider using `.to_string()`: `" ".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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/main.rs:23:49 [INFO] [stdout] | [INFO] [stdout] 23 | Self::Normal(0, false) if forced => format!(" "), [INFO] [stdout] | ^^^^^^^^^^^^ help: consider using `.to_string()`: `" ".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] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:58:20 [INFO] [stdout] | [INFO] [stdout] 58 | fn chain_dig(game: &mut Vec, h: i32, w: i32) -> bool { [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] 58 - fn chain_dig(game: &mut Vec, h: i32, w: i32) -> bool { [INFO] [stdout] 58 + fn chain_dig(game: &mut [Tile], h: i32, w: i32) -> bool { [INFO] [stdout] | [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:67:17 [INFO] [stdout] | [INFO] [stdout] 67 | / match game[i].state { [INFO] [stdout] 68 | | State::Normal(x, false) => { [INFO] [stdout] 69 | | done = false; [INFO] [stdout] 70 | | game[i].state = State::Clicked(x, false); [INFO] [stdout] 71 | | } [INFO] [stdout] 72 | | _ => () [INFO] [stdout] 73 | | } [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] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 67 ~ if let State::Normal(x, false) = game[i].state { [INFO] [stdout] 68 + done = false; [INFO] [stdout] 69 + game[i].state = State::Clicked(x, false); [INFO] [stdout] 70 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:85:79 [INFO] [stdout] | [INFO] [stdout] 85 | crossterm::event::Event::Key(KeyEvent {code: KeyCode::Up, ..}) if !(x < w) => break Input::Up, [INFO] [stdout] | ^^^^^^^^ help: try: `(x >= w)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:86:81 [INFO] [stdout] | [INFO] [stdout] 86 | crossterm::event::Event::Key(KeyEvent {code: KeyCode::Down, ..}) if !(x - l > -w) => break Input::Down, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `(x - l <= -w)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:87:81 [INFO] [stdout] | [INFO] [stdout] 87 | crossterm::event::Event::Key(KeyEvent {code: KeyCode::Left, ..}) if !(x % w == 0) => break Input::Left, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `(x % w != 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:88:82 [INFO] [stdout] | [INFO] [stdout] 88 | crossterm::event::Event::Key(KeyEvent {code: KeyCode::Right, ..}) if !(x % w == w - 1) => break Input::Right, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `(x % w != w - 1)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:94:23 [INFO] [stdout] | [INFO] [stdout] 94 | fn handle_input(game: &mut Vec, index: &mut i32, width: i32, input: Input) -> GameState { [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] 94 - fn handle_input(game: &mut Vec, index: &mut i32, width: i32, input: Input) -> GameState { [INFO] [stdout] 94 + fn handle_input(game: &mut [Tile], index: &mut i32, width: i32, input: Input) -> GameState { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/main.rs:96:22 [INFO] [stdout] | [INFO] [stdout] 96 | Input::Up => *index = *index - width, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `*index -= width` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/main.rs:97:24 [INFO] [stdout] | [INFO] [stdout] 97 | Input::Down => *index = *index + width, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `*index += width` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/main.rs:98:24 [INFO] [stdout] | [INFO] [stdout] 98 | Input::Left => *index = *index - 1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `*index -= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/main.rs:99:25 [INFO] [stdout] | [INFO] [stdout] 99 | Input::Right => *index = *index + 1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `*index += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/main.rs:144:36 [INFO] [stdout] | [INFO] [stdout] 144 | tiles[tile as usize] = match tiles[tile as usize] { [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 145 | | Some(x) => Some(x + 1), [INFO] [stdout] 146 | | None => None [INFO] [stdout] 147 | | } [INFO] [stdout] | |_____________^ help: try: `tiles[tile as usize].map(|x| x + 1)` [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:163:17 [INFO] [stdout] | [INFO] [stdout] 163 | fn render(game: &Vec, width: i32, index: usize, forced: bool) { [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] 163 - fn render(game: &Vec, width: i32, index: usize, forced: bool) { [INFO] [stdout] 163 + fn render(game: &[Tile], width: i32, index: usize, forced: bool) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:58:20 [INFO] [stdout] | [INFO] [stdout] 58 | fn chain_dig(game: &mut Vec, h: i32, w: i32) -> bool { [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] 58 - fn chain_dig(game: &mut Vec, h: i32, w: i32) -> bool { [INFO] [stdout] 58 + fn chain_dig(game: &mut [Tile], h: i32, w: i32) -> bool { [INFO] [stdout] | [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:67:17 [INFO] [stdout] | [INFO] [stdout] 67 | / match game[i].state { [INFO] [stdout] 68 | | State::Normal(x, false) => { [INFO] [stdout] 69 | | done = false; [INFO] [stdout] 70 | | game[i].state = State::Clicked(x, false); [INFO] [stdout] 71 | | } [INFO] [stdout] 72 | | _ => () [INFO] [stdout] 73 | | } [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] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 67 ~ if let State::Normal(x, false) = game[i].state { [INFO] [stdout] 68 + done = false; [INFO] [stdout] 69 + game[i].state = State::Clicked(x, false); [INFO] [stdout] 70 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:85:79 [INFO] [stdout] | [INFO] [stdout] 85 | crossterm::event::Event::Key(KeyEvent {code: KeyCode::Up, ..}) if !(x < w) => break Input::Up, [INFO] [stdout] | ^^^^^^^^ help: try: `(x >= w)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:86:81 [INFO] [stdout] | [INFO] [stdout] 86 | crossterm::event::Event::Key(KeyEvent {code: KeyCode::Down, ..}) if !(x - l > -w) => break Input::Down, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `(x - l <= -w)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:87:81 [INFO] [stdout] | [INFO] [stdout] 87 | crossterm::event::Event::Key(KeyEvent {code: KeyCode::Left, ..}) if !(x % w == 0) => break Input::Left, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `(x % w != 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:88:82 [INFO] [stdout] | [INFO] [stdout] 88 | crossterm::event::Event::Key(KeyEvent {code: KeyCode::Right, ..}) if !(x % w == w - 1) => break Input::Right, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `(x % w != w - 1)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:94:23 [INFO] [stdout] | [INFO] [stdout] 94 | fn handle_input(game: &mut Vec, index: &mut i32, width: i32, input: Input) -> GameState { [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] 94 - fn handle_input(game: &mut Vec, index: &mut i32, width: i32, input: Input) -> GameState { [INFO] [stdout] 94 + fn handle_input(game: &mut [Tile], index: &mut i32, width: i32, input: Input) -> GameState { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/main.rs:96:22 [INFO] [stdout] | [INFO] [stdout] 96 | Input::Up => *index = *index - width, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `*index -= width` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/main.rs:97:24 [INFO] [stdout] | [INFO] [stdout] 97 | Input::Down => *index = *index + width, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `*index += width` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/main.rs:98:24 [INFO] [stdout] | [INFO] [stdout] 98 | Input::Left => *index = *index - 1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `*index -= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/main.rs:99:25 [INFO] [stdout] | [INFO] [stdout] 99 | Input::Right => *index = *index + 1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `*index += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/main.rs:144:36 [INFO] [stdout] | [INFO] [stdout] 144 | tiles[tile as usize] = match tiles[tile as usize] { [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 145 | | Some(x) => Some(x + 1), [INFO] [stdout] 146 | | None => None [INFO] [stdout] 147 | | } [INFO] [stdout] | |_____________^ help: try: `tiles[tile as usize].map(|x| x + 1)` [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:163:17 [INFO] [stdout] | [INFO] [stdout] 163 | fn render(game: &Vec, width: i32, index: usize, forced: bool) { [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] 163 - fn render(game: &Vec, width: i32, index: usize, forced: bool) { [INFO] [stdout] 163 + fn render(game: &[Tile], width: i32, index: usize, forced: bool) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.26s [INFO] running `Command { std: "docker" "inspect" "5403f6c70048ffc4123a5bd68d86be6f8b2ccaf011f0dd03fd8e1854fe45efd3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5403f6c70048ffc4123a5bd68d86be6f8b2ccaf011f0dd03fd8e1854fe45efd3", kill_on_drop: false }` [INFO] [stdout] 5403f6c70048ffc4123a5bd68d86be6f8b2ccaf011f0dd03fd8e1854fe45efd3