[INFO] cloning repository https://github.com/Nervonment/nonogram [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Nervonment/nonogram" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNervonment%2Fnonogram", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNervonment%2Fnonogram'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] b5e5290639f1b1aacbbfeda3f63b6af401897724 [INFO] linting Nervonment/nonogram against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNervonment%2Fnonogram" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Nervonment/nonogram [INFO] finished tweaking git repo https://github.com/Nervonment/nonogram [INFO] tweaked toml for git repo https://github.com/Nervonment/nonogram written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Nervonment/nonogram 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/Nervonment/nonogram 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-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] 1d0f00023ae7fa9f47ad329a2223ba5139ddd0e3f2ea67cbc9f7cff168596063 [INFO] running `Command { std: "docker" "start" "-a" "1d0f00023ae7fa9f47ad329a2223ba5139ddd0e3f2ea67cbc9f7cff168596063", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "1d0f00023ae7fa9f47ad329a2223ba5139ddd0e3f2ea67cbc9f7cff168596063", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1d0f00023ae7fa9f47ad329a2223ba5139ddd0e3f2ea67cbc9f7cff168596063", kill_on_drop: false }` [INFO] [stdout] 1d0f00023ae7fa9f47ad329a2223ba5139ddd0e3f2ea67cbc9f7cff168596063 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] e0eb631f818ff5ffef4c2ec59ba62b3dfa54bc1edeff201a0485e450280662a5 [INFO] running `Command { std: "docker" "start" "-a" "e0eb631f818ff5ffef4c2ec59ba62b3dfa54bc1edeff201a0485e450280662a5", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.87 [INFO] [stderr] Compiling serde v1.0.210 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking half v2.4.1 [INFO] [stderr] Checking clap_builder v4.5.20 [INFO] [stderr] Checking regex-automata v0.4.8 [INFO] [stderr] Checking criterion-plot v0.5.0 [INFO] [stderr] Checking oorandom v11.1.4 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking is-terminal v0.4.13 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Checking ciborium-ll v0.2.2 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Compiling quote v1.0.37 [INFO] [stderr] Compiling syn v2.0.79 [INFO] [stderr] Checking plotters v0.3.7 [INFO] [stderr] Checking clap v4.5.20 [INFO] [stderr] Checking regex v1.11.0 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Compiling serde_derive v1.0.210 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Checking ppv-lite86 v0.2.20 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking nonogram v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Domain` [INFO] [stdout] --> src/csp.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | / pub fn new() -> Self { [INFO] [stdout] 8 | | Self(vec![]) [INFO] [stdout] 9 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 6 + impl Default for Domain { [INFO] [stdout] 7 + fn default() -> Self { [INFO] [stdout] 8 + Self::new() [INFO] [stdout] 9 + } [INFO] [stdout] 10 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `row` is only used to index `grid` [INFO] [stdout] --> src/problem.rs:26:24 [INFO] [stdout] | [INFO] [stdout] 26 | for row in 0..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] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 26 - for row in 0..height { [INFO] [stdout] 26 + for in grid.iter().take(height) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `col` is only used to index `grid` [INFO] [stdout] --> src/problem.rs:40:24 [INFO] [stdout] | [INFO] [stdout] 40 | for col in 0..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 [INFO] [stdout] | [INFO] [stdout] 40 - for col in 0..width { [INFO] [stdout] 40 + for in grid.iter().take(width) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: importing legacy numeric constants [INFO] [stdout] --> src/solver_backtrack.rs:1:38 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{time::{Duration, Instant}, u64}; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import [INFO] [stdout] = note: then `u64::` will resolve to the respective associated constant [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `row` is used to index `grid` [INFO] [stdout] --> src/solver_backtrack.rs:195:20 [INFO] [stdout] | [INFO] [stdout] 195 | for row in 0..self.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] 195 - for row in 0..self.height { [INFO] [stdout] 195 + for (row, ) in grid.iter_mut().enumerate().take(self.height) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `col` is used to index `grid` [INFO] [stdout] --> src/solver_backtrack.rs:196:24 [INFO] [stdout] | [INFO] [stdout] 196 | for col in 0..self.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] 196 - for col in 0..self.width { [INFO] [stdout] 196 + for (col, ) in grid.iter_mut().enumerate().take(self.width) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/solver_backtrack_by_cell.rs:225:17 [INFO] [stdout] | [INFO] [stdout] 225 | / return !self.col_state[c].need_0 [INFO] [stdout] 226 | | && !self.row_state[r].need_0 [INFO] [stdout] 227 | | && !self.col_state[c].rest_1s.is_empty() [INFO] [stdout] 228 | | && !self.row_state[r].rest_1s.is_empty(); [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] 225 ~ !self.col_state[c].need_0 [INFO] [stdout] 226 + && !self.row_state[r].need_0 [INFO] [stdout] 227 + && !self.col_state[c].rest_1s.is_empty() [INFO] [stdout] 228 ~ && !self.row_state[r].rest_1s.is_empty() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/solver_backtrack_by_cell.rs:231:17 [INFO] [stdout] | [INFO] [stdout] 231 | / return self.col_state[c].rest_0s_before_1 > 0 [INFO] [stdout] 232 | | && self.row_state[r].rest_0s_before_1 > 0 [INFO] [stdout] 233 | | && !self.col_state[c].need_1 [INFO] [stdout] 234 | | && !self.row_state[r].need_1; [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] 231 ~ self.col_state[c].rest_0s_before_1 > 0 [INFO] [stdout] 232 + && self.row_state[r].rest_0s_before_1 > 0 [INFO] [stdout] 233 + && !self.col_state[c].need_1 [INFO] [stdout] 234 ~ && !self.row_state[r].need_1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/solver_backtrack_inference.rs:277:25 [INFO] [stdout] | [INFO] [stdout] 277 | / !(mask_1 & (1 << row) != 0 && value & (1 << var_idx) == 0) [INFO] [stdout] 278 | | && !(mask_0 & (1 << row) != 0 && value & (1 << var_idx) != 0) [INFO] [stdout] | |_________________________________________________________________________________________^ help: try: `!(mask_1 & (1 << row) != 0 && value & (1 << var_idx) == 0 || value & (1 << var_idx) != 0 && mask_0 & (1 << row) != 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 boolean expression can be simplified [INFO] [stdout] --> src/solver_backtrack_inference.rs:297:25 [INFO] [stdout] | [INFO] [stdout] 297 | / !(mask_1 & (1 << col) != 0 && value & (1 << var_idx) == 0) [INFO] [stdout] 298 | | && !(mask_0 & (1 << col) != 0 && value & (1 << var_idx) != 0) [INFO] [stdout] | |_________________________________________________________________________________________^ help: try: `!(mask_1 & (1 << col) != 0 && value & (1 << var_idx) == 0 || value & (1 << var_idx) != 0 && mask_0 & (1 << col) != 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: the loop variable `row` is used to index `grid` [INFO] [stdout] --> src/solver_backtrack_inference.rs:310:20 [INFO] [stdout] | [INFO] [stdout] 310 | for row in 0..self.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] 310 - for row in 0..self.height { [INFO] [stdout] 310 + for (row, ) in grid.iter_mut().enumerate().take(self.height) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `col` is used to index `grid` [INFO] [stdout] --> src/solver_backtrack_inference.rs:311:24 [INFO] [stdout] | [INFO] [stdout] 311 | for col in 0..self.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] 311 - for col in 0..self.width { [INFO] [stdout] 311 + for (col, ) in grid.iter_mut().enumerate().take(self.width) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking serde_json v1.0.128 [INFO] [stderr] Checking ciborium v0.2.2 [INFO] [stderr] Checking tinytemplate v1.2.1 [INFO] [stderr] Checking criterion v0.5.1 [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> benches/generator_benches.rs:8:39 [INFO] [stdout] | [INFO] [stdout] 8 | let mut group = c.benchmark_group(format!("Generator, Density = 0.5")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Generator, Density = 0.5".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: you should consider adding a `Default` implementation for `Domain` [INFO] [stdout] --> src/csp.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | / pub fn new() -> Self { [INFO] [stdout] 8 | | Self(vec![]) [INFO] [stdout] 9 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 6 + impl Default for Domain { [INFO] [stdout] 7 + fn default() -> Self { [INFO] [stdout] 8 + Self::new() [INFO] [stdout] 9 + } [INFO] [stdout] 10 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `row` is only used to index `grid` [INFO] [stdout] --> src/problem.rs:26:24 [INFO] [stdout] | [INFO] [stdout] 26 | for row in 0..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] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 26 - for row in 0..height { [INFO] [stdout] 26 + for in grid.iter().take(height) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `col` is only used to index `grid` [INFO] [stdout] --> src/problem.rs:40:24 [INFO] [stdout] | [INFO] [stdout] 40 | for col in 0..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 [INFO] [stdout] | [INFO] [stdout] 40 - for col in 0..width { [INFO] [stdout] 40 + for in grid.iter().take(width) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: importing legacy numeric constants [INFO] [stdout] --> src/solver_backtrack.rs:1:38 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{time::{Duration, Instant}, u64}; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import [INFO] [stdout] = note: then `u64::` will resolve to the respective associated constant [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `row` is used to index `grid` [INFO] [stdout] --> src/solver_backtrack.rs:195:20 [INFO] [stdout] | [INFO] [stdout] 195 | for row in 0..self.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] 195 - for row in 0..self.height { [INFO] [stdout] 195 + for (row, ) in grid.iter_mut().enumerate().take(self.height) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `col` is used to index `grid` [INFO] [stdout] --> src/solver_backtrack.rs:196:24 [INFO] [stdout] | [INFO] [stdout] 196 | for col in 0..self.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] 196 - for col in 0..self.width { [INFO] [stdout] 196 + for (col, ) in grid.iter_mut().enumerate().take(self.width) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/solver_backtrack_by_cell.rs:225:17 [INFO] [stdout] | [INFO] [stdout] 225 | / return !self.col_state[c].need_0 [INFO] [stdout] 226 | | && !self.row_state[r].need_0 [INFO] [stdout] 227 | | && !self.col_state[c].rest_1s.is_empty() [INFO] [stdout] 228 | | && !self.row_state[r].rest_1s.is_empty(); [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] 225 ~ !self.col_state[c].need_0 [INFO] [stdout] 226 + && !self.row_state[r].need_0 [INFO] [stdout] 227 + && !self.col_state[c].rest_1s.is_empty() [INFO] [stdout] 228 ~ && !self.row_state[r].rest_1s.is_empty() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/solver_backtrack_by_cell.rs:231:17 [INFO] [stdout] | [INFO] [stdout] 231 | / return self.col_state[c].rest_0s_before_1 > 0 [INFO] [stdout] 232 | | && self.row_state[r].rest_0s_before_1 > 0 [INFO] [stdout] 233 | | && !self.col_state[c].need_1 [INFO] [stdout] 234 | | && !self.row_state[r].need_1; [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] 231 ~ self.col_state[c].rest_0s_before_1 > 0 [INFO] [stdout] 232 + && self.row_state[r].rest_0s_before_1 > 0 [INFO] [stdout] 233 + && !self.col_state[c].need_1 [INFO] [stdout] 234 ~ && !self.row_state[r].need_1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/solver_backtrack_inference.rs:277:25 [INFO] [stdout] | [INFO] [stdout] 277 | / !(mask_1 & (1 << row) != 0 && value & (1 << var_idx) == 0) [INFO] [stdout] 278 | | && !(mask_0 & (1 << row) != 0 && value & (1 << var_idx) != 0) [INFO] [stdout] | |_________________________________________________________________________________________^ help: try: `!(mask_1 & (1 << row) != 0 && value & (1 << var_idx) == 0 || value & (1 << var_idx) != 0 && mask_0 & (1 << row) != 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 boolean expression can be simplified [INFO] [stdout] --> src/solver_backtrack_inference.rs:297:25 [INFO] [stdout] | [INFO] [stdout] 297 | / !(mask_1 & (1 << col) != 0 && value & (1 << var_idx) == 0) [INFO] [stdout] 298 | | && !(mask_0 & (1 << col) != 0 && value & (1 << var_idx) != 0) [INFO] [stdout] | |_________________________________________________________________________________________^ help: try: `!(mask_1 & (1 << col) != 0 && value & (1 << var_idx) == 0 || value & (1 << var_idx) != 0 && mask_0 & (1 << col) != 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: the loop variable `row` is used to index `grid` [INFO] [stdout] --> src/solver_backtrack_inference.rs:310:20 [INFO] [stdout] | [INFO] [stdout] 310 | for row in 0..self.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] 310 - for row in 0..self.height { [INFO] [stdout] 310 + for (row, ) in grid.iter_mut().enumerate().take(self.height) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `col` is used to index `grid` [INFO] [stdout] --> src/solver_backtrack_inference.rs:311:24 [INFO] [stdout] | [INFO] [stdout] 311 | for col in 0..self.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] 311 - for col in 0..self.width { [INFO] [stdout] 311 + for (col, ) in grid.iter_mut().enumerate().take(self.width) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 15.44s [INFO] running `Command { std: "docker" "inspect" "e0eb631f818ff5ffef4c2ec59ba62b3dfa54bc1edeff201a0485e450280662a5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e0eb631f818ff5ffef4c2ec59ba62b3dfa54bc1edeff201a0485e450280662a5", kill_on_drop: false }` [INFO] [stdout] e0eb631f818ff5ffef4c2ec59ba62b3dfa54bc1edeff201a0485e450280662a5